Linux on the Ipaq
Last week I tried something I’ve been wanting to try for a long time. I ordered an old Ipaq 3650 on Ebay and installed Linux on it. In order to install Linux you need either a serial cable (usb won’t work) or a compact flash sleeve. I just happened to have a CF sleeve from an old Ipaq I used to have. So I went to http://www.handhelds.org, the home of the handheld Linux projects and found the instructions there that I needed. I should note that it looks like this project is dying. There haven’t been any updates for almost a year on Opie (one of the environments available), and the other options hadn’t seen any activity for several years.
So I copied the necessary files to my CF card, ran “Bootloader.exe” which replaced the Ipaq’s bootloader, then I was able to install the Opie image from my CF card. It rebooted and everything worked. I really liked the interface, but everything wasn’t as great as I’d hoped. First of all the 3650 comes with a 16M ROM plus 16MB of RAM. WinCE uses the RAM to store files and data on (which you lose on a reboot) making it appear you have 32MB of memory available. Using RAM as ROM has some obvious drawbacks, so Linux won’t do it, which means I only had 16MB of storage, and the Opie image was over 15MB. So I started out with less than 1MB of memory available. Luckily I have a 512MB CF card. So I started uninstalling software from the system ROM and moving it over to the CF card. The problem with that was the CF card was formatted using vFat. When software was installed to the CF, it would recreate the file structure of the root file system(/), then create symlinks. For example, when installing samba it created a directory /media/cf/etc/samba then create a symlink between that directory and /etc/samba. The problem with that is that the OS didn’t support creating symlinks on a vFat partition. So I created a loopback partition on the CF card. A loopback partition is a file on the CF card that I can mount as a hard drive. I then formatted it in ext3 and was able to install software to it w/o any problems. Until I rebooted. When installing software using the package manager, I found that I would often SEGFAULT if I tried to install more than 2 or 3 things at once(including dependencies). After a while it would SEGFAULT constantly and I would have to reboot. When I rebooted I would then have to manually mount the loopback partition, and run through a serious of commands for all the symlinks to be recreated. If the software was installed directly on the CF card, it tried to create the symlinks on its own, but it didn’t for the loopback partition.
Anyway, I created a bunch of scripts to make all this easier, and once I had all the software I wanted installed, I started looking into some way to synchronize my PIM data with my desktop. If my desktop was running Linux I believe it would have been simple. But as it is I didn’t find anything to work with my Windows desktop running Outlook. There is Qtopia Desktop, but I couldn’t get the latest version of it to run on Windows XP, and the earlier version that I could get to run I couldn’t get to sync with my PDA or with Outlook though it’s supposed to sync with both. So then I found the KDE PIM package. It worked! I was able to import my Outlook info(though not sync) and sync with my PDA. But it ran incredibly SLOOOOOWWWWW on the Ipaq, probably because it was running form the CF, but I couldn’t free up enough memory to install it to the ROM.
So here’s my conclusion. Linux on the PDA is definitely something I want to explore some more. The Sharp Zaurus looks great and comes with Linux already installed. I’ve read plenty about people running Linux on the Ipaq and having a good experience. But if you want to run Linux on an Ipaq, get one with a 32MB ROM or more. All the problems I had really came about from the simple reason that I didn’t have enough memory. The CF card is a great way to store data, but no suggested for running apps from.
So I bit the bullet and put WinCE back on my Ipaq for now. When I did I plugged it in and in 30 seconds had all my PIM data on it. I’m not giving up for good, but I’m too busy to put any more time into Linux on my Ipaq for now:(