Finding out about Open Source-compatible network equipment while it is still new enough to be found in shops is quite rare, in my experience. This would be the first time I have been so lucky. This device can be had for about 100 RMB / less then $20 just about everywhere in Beijing right now.
The TL-WR703N is a TINY device, not much bigger then an mp3 player, with one ethernet port, one ordinary USB port, and one mini-USB port for power supply. Made only for the Chinese market, with a Chinese GUI, well-supported by OpenWRT.
This is the version of OpenWRT I flashed the device with. (I went with a beta of the new stable, as it seemed likely that the old stable would not support the TL-WR703N.) Flashing is as simple as using the existing Chinese OS to update the firmware.
 gives very good instructions for unbricking the device if you break the OpenWRT network config. Which in my experience is very likely if you try to deviate from the default config which bridges together the ethernet and wireless into transparent AP mode. I wanted a standard router config with ethernet (WAN) and wireless (LAN) on separate, firewalled subnets, but I found the state of this version of the OpenWRT config frontend to be quite buggy. I tried from both the Luci GUI and manually editing the config files, and neither approach produced a working device. So I am living with the bridged mode right now.
So far I am very happy with the hardware and the OpenWRT support. Not so happy with the OpenWRT config front end.
To enable scanning on a HP scanner located, for example, at 192.168.0.41 do the following: (Tested on Debian Squeeze and Ubuntu Maverick)
apt-get install xsane hplipRun:
hp-makeuri 192.168.0.41That will result in output that looks like this:
CUPS URI: hp:/net/HP_LaserJet_3055?ip=192.168.0.41Now try:
SANE URI: hpaio:/net/HP_LaserJet_3055?ip=192.168.0.41
HP Fax URI: hpfax:/net/HP_LaserJet_3055?ip=192.168.0.41
xsane hpaio:/net/HP_LaserJet_3055?ip=192.168.0.41and test. If it works, copy the sane icon to desktop or toolbar, and edit it's properties to read:
Command: xsane hpaio:/net/HP_LaserJet_3055?ip=192.168.0.41
$ lspci 00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 04) 00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 04) 00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 04) 00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 04) 00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 04) 00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 04) 00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 04) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d4) 00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 04) 00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 04) 00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 04) 00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 04) 00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 04) 01:00.0 VGA compatible controller: ATI Technologies Inc M24 1P [Radeon Mobility X600] 02:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev 80) 02:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection (rev 05) 02:03.0 Multimedia controller: Philips Semiconductors SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (rev d1) 02:04.0 CardBus bridge: ENE Technology Inc CB-710/2/4 Cardbus Controller 02:04.1 FLASH memory: ENE Technology Inc ENE PCI Memory Stick Card Reader Controller 02:04.2 SD Host controller: ENE Technology Inc ENE PCI Secure Digital Card Reader Controller
I just bought this lovely big used single core 1.73GHz (Pentium IVish?) desktop replacement machine (15.4" widescreen) notebook, and I am absolutely baffled by the lack of any indication of what it's model number might be. There is only the 5-ring Olympic symbol on the top of the case, suggesting that it came out in the run-up to the Beijing 2008 Olympics. In fact, it is in such flawless physical condition for its age of several years that I am thinking it might have been used for just a few weeks during the Olympics.
So far everything I have tried works great with Debian testing, including suspend to RAM right from the KDE desktop menu. After installing the firmware-ipw2x00 package the internal wireless card became visible via ifconfig -a, but iwconfig was reporting "radio off". After some hunting around in a room without enough light, I discovered that the large round LED on the front edge to the right of the CD controls is actually also a pushbutton that controls the state of the wireless card radio.
Grub. Grrrrr. During my first install there was one glitch when upgrading from grub to grub2 (I started with a base install of Lenny) leaving me with an unbootable machine (first lesson learned: never just ignore grub errors while upgrading....)
This blog post got my grub2 booting again quickly. I will not repeat the post's verbiage, but this is the sequence of commands that got me back on track (I thought....) after booting from an old Ubuntu live CD:
sudo fdisk -l sudo mount /dev/sda5 /mnt sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt (optional, only if you're on Ubuntu/Debian) apt-get install grub-pc grub-mkconfig -o /boot/grub/grub.cfg grub-install /dev/sda (try grub-install --recheck /dev/sda if it fails) Ctrl+D (to exit out of chroot) sudo umount /mnt/dev sudo umount /mnt/sys sudo umount /mnt/proc sudo umount /mnt
And then I discovered that somehow, although I was able to boot, as far as fdisk and parted were concerned, my partition table was hosed. Strike two against grub2. Second lesson learned: grub2 is not stable, and after wasting hours of my time it will be a while before I allow it onto a new install again. Now for install, take two, this time no upgrade from grub to grub2.....
That worked, sort of. No matter what I try, I cannot get the swap partition to work. With 2 Gig of RAM, perhaps not a huge deal, but I would at least like to try suspend to disk and see if it works. When I was in the shop getting more RAM, the technician also pointed out that there is a password on the BIOS, and that there is no easy way to remove it (not yet verified). One more thing to check next time I buy a new notebook....
A couple gotchas along the way, but I am not in the mood for complaining in light of how little I paid (about US$300, in the end) for a machine in like-new condition that works very well for me. Hopefully the swap partition thing will sort itself out in a future OS upgrade.
In a previous post in this section I noted that the Linux kernel no longer supports my Thinkpad A21M's sound card, and I have been using USB speakers instead. (Another post talks about a borked mother board, which turns out to have been not the case. More on that one another time.)
Suddenly out of the blue with the latest Debian 2.6.30 kernel I am getting something loading that is pretending to be a sound card and reporting itself to my mixer as a "PC Speaker". The problem with this is both Debian user-land and Linux applications make it difficult to switch from one sound card to another, either globally or per application, and everything defaults to the first sound card. Which spot is now being squatted upon by this useless "PC Speaker" thing, making it difficult for me to use the USB speakers.
This appears to be the culprit: a "pcsp" module. And sure enough, lsmod tells me there is a snd_pcsp being loaded. So I added:
to /etc/modprobe.d/x-local-blacklist, rebooted, and it went away. Back to functioning USB speakers.
The Huawei GSM/3G E220 wireless USB dongle should be a good bet for those of us living in China, as the manufacturer is local. Looks like this guy is using it successfully....
This Beijing LUG post reports a card called "3g evdo 天翼 x6" (中国电信天翼x6高速笔记本 3G EVDO 无线上网卡, lsusb: Bus 002 Device 003: ID 19d2:fffe) as working out of the box on a recent kernel, just requiring a China Telecom SIM card.
Another Beijing LUG post reports a "CECT MF633 Little Pigeon WCDMA China Unicom" card as working.
This post is most particularly triggered by the fact that I have *finally*, purely by accident and no thanks to the existing documentation, figured out how to do copy&paste (not exactly a minor feature on a "PDA" phone):
After several weeks of use, some other thoughts.
The Motorola A1200 is a Linux-based line of mobile phones targeted mainly at the Chinese market (the only language options are English, Simplified Chinese, and Traditional Chinese). I chose this phone in advance because it was Open Source (Linux-based) and looked like it would satisfy my main requirements: an English system from which I could send and receive Chinese text messages, a touch-screen with handwriting recognition to facilitate my Chinese studies, and the probable capability of installing my favorite Linux Chinese-English dictionary.
I ended up buying an older, original model really cheap for 600 RMB (just under US$100) as the latest models, the A1200e and the A1210 were being quoted at 1600-1800+ RMB.
A bad first impression:
So far I quite like the phone itself, but the battery fiasco is really a little unbelievable coming from a theoretically top-tier company like Motorola. I think most people would have given up on the phone already and tried to exchange it for something else. I still might, if I keep finding problems.... So far this evening I have found that my current Linux desktop cannot connect to the USB Mass Storage device on the phone, meaning I cannot use USB to get files on and off the phone. That makes the phone's onboard camera useless, and means I cannot install my dictionary.
So I guess I will go get a bluetooth card for my desktop and try to communicate with the phone that way....
In recent days this poor suffering Thinkpad a21m (running pretty much all day, every day for the past four years) has taken to locking-up periodically, and then sometimes refusing to start afterwards. When it does the latter, it cannot seem to find the hardrive. However, swapping in a second hardrive brings no improvement. This behavior really resembles a fan / overheating problem. However, I can sometimes clearly hear the fan on, and what I can see from periodically monitoring the temperature would indicate this is not a temperature problem. I even went to the trouble of disassembling the whole machine and physically examining the fan. I also found a software means of forcing the fan to run continuously at high speed. All to no avail, the machine still dies.
Conclusion: motherboard is toast. Which on such an old (PIII 800 MHz) machine means retirement, as the cost of a whole new machine of similar vintage (just over US$100 in a local market) would be not a lot more then the cost of another motherboard. Time to go shopping....
For posterity, I will record how I went about controlling the fan, per this fine document, using kernel 2.6.30:
Unload the relevant module should it already be loaded:
rmmod thinkpad-acpiNow reload the module with fan control turned on:
modprobe thinkpad-acpi fan_control=1Inspect the state of the fan controls thusly:
cat /proc/acpi/ibm/fanAnd crank up the fan to full speed:
echo level full-speed > /proc/acpi/ibm/fan
You should get instant auditory feedback from the last action. At least on an a21m, full speed is REALLY LOUD. I have never heard it run that hard in all the years I have owned the machine, so fearing for the safety of the fan I toned the speed down to level 7. Still loud, but not outrageously so.
The cards are identified with the output of the "lspcmcia -v" command, with further comments below.
Socket 0 Device 0: [orinoco_cs] (bus ID: 0.0) Configuration: state: on Product Name: Lucent Technologies WaveLAN/IEEE Version 01.01 Identification: manf_id: 0x0156 card_id: 0x0002 function: 6 (network) prod_id(1): "Lucent Technologies" (0x23eb9949) prod_id(2): "WaveLAN/IEEE" (0xc562e72a) prod_id(3): "Version 01.01" (0xd27deb1a)
This Lucent card is one of the famous "Orinoco Gold" cards, though there seems to be so many versions that I am quite unsure what that "Orinoco Gold" label really means. I have so far been unable to find a power rating for this card. It uses the orinoco_cs driver.
Socket 0 Device 0: [atmel_cs] (bus ID: 0.0) Configuration: state: on Product Name: Belkin 11Mbps-Wireless-Notebook-Network-Adapter Identification: manf_id: 0x01bf card_id: 0x3302 function: 6 (network) prod_id(1): "Belkin" (0x3805a391) prod_id(2): "11Mbps-Wireless-Notebook-Network-Adapter" (0x04d6f391)
This Belkin F5D6020 Ver.2 card is a bit of an odd ball, requiring firmware. (Note that the Ver.1 card is a completely different Prism-based card that uses the orinoco driver.) Debian users must install the atmel-firmware package to get it working. Good card, but not particularly powerful.
Socket 0 Device 0: [orinoco_cs] (bus ID: 0.0) Configuration: state: on Product Name: INTERSIL HFA384x/IEEE Version 01.02 Identification: manf_id: 0x0156 card_id: 0x0002 function: 6 (network) prod_id(1): "INTERSIL" (0x74c5e40d) prod_id(2): "HFA384x/IEEE" (0xdb472a18) prod_id(3): "Version 01.02" (0x4b74baa0)
This nondescript card *does not* seem to work properly, and I do not think it is a Linux problem, though I am not absolutely sure. It will roam alright, but causes an error if you try to send it a WEP password. So it is useless on a WEP-protected network.
Socket 0 Device 0: [orinoco_cs] (bus ID: 0.0) Configuration: state: on Product Name: NTT-ME 11Mbps Wireless LAN PC Card Identification: manf_id: 0x0156 card_id: 0x0002 function: 6 (network) prod_id(1): "NTT-ME" (0xcf5acb06) prod_id(2): "11Mbps Wireless LAN PC Card" (0xd74e4c54) prod_id(3): " " (0x3b6e20c8)
This is another nondescript card, but it works fine and is definitely a high-power card. It will work with the orinoco_cs driver, but if you blacklist orinoco_cs the hostap_cs driver will load instead. Under hostap, if you set the card mode to "Master", you have yourself a home-made wireless access point. (Just make sure the rest of your network setup is correct to support this, ie. static IP, routing to the internet, DHCP if desired....)
# lspci 00:00.0 Host bridge: Intel Corporation 82830 830 Chipset Host Bridge (rev 04) 00:01.0 PCI bridge: Intel Corporation 82830 830 Chipset AGP Bridge (rev 04) 00:1d.0 USB Controller: Intel Corporation 82801CA/CAM USB Controller #1 (rev 02) 00:1d.1 USB Controller: Intel Corporation 82801CA/CAM USB Controller #2 (rev 02) 00:1d.2 USB Controller: Intel Corporation 82801CA/CAM USB Controller #3 (rev 02) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 42) 00:1f.0 ISA bridge: Intel Corporation 82801CAM ISA Bridge (LPC) (rev 02) 00:1f.1 IDE interface: Intel Corporation 82801CAM IDE U100 Controller (rev 02) 00:1f.3 SMBus: Intel Corporation 82801CA/CAM SMBus Controller (rev 02) 00:1f.5 Multimedia audio controller: Intel Corporation 82801CA/CAM AC'97 Audio Controller (rev 02) 01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility M6 LY 02:03.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev a8) 02:03.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev a8) 02:03.2 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller 02:05.0 Communication controller: Agere Systems WinModem 56k (rev 01) 02:08.0 Ethernet controller: Intel Corporation 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (rev 42)
This is a late Pentium III / almost Pentium IV example of the X-series: 12-inch bright LCD, great keyboard, extremely light and portable, with a floppy / CD-ROM equipped docking station (which also works on by x20 Thinkpad).
Installing Debian Linux on this machine is a slamdunk, everything (that I have tried -- not the WinModem, for example) works fine out-of-the-box. At 1.1 GHz, at least as of late 2008, with 640 Meg of memory, it is also my fastest and my main machine. For normal desktop activities this vintage (Pentium III 1.1 GHz) is more then enough for a Linux user. (Heavy coders will probably want more and faster....)
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03) 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03) 00:02.0 CardBus bridge: Texas Instruments PCI1251A 00:02.1 CardBus bridge: Texas Instruments PCI1251A 00:06.0 Multimedia audio controller: Cirrus Logic CS 4610/11 [CrystalClear SoundFusion Audio Accelerator] (rev 01) 00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02) 00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) 00:07.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01) 00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02) 01:00.0 VGA compatible controller: Neomagic Corporation NM2200 [MagicGraph 256AV] (rev 20)
This was very much a high-end machine in its day, but now is I think quite slow for all but the most modest desktop requirements. However, it has two PCMCIA card slots, which makes it a good candidate for a home router / server.
Also, it has a very similar sound card to my a21m Thinkpad, and has suffered the same fate: the sound card does not work because the driver has been removed from the Linux kernel because of firmware issues. Bummer. Playing music is something this machine should do quite well. Buy a USB sound card.
PCMCIA Networking Problems
Back when it was doing server duty with a Debian install, I used to roll my own kernel with this machine because the stock Debian kernel images never seemed to be able to get both of my PCMCIA cards working (usually just one network would come up -- one of this Thinkpad's functions was as a router for my home network, so this is not enough).
Then I noticed that there are some ugly looking messages in the syslog on the subject of ACPI, despite passing "noacpi" to the kernel. I then added "acpi=off" to the kernel options, and lo and behold, both cards came up with Debian's linux-image-2.6.20-1-686.
The full options line in my /boot/grub/menu.lst were:
# kopt=root=/dev/hda1 ro acpi=off noacpi apm=on
I am not sure if "apm=on" is actually doing anything, but almost all of the ACPI junk has disappeared from the log, and my PCMCIA network cards worked with this hack. For the record, I am using one PCMCIA network card and one cardbus card.
$ lspci 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03) 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03) 00:02.0 CardBus bridge: Texas Instruments PCI1450 (rev 03) 00:02.1 CardBus bridge: Texas Instruments PCI1450 (rev 03) 00:03.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 09) 00:03.1 Serial controller: Xircom Mini-PCI V.90 56k Modem 00:05.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (rev 01) 00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02) 00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) 00:07.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01) 00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03) 01:00.0 VGA compatible controller: ATI Technologies Inc Rage Mobility P/M AGP 2x (rev 64) 02:00.0 USB Controller: NEC Corporation USB (rev 43) 02:00.1 USB Controller: NEC Corporation USB (rev 43) 02:00.2 USB Controller: NEC Corporation USB 2.0 (rev 04)
This is a big, heavy 14-inch LCD machine with everything, including floppy, removable CD drive, and two PCMCIA card slots. Your basic desktop replacement. As a Pentium III 800 MHz running Linux, this machine is just at the threshold of "just fast enough" for your normal user. I have noticed that slower machines, say around 500 MHz, tend to be noticably sluggish, and are clearly unable to play some kinds of video.
The a21m currently has a serious issue: the sound card used to work, but undistributable firmware is required to use the Cirrus Logic sound card, so apparently the snd-cs46xx module has been ripped out of the kernel until further notice. Solution: use a USB sound card.
If you are having audio problems on a Linux system, your first step is to ensure that the userid you are logged in as is a member of the "audio" group. I have been using Linux for years, and if it has been a while since my last install, this one still causes me several minutes (or more) of head-scratching every install.
There are several issues that make sound on Linux desktops a source of pain and frustation:
"USB Sound" to the rescue!!!
USB sound tends to be relatively simple and robust. I have tried four devices so far (two headsets, a pair of USB speakers, and a "USB sound card") and all of them have worked. For the three devices with microphone capabilities, that also worked. Mixers show one slider / mute button each for input and output -- dummy proof!!
A USB sound device, when plugged into a system with a functioning onboard sound card, behaves like a second sound card, and does so consistently on whatever computer you plug it into, freeing you from dependence on your internal sound card. It shows up explicitly in Skype Options as a a second sound card, input/output levels are easily adjusted in your mixer, and the three models I have tried:
all work well with Skype, though sound quality from #3's mic is a bit poor (probably fixable with a higher quality mic....)
Using a USB sound device with other Linux multimedia applications tends to be a bit more complicated, since such apps (Skype excepted) do not usually provide a sound card selector in the GUI. Here are some examples of how to send sound output to a second (USB) sound card for several applications:
Simplest of all, disable the built-in sound card by blacklisting the driver module, as I did with my Thinkpad x20. Then when you plug in a USB sound device it automatically becomes the first and default sound card, which all apps will then play sound to by default. (Note: I looked for a more elegant way in Debian, but found none. Please clue me in if you know a better way. I have heard that Ubuntu automatically does the right thing by making a new USB card the default. In the case of the X20, the built-in speakers really suck anyway.)
Where I live in Beijing a low-end USB sound card (looks like a USB memory stick / thumb drive except that it has headset and mic jacks in the end) can be had for as little as 25 RMB / US$4. I have a beautiful pair of tiny, mega-sound USB speakers (with no external power supply!! power comes from the USB bus!!) that I paid 140 RMB for, as I recall.
$ lspci 00:00.0 Host bridge: Intel Corporation 82440MX Host Bridge (rev 01) 00:00.1 Multimedia audio controller: Intel Corporation 82440MX AC'97 Audio Controller 00:00.2 Modem: Intel Corporation 82440MX AC'97 Modem Controller 00:02.0 VGA compatible controller: Silicon Motion, Inc. SM712 LynxEM+ (rev a0) 00:03.0 CardBus bridge: O2 Micro, Inc. OZ6812 CardBus Controller (rev 05) 00:07.0 ISA bridge: Intel Corporation 82440MX ISA Bridge (rev 01) 00:07.1 IDE interface: Intel Corporation 82440MX EIDE Controller 00:07.2 USB Controller: Intel Corporation 82440MX USB Universal Host Controller 00:07.3 Bridge: Intel Corporation 82440MX Power Management Controller
This machine has a wonderful keyboard and a CD-ROM drive, but has a rather low-end 12-inch 800x600 LCD, and a minimal number of ports (basically one of everything). It is also on the heavy side for a 12-inch, as it really has a 14-inch form factor.
The winmodem was, of course, not tested. Everything else works except X, which stopped working over a year ago. I issued Debian and Xorg bug reports, so far to no avail. Starting X results in a blank screen and a locked up keyboard (Ctl-Alt-F1, Ctl-Alt-Backspace seem to have no effect). I can still log in through the network in this state.
With no functioning Xorg, no builtin network card, one USB port, and one PCMCIA card slot, this machine is somewhat limited and is not useful for much other then being a simple server.