Familiar v0.6-pre1 Installation Instructions

Authors:

It is strongly recommended that you peruse the Handhelds.org FAQ/Howto, particularly the section on Getting Started.

[Upgrading to Familiar v0.6-pre1 from Familiar v0.5.2]

If you really want to, you can upgrade to v0.6-pre1. It might even work. It will be difficult to get the space savings of busybox with an upgrade at this point in time, but we're working on that as well.

First, back up all of your user data from the ipaq to a safe place!

  1. Edit the file /etc/ipkg.conf, adding the following line instead of the previous Familiar release area:
      src v0.6-pre1 http://familiar.handhelds.org/familiar/releases/v0.6-pre1/base/armv4l/
    
  2. Now update ipkg and ipkg-conf:
      sh# ipkg update
      sh# ipkg upgrade ipkg ipkg-conf
    
    Tell it to overwrite /etc/ipkg.conf with the maintainer's version.

    Now fetch the new list of available packages, because v0.6-pre1 consists of 3 feeds:

      sh# ipkg update
    
  3. Now update libc:
      sh# ipkg upgrade libc6
    
  4. Now upgrade everything else:
      sh# ipkg upgrade -force-depends -force-overwrite
    
  5. Update the busybox symbolic links.
      sh# busybox --install -s 
    

[Installation Preparation]

Installation of Linux on the iPAQ consists of 3 steps:

  1. Installing the bootldr. This step will erase all user data stored on the iPAQ, so performing a backup first may be required.
  2. Installing the root filesystem. This step requires a serial cable or cradle. It cannot currently be performed with a USB cable or cradle. The dual USB/Serial cradle that comes with the H3800 will work.
  3. Configuring the iPAQ for access to the internet. The next step requires the iPAQ to be connected to the internet via ethernet, WLAN PPP, or USB.
  4. Installing packages and fonts

For a more comprehensive discussion of how to run Linux on the iPAQ, please see the Handhelds FAQ/HOWTO.

Hardware/Software Requirements for Install

Currently, in order to install Linux on the Compaq IPAQ H3600-series, it's required that you have the following:

iPAQ H3600 Install Pre-Requisites
a H3600-series Compaq iPAQ PDA w/ some form of bootldr running.
a serial cable, serial cradle, or a USB cradle modified to do RS232 serial.
a terminal emulator capable of performing xmodem upload.

H3800 Linux support is complete.

See H3800 Linux port status page for details.

H3900 is unsupported under Linux.

Although we have begun porting Linux to the H3900, there is nothing ready yet. See H3900 Linux port status page for details.

Please Note: Installing the Bootldr

This document assumes that the installation of Familiar v0.6-pre1 is occurring on an iPAQ that already has a version (any version) of CRL's bootldr installed in FlashROM. If this is not the case, please see [the bootldr installation instructions] to see how to install the boot loader and back up WinCE using BootBlaster. Please be sure to follow every step of those instructions before continuing. Also note that you do not need to install the bootloader as instructed below if those instructions had you install a bootloader that is at least as up to date as the bootloader discussed below. That sounds almost legal.

In addition, you must also have the following files:

Familiar v0.6-pre1 Installation Components
1. Bootloader
CRL/OHH Bootldr 2.18.01 The Minimum Required Bootloader for Familiar v0.6-pre1 [here] [md5]
2a. Bootstrap Root Image
Familiar v0.6-pre1 bootstrap-v06-4.jffs2 The basic requirements for getting the handheld booting, and on the network. Includes ppp, pcmcia, ethernet, wireless, and ssh. [here] [md5]
2b. X/GPE Bootstrap Image
Familiar v0.6-pre1 bootgpe-v06-4.jffs2 X/GPE, with user logins. [here] [md5]
2c. Opie Bootstrap Image
Familiar v0.6-pre1 bootopie-v06-4.jffs2 The basic opie installation. [here] [md5]
3a. Base Packages
Familiar v0.6-pre1 packages The core packages that make up Familiar. [here]
3b. X Packages
Familiar v0.6-pre1 packages The X and GPE packages that make up Familiar. [here]
3c. Opie Packages
Familiar v0.6-pre1 packages The opie packages that make up. [here]

