Running Linux on an iPAQ
By Martyn Honeyford2005-04-13
Get Connected
Your PDA is now a fully fledged, complete working system in its own right. Depending on which GUI component you decided to go with (GPE, OPIE, etc.), the exact set of applications available will differ, broadly speaking. However, the basic level of functionality is the same: each distribution includes a Web browser, diary, address book, e-mail client, etc. -- all the things you would expect from a PDA.
Unless you are planning to use the PDA in a completely disconnected mode, the first thing you should do is set up some connectivity. The most basic level of connectivity is simple serial/USB synchronization with a host PC for maximum flexibility, but I recommend that you set up full TCP/IP network connectivity. Once again, the exact steps will vary according to what hardware you have -- ranging from full wireless access if you have a supported (built-in/CF/PCMCIA) Wi-Fi card, through LAN access (again with a supported card), TCP/IP over Bluetooth, dial-up with a supported modem, down to tunnelling TCP/IP over the USB or serial cable via the host PC.
Due to a lack of hardware, I was limited to setting up TCP/IP over the serial cradle using PPP connected to a Linux desktop machine and setting up the Linux machine to perform NAT and forward packets to/from the iPAQ on to the LAN. This is reasonably simple, and instructions are at handhelds.org (see Resources for a link). Again, one of the advantages of the system is that, because the iPAQ is a real Linux machine, if you have experience with this sort of setup using normal desktop Linux machines, those skills are directly transferable to your handheld setup.
With a full TCP/IP network connection, you can take advantage of one of the great strengths of Familiar: its simple package management system. Based on Debian, Familiar's package management is similar to Debian's dpkg system, called ipkg (which stands for Itsy Package). Using just a simple set of commands, you can install a large volume of pre-built packages.
For instance, let's say you want to run a Web server on your iPAQ. Yes, I know this may sound like a strange thing to do, but it could be useful in a variety of circumstances. For instance, you could go to a client site and demonstrate the Web site you have been developing for them by running it directly on the same Web server (such as Apache) that it will be deployed on in real-life!
To install Apache using ipkg, use this command:
ipkg install apache
ipkg takes care of all dependencies for you, automatically downloading and installing not only the Web server but also any packages that it needs in order to function correctly.
I like to use the -V 2 option when installing, to give more verbose messages.
You can remove packages with the remove command:
ipkg remove apache
However, the remove command does not remove dependencies, so you may need to use additional ipkg remove commands to remove packages you no longer need.
Similarly, you can keep all your software up to date (including security fixes) with the following commands:
ipkg update
ipkg upgrade
Tutorial Pages:
» Put a Penguin in Your Pocket
» Why Run Linux Instead of Pocket PC?
» Choose Your Hardware
» Download the Distribution
» Install Linux
» Get Connected
» Develop for it
» Reinstalling PocketPC
» Conclusion
» Resources
First published by IBM DeveloperWorks
