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 | |||
|
This document assumes that the installation of Familiar v0.4 is occuring 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 [this] document on backing up WinCE, and installing the initial the boot loader using OSLoader. Please be sure to follow every step of those instructions before continuing with these instructions. 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.
In addition, you must also have the following files:
| Familiar v0.4 Installation Components | ||||||||||||||||||||||
|
||||||||||||||||||||||
Choosing the which root filesystem image to load is a matter of capabilities and preference. With the bootstrap image, only the bare essentials are loaded onto the iPAQ (i.e. enough to get networking up and running). Once networking has been setup, you can use ipkg to install all the features you'd like to use (e.g. X, or Python). It will automatically download them from the Familiar package repository. The task-familiar-complete image, on the other hand, is for people that want to duplicate the functionality that the older Familiar CRAMFS images provided out of the box.
In a nut shell: if you're really new to Linux/UNIX, and don't feel comfortable setting up networking (in one way or another), or you're lazy, install "task-familiar-complete", otherwise use "task-bootstrap".
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).
Some of the functionality of Familiar v0.4 (e.g. sleep and resume) requires that you have a recent bootloader revision. In this case, the recommended bootloader for the iPAQ is OHH/CRL bootldr v2.14.5 or a later revision (see the above software table for locations).
If you already have bootldr v2.14.5 or a later version 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 boot> pflash 0 0xffff 1 addr=00000000 len=0000FFFF protect=00000001 startAddress :00000000 limitAddress :0000FFFF Protecting sector 00000000 Protect=00010001 boot> qflash 2 value = 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.
Make sure the bootldr flash sector is protected! If qflash 2 does not print 00010001 then protect the flash sector manually. It is safe to perform this step even if it was already protected. Use pflash 0 0xffff 1
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.
In order to properly boot the Linux kernel, several boot-loader paramaters
must be set.
The boot-loader should inform you that it has saved the boot paramaters. If you had any problems w/ the above steps, make sure that you reset your iPAQ after upgrading to bootldr v2.14.5.
Here's an example:
boot> set linuxargs "noinitrd root=/dev/mtdblock/3 init=/linuxrc console=ttySA0" setting param=linuxargs to value=noinitrd root=/dev/mtdblock/3 init=/linuxrc console=ttySA0 boot> set copy_ramdisk 0x0 setting param=copy_ramdisk to value=0x0 boot> set baudrate 115200 setting param=baudrate to value=115200 update_baudrate: new baudrate=0001C200 baudrate changed to 0x0001C200 boot> partition reset argv[1]=partition defining partiton: bootldr defining partiton: params defining partiton: kernel boot> partition define kernel 0x80000 0x80000 0 argv[1]=partition defining partiton: kernel boot> qflash 1 value = 00170017 boot> partition define root 0x100000 0xf00000 16 argv[1]=partition defining partiton: root boot> params save bootldr: set linuxargs "noinitrd root=/dev/mtdblock/3 init=/linuxrc console=ttySA0" programming flash...erasing ... Erasing sector 00040000 writing flash.. addr: 00040000 data: 646C7470 verifying ... done. boot> |
Flashing a new kernel is required to use the latest version of Familiar. In order to initiate the upload (and then the flashing) a request must be made to the bootloader.
You should see something like:
boot> load kernel loading flash region kernel using xmodem ready for xmodem download.. Erasing sector 000C0000 writing flash.. addr: 00080000 data: E1A00000 addr: 00090000 data: 638338EB addr: 000A0000 data: E4FEF020 addr: 000B0000 data: 16ABEE34 addr: 000C0000 data: A54139FC addr: 000D0000 data: 9A204780 addr: 000E0000 data: 5CA4D7DA addr: 000F0000 data: 1EF73EED verifying ... done. boot> |
Don't be too worried if the numbers do not exactly match up. The crucial part of the installation is verifying that the bootloader erased, wrote, and verified the flash.
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.
You should see Linux startup, and numerous daemons execute. If all goes well, you should be presented with a "login:" prompt.
In order to proceed using Familiar's packaging tools, the available package
list must be updated.
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.
In order to get the installation up to the latest available package, use ipkg's upgrade facility.
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.
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 |
| task-familiar-complete | A "complete" set of packages installed. Roughly equivalent to the older Familiar CRAMFS images (e.g. includes X, and Python). |
| task-x | All the required bits to get a working X server, and clients up. You might want to install fscrib or fstroke to make this useful. |
| task-wireless | The utilities for configuring 802.11b cards. |
| task-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.
Remove the package using "rm" manually. This is a bug w/ ipkg. A fixed package should be available soon.
The "familiar-postinst" package provides a mechanism for performing a couple common operations that people are interested in:
Simply install the "familiar-postinst" package, and run /root/postinst. It will take care of the rest.
Note that this process will be changing drastically soon. It works for now.
We're still resolving dependencies from some of the converted Debian package control information. As v0.4 matures, these dependency warnings should disappear.
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.