When I read this blog post telling that there are netbooks available from china for $65, where it is possible to install a proper linux distro, I knew I must have one. Yes, the specs are lowest end, but even more so is the price. It has a WonderMedia 8650 system on a chip. That’s an ARM CPU running at 800 MHz with 256MB RAM. These chips are normally used for low end tablets, and you see that with other things. The netbook has a 7 inch screen with 800*480 pixels and runs Android 2.2. So the device could be described as a tablet with a keyboard, touchpad, wifi, ethernet and three USB host ports, but no touchscreen, accelerometer, GPS, camera nor bluetooth.
From AliExpress, I ordered a device that seemed to be the same as mentioned in the blog. Although shipping was free, they were quick to ship and I got a tracking number. They shipped within two days, but then it spent more than a week at the Chinese customs. When it reached Switzerland, it spent even longer at the Swiss customs. They were not fooled by the gift declaration and wrong value the Chinese used to declare, so they asked me for some documents. The value it was declared with is below the threshold for tax, so it might slip through some times. The tax is not the problem, but the ridiculous handling fees that the Swiss customs post office adds. Imagine this: The Chinese can make a netbook device with a screen, keyboard, CPU RAM, flash, wifi and ethernet and shipping for $64. The Swiss can pick up a packet, see what’s in it, ask some questions and put it on the other side of the border for $39. Now tell me what’s wrong with our system…
As I expected, Android is not so well suited for a netbook. It’s optimized for touch operation, and emulating this with the touchpad is sometimes cumbersome. But on the other hand it’s suited for small screens and the hardware is well supported. Meaning all the drivers are in place and well tested, and sleep as well as hibernation work well. Apart from the operation, I was amazed to see how well youtube work on this underpowered device. Sadly the android marked is a bit strange, as it’s not called play store as on other devices. And the google application framework doesn’t seem to be available, so no google maps and no google docs and so on.
The blog post mentioned above talks about installing Arch linux, but mentions that it can also run debian. Being a debian fanboy, that’s what I tried first. The image was a bit hard to get from these crappy filesharing sites, but eventually I found a download that worked. When I first booted, the touchpad worked, but not the keyboard. I was able to access it through ssh over ethernet to analyze the system a bit. The wifi seemed to be possible to configure after renaming a module. I found an article that described how to get the keyboard working, by listening to the different input channels and configuring xorg.conf accordingly. But when I tried that, the system wouldn’t boot anymore, but would freeze at the debian splash screen with some black boxes. Whatever combination I tried it was the same, even if I just commented out the keyboard or the touchpad. Only when I reverted back to the original configuration, it would boot, but the keyboard wouldn’t work.
Next, I installed Arch linux on another sd card. It seemed to be a generic rootfs not specially crafted for this device. The installation went smooth, and both keyboard and touchpad worked immediately. But wifi seemed to be more difficult to get to work. The wifi module had to be enabled by setting a gpio pin, but the driver module was not readily available. And I’m not so familiar with pacman, so I still prefer apt-get.
After having seen, that keyboard and touchpad both worked so easily on Arch, I tried to use the same X11 configuration on debian, but it is completely different. Instead of an xorg.conf it uses two scripts in /etc/X11/xorg.conf.d/ which go through all devices they find and try to identify them. It works good for arch, but replacing the whole /etc/X11/ folder in debian dind’t work out as well. Also mixing the two approaches didn’t.
Next, I tried using the kernel that comes with the arch image. It was compiled especially for this class of device for use with a real linux distro. First it complained about expecting an ext3 rootfs. After a tune2fs -j it booted and reported a hole lot more information to the console than with the android kernel. Amongst other things it spitted out something like this:
So I tried these settings in my xorg.conf although that’s not what I found out earlier with listening to every input event channel while typing and tapping. But maybe, maybe they are assigned differently with the different kernel? Anyway, I had keyboard and touchpad working now. But I was unable to get wifi working with this setup. So I switched back to the other kernel again, only to find out that the problem with the keyboard persisted. Although the kernel version seems very similar (18.104.22.168-default vs 22.214.171.124-test) I couldn’t load the rt3070sta. It gives me : Invalid module format.
I was not eager to compile the kernel myself, so I looked for binaries. I found one where I could get keyboard, touchpad and wifi working, hooray. But the excitement didn’t last for too long. Two boots later, the sd card was wiped clean. I still have no idea what happened. First I tried to restore the partition table. But as that didn’t recover the partitions, I had to start over. Although I knew roughly what I did before, it took me a while to get it to this stage again. As soon as I had it, I made a backup.
sudo dd if=/dev/sdb conv=sync,noerror bs=64K | gzip -c > sid.img.gz
and to restore it’s:
gunzip -c sid.img.gz | dd of=/dev/sdb conv=sync,noerror bs=64k