HOME

Installing NetBSD on a Jornada 720 without compatible CF reader.

The Jornada 720 was an incredible machine when it appeared in 2000, yet it suffered from one rather essential problem: The lack of a proper operating system. It comes with builtin Windows CE 3.0, which -to make things even worse- resides in the ROM and can’t be upgraded nor erased. By the time of this writing, several well known open source operating systems have been ported to the Jornada, one of them being the one with the largest amount of supported platforms, NetBSD. As there is no flashable area for the operating system in this device, the only way of installing NetBSD is on a compact flash card which afterwards can be put into the CF slot of the Jornada. If you search the web, you will find several nice tutorials which describe how to do so. Basically what you need is an additional machine with NetBSD installed and a NetBSD compatible CF reader. All of them were unusable for me because I didn’t have the flash reader. This document is focused on the installation of NetBSD without a NetBSD compatible compact flash reader. No way? Wait and see…

Hardware needed

  • Jornada 720 (of course).

  • CF card (256 MB or bigger).

  • Special Jornada serial cable.

  • 16 Bit PCMCIA card supported by NetBSD.

  • Desktop machine networked with the Jornada which will act as DHCP / NFS server.

  • Desktop machine connected to the Jornada via serial cable. (May be the same as above, serial terminal software is needed).

Preparing the desktop machine

The desktop machine used I used is an AMD Athlon PC with FreeBSD 5.4. If you are running another platform, you might want to have a look at the Diskless NetBSD HOW-TO. In this example, the desktop machine has the IP 192.168.2.2 and will act as DHCP and NFS server. It is connected to a router with the IP 192.168.2.1 which is also running a DNS server.

Installing ISC DHCPD

Installation from the ports tree (recommended):

# cd /usr/ports/net/isc-dhcp3-server

# make; make install

package installation:

# pkg_add -r isc-dhcp3-server

Configuring dhcpd

Edit /usr/local/etc/dhcpd.conf to something like this:

# dhcpd configuration file /usr/local/etc/dhcpd.conf

option domain-name "mydomain.tld";

option domain-name-servers 192.168.2.1;

default-lease-time 600;

max-lease-time 7200;

authoritative;

ddns-update-style none;

log-facility local7;

subnet 192.168.2.0 netmask 255.255.255.0 {

}

host j720 {

hardware ethernet aa:bb:cc:dd:ee:ff;

fixed-address 192.168.2.72;

option routers 192.168.2.1;

option domain-name-servers 192.168.2.1;

option domain-name "mydomain.tld";

option root-path "/var/export/client/root";

filename "netbsd-JORNADA720.gz";

next-server 192.168.2.2;

}

Where aa:bb:cc:dd:ee:ff is the MAC address of the network interface card of the Jornada. Some manufacturers print it on the outside of the NIC, otherwise you might want to put the card into a notebook to find out. If you’re very lucky, the card will also work under Windows CE in the Jornada, so you can read the MAC there.

Configuring the NFS server

Create the directories for the NFS server:

# mkdir -p /var/export/client/root

# cd /var/export/client/root

Download the essential NetBSD distribution sets (base.tgz, etc.tgz, kern.tgz) from the NetBSD ftp server to the directory you created. Extract the distribution sets inside that directory:

# cd /var/export/client/root

# tar -xvpzf base.tgz

# tar -xvpzf etc.tgz

# tar -xvpzf kern.tgz

It is also useful to put the NetBSD boot loader (hpcbot.exe) into that directory, you will need it later. hpcboot.exe can be downloaded from the NetBSD ftp server.

Add the following line to /etc/exports

/var/export/client/root      -maproot=0  -network 192.168.2.0 -mask 255.255.255.0

Start the NFS and DHCP server. If you are lazy, just put the following lines into /etc/rc.conf

nfs_server_enable="YES"

rpcbind_enable="YES"

dhcpd_enable="YES"

and reboot the machine.

Preparing the Jornada 720

You will need a serial cable to connect your Jornada to another machine, a CF card (256 MB or bigger is highly recommended) and two files: a Jornada kernel which is able to boot from network and the Windows CE boot loader tool hpcboot.exe. I cross compiled a kernel with network boot support on a different machine myself, but as far as I remember the generic kernel from the FTP server will be just fine. You can put both hpcboot.exe and the kernel (e.g. netbsd-JORNADA720.gz) onto a CF card and put it into your Jornada. With the serial cable connected, start hpcboot.exe, configure it to boot the kernel and press Boot. You can watch the boot process on your serial console, if everything is correct, you will see how the Jornada receives the IP 192.168.2.72 and boots from NFS. Now that you have a shell on the Jornada itself, you can partition the CF card and format it. There are detailled tutorials on how to do so, so what will follow is just a quick walk-through.

Partition and format the CF card

Start disklabel in interactive mode and edit the partition table:

# disklabel -i -I /dev/wd0

You should create a small (~10 MB) DOS partition (e.g. /dev/wd0a) and assign the remaining space to a large FFS partition (e.g. /dev/wd0b). Format the partitions and mount them:

# newfs /dev/wd0b

# newfs_msdos /dev/wd0a

# mkdir -p /mnt/cf-dos

# mkdir -p /mnt/cf-ffs

# mount_msdos /dev/wd0a /mnt/cf-dos

# mount /dev/wd0a /mnt/cf-ffs

Installing NetBSD on the CF card

Extract the distribution sets to the FFS partition and put the Jornada kernel and hpcboot.exe on the DOS partition:

# cd /mnt/cf-ffs

# tar -xvpzf /base.tgz

# tar -xpvzf /etc.tgz

# tar -xpvzf /kern.tgz

# cp /hpcboot.exe /mnt/cf-dos

# cp /netbsd-JORNADA720.gz /mnt/cf-dos

Create the device files:

# cd /dev

# ./MAKEDEV all

Configure rc.conf if you like, it might look something like this:

rc_configured=YES

dhclient=YES

sshd=YES

hostname="j720"

defaultroute="192.168.2.1"

wscons=YES

Congratultions! Now you can restart your Jornada and run hpcboot.exe again. If everything was correct, you will be able to boot NetBSD right off the CF card.

Jornada 720 with Elsa Airlancer WLAN card running NetBSD 2.0

Jornada 720 with Elsa Airlancer WLAN card running NetBSD 2.0

Some personal opinions about NetBSD on the Jornada:

There is no doubt that this is one of the smallest machines which is able to run a true Unix-like operating system. NetBSD is extremely powerful and there are many tools that will justify NetBSD in your pocket. The geek factor is huge. However, NetBSD is not specially designed for this platform, it is just one amongst a large variety of others. The display of the Jornada is rather small and there are no graphical applications that are really designed to run on a rather low resolution like this. So if you wish to run true PDA applications, there are better alternatives. Personally, I am running familiar Linux / Opie at the moment. If you’re looking for things like media players, browsers, mail, IRC and the like, you might want to have a look the handhelds.org website.