Properly Configure the Terminal Emulator

Make sure the terminal emulator is up and running, and is properly interacting with the bootloader.  Proper interaction consists of being able to issue commands, and get responses (e.g. the help command should return the bootloader usage). Your terminal emulator must be set to 115200 8N1 serial configuration, no flow control. Failing to use these settings will lead to trouble, so double and triple check all settings.

If you cannot interact with the bootloader, make sure your terminal settings are correct, that the iPAQ is properly connected to the host computer, and that the iPAQ is actually on.  If everything seems fine, try restarting the host terminal emulator, and toggle a hard-reset on the iPAQ (i.e. by switching the battery disconnect at the bottom off, waiting 10 seconds, and then back on again).

[Installation Instructions]

Loading bootldr 2.18.01

Some of the functionality of Familiar v0.6-pre1 (e.g. booting the kernel out of the root filesystem, not requiring a parameter partition) requires that you have a recent bootloader revision. In this case, the recommended bootloader for the iPAQ is OHH/CRL bootldr 2.18.01 or a later revision (see the above software table for locations).

If you already have bootldr 2.18.01 or later installed, you can skip this step. Before you start, be sure your iPAQ is well charged, and plugged into a constant power source. DO NOT, under any circumstances, reset the iPAQ during this process. There is a chance you could get your device into an unusable state, although CRL has graciously offered to repair "bricked" iPAQs.

Otherwise, upgrading is quite straight forward:

Here's an example:

boot> load bootldr
loading flash region bootldr
using xmodem
ready for xmodem download.. 
BSD sum value is: 00000000
programming flash...
unlocking boot sector of flash
Protect=00000000
erasing ...
Erasing sector 00000000
writing flash..
addr: 00000000 data: EA00008E
addr: 00010000 data: E1A0C00D
verifying ... done.
startAddress :00000000
limitAddress :00018980
Protecting sector 00000000
Protect=00010001

		  

Note: Don't panic if your numbers are different.  The most important parts of the above example are the "erasing .. writing flash .. verifying .. done" steps.

At this point, using your stylus, hit the reset button at the bottom right hand corner of the iPAQ. You should now see the new bootloader splash screen. Hit your space-bar, in your terminal emulator, to get back to the "boot>" prompt.

One more time, make sure that both hardware and software flow control are disabled on the serial port. If the iPAQ is not accepting input from the serial port, most likely hardware flow control was enabled in the terminal emulator.

Performing Boot-loader Configuration

In order to properly boot the Linux, with the correct kernel arguments, the flash partitions need to be setup correctly.

The boot-loader should inform you that it has reset, and redefined the flash partitions. If you had any problems w/ the above step, make sure that you reset your iPAQ after upgrading to bootldr 2.18.01.

Here's an example:

boot> partition reset
argv[1]=reset
defining partiton: bootldr
defining partiton: root
boot> 

		  

Flashing the Filesystem

As an initial step, a root filesystem image must be installed using the iPAQ's boot-loader. 

You should see something like:

                    

boot> load root
loading flash region root
using xmodem
ready for xmodem download..
Erasing sector 00140000
Erasing sector 00180000
Erasing sector 001C0000
Erasing sector 00200000
				  .
				  .
				  .
addr: 00360000 data: 781590DB
addr: 00370000 data: 642637AE
addr: 00380000 data: E0021985
addr: 00390000 data: 15DA97EC
Erasing sector 00FC0000
writing flash..
addr: 00100000 data: E0021985
addr: 00110000 data: E3BAD617
addr: 00120000 data: 0FA1F57B
addr: 00130000 data: 9343AEEB
				  .
				  .
				  .
addr: 00600000 data: E0021985
addr: 00610000 data: FFFFFFFF
addr: 00620000 data: FFFFFFFF
addr: 00630000 data: FFFFFFFF
verifying ... formatting ... done.
boot>
                    
                  

Again, the important part of this process is that the bootloader successfully erased, wrote, and verified the filesystem image.

Boot the Installlation for the First Time

