Installing Familiar on a h6300-series iPaq
These are the steps that I took to get Familiar/GPE booting on my iPaq h6300. YMMV, of course.
This method does not remove WinCE, but it does destroy any data you have in your WinCE applications and (I think) removes any applications you have installed in WinCE. So back them up first.
You will need:
* An iPaq h6315, h6340 or h6365. I use an h6365.
* An SD card that you are prepared to wipe clean. It can be done in 128MB, but you are better off with more.
* An SD card reader that is connected to a computer running linux. You can't use a digital camera or similar as a card reader. I use Ubuntu and some of the steps below are specific to that distro, but you should be able to figure out similar steps for others.
First, insert the SD card into the SD card reader. If it is automatically mounted, unmount it from the commandline. Doing something like using the 'Unmount' command in the right-click menu in Ubuntu will not do the right thing, because we need the device files to be left behind.
> sudo umount /media/disk
or whatever it gets mounted as on your computer. Note that, on my computer, the SD card appears as /dev/sdb. You will need to adapt the commands below for wherever it appears for you.
Next, delete the partition on the SD card and create two in its placce. The first one should use the vfat or FAT32 filesystem (different names for the same thing) and should be at least 20MB. The second should use the ext2 filesystem and be at least 120MB. If you have extra space, you are probably better off putting it into the second partition. I use GParted to do this, which does all the partitioning and filesystem creation for you, but you could do it by hand using fdisk and mkfs. If you do this, take care to make a 32bit FAT filesystem, not a 16 bit one.
Next, get the distribution from http://www.blendo.de/uploads/media/h6300_gpe_image_20061206.tar.bz2 and unpack it. It contains a readme and two archives. Mount the SD card partitions and unpack the archives into them:
> sudo -s > mkdir /media/sdb1 > mkdir /media/sdb2 > mount /dev/sdb1 /media/sdb1 > mount /dev/sdb2 /media/sdb2 > cd /media/sdb1 > tar xjf ~/h6300_linux_bootloader.tar.bz2 > cd /media/sdb2 > tar xjf ~/h6300_gpe_image_rootfs.tar.bz2 > sync > cd > umount /media/sdb1 > umount /media/sdb2
Note that you need to be root when unpacking the second archive, because it contains device files that you can only recreate as root. The sync is not strictly necessary, but I do it anyway. It can take a long time, because lots of data gets buffered and then written to the SD card in slow time.
Remove the SD card and put it in your iPaq. Reset WinCE by pressing the button in the little hole on the bottom left side of the iPaq for a few seconds. Once WinCE has started, enable the phone. Then open the File Explorer, navigate to \My Device\Storage Card\ and tap the wililo program with the stylus. You will be presented with the choice of booting from an SD card or from an NFS partition. Select the SD card and tap the OK button. Linux will start booting.
You will see some bootloader messages on a text screen, then the framebuffer will be created and you will see the Tux logo. Don't be worried if it doesn't quite look right - mine does that, too. Lots of kernel and init messages will scroll past, then the GPE splash screen with display. Then X will start and you will be asked to calibrate the screen and create a user account. You only need to do these things once.
Connecting to the Internets
The only networking I have got going so far is using the USB cradle.
First, you need to set up a usb0 network device on your computer. In Ubuntu, add this to /etc/network/interfaces:
mapping hotplug
script grep
map usb0
iface usb0 inet static
address 192.168.0.200
netmask 255.255.255.0
broadcast 192.168.0.255
pre-up /etc/network/ipaq
Then, create /etc/network/ipaq: #!/bin/bash sleep 5 exit 0
Now you should be able to connect the cradle, put your iPaq in it and it will all just work. Your usb0 device will get the address 192.168.0.200, while the iPaq gets 192.168.0.202. You can ping it and ssh into it.
To get an internet connection, you need to set up Network Address Translation (NAT). This can be done using iptables:
> sudo -s > echo 1 > /proc/sys/net/ipv4/ip_forward > iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.10
192.168.1.10 is, in this case, the address of eth0 on my computer, which is the interface I use to connect to the internet. Change as appropriate for your situation.
The default install of Familiar doesn't have a resolv.conf, so you need to supply one. For some reason, resolv.conf is in /var/run. Put this in it:
nameserver 192.168.1.254
changing the address as appropriate for your network.
Now you can browse the web from your iPaq.
Installing Some Packages
The default ipkg setup on the Familiar distribution doesn't work. Do this:
> ssh 192.168.0.202 Password: > cd /etc/ipkg > sed 's/v0.8.4.1-pre/v0.8.4/g' familiar-v0.8.4.1-pre-feed.conf > familiar-v0.8.4-feed.conf > sed 's/v0.8.4.1-pre/v0.8.4/g' familiar-v0.8.4.1-pre-universe.conf > familiar-v0.8.4-universe.conf > rm *v0.8.4.1-pre*
Now you can use ipkg update to get an updated list of packges, then ipkg list to see the available packages. This system will be very familiar to anyone who has used apt-get (Debian, Ubuntu and friends). Have fun!