You should see Linux startup, and numerous daemons execute. It will pause for 10 or 20 seconds while it generates an ssh server key for your iPAQ.

                    
...
Generating SSH DSA host key (this is slow, please be patient)...
Generating DSA parameter and key.
Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
The key fingerprint is:
75:60:e4:ab:75:4a:5c:17:e5:10:fd:4e:81:e4:84:ca root@familiar
Done.
Starting OpenBSD Secure Shell server: sshd.

familiar login:
                    
                  

If all goes well, you should be presented with a "login:" prompt, as shown above.

Configuring the iPAQ for Access to the Internet

The next step is to configure the iPAQ for access to the Internet. If you're using DHCP and a PCMCIA/CF networking card, everything might work out of the box. If not, consult one of the following URLs:

Verify that everything is operational (e.g. by ping'ing familiar.handhelds.org). Be sure that there is at least one nameserver entry in /etc/resolv.conf (if you are using pump for DHCP, this will be taken care of for you).

At this point, it's useful to set the time on the iPAQ. The easiest mechanism for doing this is using "ntpdate" to retrieve time information from over the network. An example would be to enter ntpdate -b time.handhelds.org on the command line.

In order to proceed using Familiar's packaging tools, the available package list must be updated. Execute the following at a shell prompt: ipkg update

Where to from here?

At this point you have a booting iPAQ. In order to make it useful as more than just a kernel and a running shell, it helps to install new packages. The easiest way to do this being ipkg.

Installing Packages

In order to see a listing of available packages, simply execute: "ipkg list". The Familiar Project provides several meta-packages, in order to make it easiers for users to get a useful environment:

Meta Package Name Description
complete A "complete" set of packages installed. Creates a usable X environment to work in.
Please see the postinst FAQ below if you're going to be installing this meta-package.
x All the required bits to get a working X server, and clients up.
wireless The utilities for configuring 802.11b cards.
mp3-player Sound configuration and MP3 playback utilities.

In order to install any of the above meta packages, simply execute " ipkg install meta_package_name".  ipkg will download and install all the proper packages to meet the required dependencies. For example, to install complete, which includes x, wireless and mp3-player, perform the following commands:

# ipkg update
Downloading http://familiar.handhelds.org/familiar/releases/v0.6-pre1/packages/armv
4l/Packages
--12:36:54--  http://familiar.handhelds.org:80/familiar/releases/v0.6-pre1/packages
/armv4l/Packages
           => `/tmp/ipkg-6HmCQP/Packages'
Connecting to familiar.handhelds.org:80... connected!
HTTP request sent, awaiting response... 200 OK
Length: 190,600 [text/plain]

    0K -> .......... .......... .......... .......... .......... [ 26%]
   50K -> .......... .......... .......... .......... .......... [ 53%]
  100K -> .......... .......... .......... .......... .......... [ 80%]
  150K -> .......... .......... .......... ......                [100%]

12:36:55 (533.33 KB/s) - `/tmp/ipkg-6HmCQP/Packages' saved [190600/190600]

Updated list of available packages in /usr/lib/ipkg/lists/v0.6-pre1
# ipkg install complete
Downloading http://familiar.handhelds.org/familiar/releases/v0.6-pre1/packages/armv
4l/apmd_3.0final-1-fam2_arm.ipk
--12:37:13--  http://familiar.handhelds.org:80/familiar/releases/v0.6-pre1/packages
/armv4l/apmd_3.0final-1-fam2_arm.ipk
           => `/tmp/ipkg-ykp9Ru/apmd_3.0final-1-fam2_arm.ipk'
Connecting to familiar.handhelds.org:80... connected!
HTTP request sent, awaiting response... 200 OK
Length: 7,085 [text/plain]

    0K -> ......                                                 [100%]
...

Installing complete (0.11)
Configuring complete...Done

Installing fonts and setting the time

The "familiar-postinst" package provides a mechanism for performing a couple common operations that people are interested in:

Simply install the "familiar-postinst" package (this is not required if you installed "complete"), and run /root/postinst. It will take care of the rest.

# /root/postinst
--12:45:13--  http://familiar.handhelds.org:80/familiar/releases/v0.4/install/H3
600/postinst-kit.tar.gz
           => `postinst-kit.tar.gz'
Connecting to familiar.handhelds.org:80... connected!
HTTP request sent, awaiting response... 200 OK
Length: 14,143 [application/x-tar]

    0K -> .......... ...                                         [100%]

12:45:13 (460.38 KB/s) - `postinst-kit.tar.gz' saved [14143/14143]

 1 Jun 12:45:15 ntpdate[928]: Can't adjust the time of day: Invalid argument

These fonts are provided by Microsoft "in the interest of cross-
platform compatibility".  You are free to download these fonts and
use them for your own use, but you may not redistribute these fonts
without first registering with Microsoft and following their restrictions.

--12:45:15--  http://www.microsoft.com:80/typography/downloads/andale32.exe
           => `andale32.exe'
Connecting to www.microsoft.com:80... connected!
HTTP request sent, awaiting response... 200 OK
Length: 198,384 [application/octet-stream]

    0K -> .......... .......... .......... .......... .......... [ 25%]
   50K -> .......... .......... .......... .......... .......... [ 51%]
  100K -> .......... .......... .......... .......... .......... [ 77%]
  150K -> .......... .......... .......... .......... ...        [100%]

12:45:17 (121.24 KB/s) - `andale32.exe' saved [198384/198384]

--12:45:17--  http://www.microsoft.com:80/typography/downloads/verdan32.exe
           => `verdan32.exe'
Connecting to www.microsoft.com:80... connected!
HTTP request sent, awaiting response... 200 OK
Length: 351,992 [application/x-msdownload]

    0K -> .......... .......... .......... .......... .......... [ 14%]
   50K -> .......... .......... .......... .......... .......... [ 29%]
  100K -> .......... .......... .......... .......... .......... [ 43%]
  150K -> .......... .......... .......... .......... .......... [ 58%]
  200K -> .......... .......... .......... .......... .......... [ 72%]
  250K -> .......... .......... .......... .......... .......... [ 87%]
  300K -> .......... .......... .......... .......... ...        [100%]

12:45:21 (101.85 KB/s) - `verdan32.exe' saved [351992/351992]

extracting 'fontinst.inf'...
extracting 'andale.inf'...
extracting 'fontinst.exe'...
extracting 'AndaleMo.TTF'...
extracting 'ADVPACK.DLL'...
extracting 'W95INF32.DLL'...
extracting 'W95INF16.DLL'...
extracting 'fontinst.exe'...
extracting 'fontinst.inf'...
extracting 'Verdanab.TTF'...
extracting 'Verdanai.TTF'...
extracting 'Verdanaz.TTF'...
extracting 'Verdana.TTF'...
All fonts downloaded and installed.  Thank you, Bill.

Familiar post-installation completed successfully.
#

[Upgrading]

[FAQs]

Q: Why is the iPAQ not accepting input from the serial port? It displays the boot> prompt but I cannot type any keys

Most likely, the terminal emulator has hardware flow control enabled. Disable both hardware and software flow control. If you are using Hyperterminal, sometimes it consumes all CPU cycles and needs to be restarted.

Q: What is this post-install process I hear about?

See the section on Installing fonts and setting the time.

Q: I've updated the time with ntpdate, but it's still wrong, why?

The problem is that Linux doesn't know what timezone you are in, and so it is defaulting to GMT. To correct this, install an appropriate timezone file on the iPAQ at /etc/localtime. You should be able to find a link to such an appropriate timezone file at /etc/localtime on your desktop Linux system. After you have installed /etc/localtime, to get existing time displays to update (like the blackbox time), you may need to stop and start the appropriate process. You may find that /etc/init.d/x stop then /etc/init.d/x start done via a serial console or over a ssh session on the iPAQ, will provide the desired results.

Q: What happened the complete image that used to be available?

Familiar is getting to the point where it is quite dependent on access to the Internet. Task-complete was put together so that people did not need a full net connection to their iPAQ to check out the full feature-set of Familiar,.. with some of the new changes/dependencies (e.g. TrueType fonts), this really isn't possible.

Please follow the provided instructions on configuring net connectivity for the iPAQ.


$Id: install.html,v 1.11 2002/08/09 13:06:39 jamey Exp $