HP Jornada 56x Series
Linux support for the 568 seems to be doing rather well. See the
official Jornada 56x project page to check the current status.
A howto can be found
here. (recovered from archive.org)
Note: The above document is currently unavailable (March 2007). Here is a replacement; feel free to modify or improve it.
To be improved soon...
Supported devices
hp Jornada 564/565 - 32MB RAM
hp Jornada 567/568 - 64MB RAM
Required tools
Hardware
- hp Jornada 56x
- original or quality aftermarket serial cable/cradle (preferably tested) - it will NOT work with USB
- AC power adapter
- A CF card (at least 16MB) formatted with FAT16
- A 'helper machine' with a working 9-pin RS-232 serial port
Software
You will find the necessary tools
here; read/ask on the mailing list about the current status and the latest available images.
- bootblaster.exe from handhelds.org (details below) on the CF card
- bootldr from handhelds.org (details below) on the CF card
- Linux *.jffs2 image and the bootldr from handhelds.org on the 'helper machine' (details below)
- a terminal emulator program (Unix: minicom; Windows: hyperterminal) on the 'helper machine' (provided by your OS, not by handhelds.org)
Installation
I assume that you have a working Windows CE installed on the Jornada.
1.) Back up your data from Windows CE
2.) Copy the bootblaster-j56x.exe and the bootldr to the CF card.
You must choose one of the boot loaders according to your Jornada type:
- 564/565: bootldr-j56x-32M-2.21.12.bin
- 567/568: bootldr-j56x-64M-2.21.12.bin
3.) Execute the bootblaster:
- Save the Windows CE bootable image to the CF card for fallback
- Flash the boot loader to the ROM
For details, see
Installing bootloader using CF/MMC/SD
Find a comfortable place for the PDA on your desk, making sure the cables are safely arranged - a disconnect can lead to unrecoverable damage of the Jornada.
4.) Reset the device (reset button on the back of the Jornada). Remove the main and the backup battery and wait a few seconds.
5.) Connect the serial cable to the PC and start your terminal emulator with the following settings:
- Baud rate (Bits per second): 115200
- Data bits: 8
- Parity: None
- Stop bits: 1
- Flow control: None
You may want to turn on data capture if you want to keep the output.
6.) Power on the device without the batteries (plug in the power cord or put the device on the serial cradle) and watch the terminal as the boot loader comes up. You have a few seconds to hit Esc or Backspace (theoretically, any key except Enter).
You will see something like this:
>> Compaq OHH BootLoader, Rev 2-21-11 [BIG_KERNEL] [MONO] >> 03-10-07_18:08 >> Last link date: Tue Oct 7 18:08:14 CEST 2003 >> Contact: bootldr@handhelds.org Cpu company: INTEL Cpu Architecture: StrongArm Cpu Part: SA1110 processor ID: 6901B118 >> (c) 2000-2001 Compaq Computer Corporation, provided with NO WARRANTY under the terms of the GNU General Public License. >> See http://www.handhelds.org/bootldr/ for full license and sourcesPress Return to start the OS now, any other key for monitor menu params_eval: prefix_in =bootldr: params_eval: just_show =00000000 boot>
7.) The boot loader will stop at a boot> prompt. Type 'load root'
You will see something like this:
boot> load root partition root is a jffs2 partition: expecting .jffs2 or wince_image.gz. After receiving file, will automatically uncompress .gz images loading flash region root using ymodem ready for YMODEM transfer...
8.) Upload the Linux jffs2 image file via ymodem transfer.
- If you receive an "erase error!" message, you may have installed the bootldr-j56x-64M-2.21.12.bin on a 32 MEG system. If you have installed the wrong bootldr you will need to install the correct one.
At the boot prompt, load the correct bootldr with 'load bootldr'
Then retry 'load root' and uploading the Linux image.
The upload takes approximately 25 minutes.
After the upload of the Linux image is done, flashing will start automatically.
During flashing the Linux image, you will see something like this:
00FC0000 bytes loaded to C0000400 programming flash...erasing ... Erasing sector 00040000 Erasing sector 00080000 Erasing sector 000C0000 Erasing sector 00100000 Erasing sector 00140000 Erasing sector 00180000 Erasing sector 001C0000 Erasing sector 00200000 Erasing sector 00240000 ... addr: 00FC0000 data: 20051985 addr: 00FD0000 data: FFFFFFFF addr: 00FE0000 data: FFFFFFFF addr: 00FF0000 data: FFFFFFFF verifying ... formatting ... done. boot>
9.) Boot Linux: type 'boot' at the bootldr prompt. It will look like this:
boot> boot booting jffs2... booting boot/zImage from partition >root< Scanning all of flash for your JFFS2 convenience. Est Time: 6-12 seconds! build_list: max = 01FBFFBC .. dir entries = 000007B1 frag entries = 0000260B +4 increments = 00000000 +file_offset increments = 00002DFB loaded file of size = 0x0012D00C at location 0xC0008000 kernel partition base C0008000 kernel_magic=E1A00000 kernel_region_words[9]=016F2818 Linux ELF flash_imgstart=50040000 size=01FC0000 dest=C0000000 offset=00008000 MMU Control=C19F4071 MMU PIDVAM=00000000 Skipping kernel copy by request. C0008000: E1A00000 C0008004: E1A00000 C0008008: E1A00000 C000800C: E1A00000 C0008010: E1A00000 C0008014: E1A00000 C0008018: E1A00000 C000801C: E1A00000 C0008020: EA000002 C0008024: 016F2818 root_filesystem_name=ramdisk Grabbed linuxargs, argc = 00000001 Using mach_type 000000A7 setting boot parameters to noinitrd root=/dev/mtdblock1 init=/linuxrc console=ttySA0 mdcnfg=B254B257 Making core tag at C0000100 Making cmdline tag at C0000114 Making mem32 tag at C00001B4 command line is: mtdparts=ipaq:0x00040000@0x00000000(bootldr)ro,0x01FC0000@0x00040000(root) noinitrd root=/dev/mtdblock1 init=/linuxrc console=ttySA0 rootfstype=jffs2 linuxEntryPoint=C0008000 Booting Linux image Uncompressing Linux................................................................................ done, booting the kernel. Linux version 2.6.19-hh7 (root@alex) (gcc version 4.1.1) #1 PREEMPT Wed Dec 27 14:14:05 CET 2006
Note that this actually happens every time you turn the device off and on, so be patient...
If everything is OK, Opie will start and after calibrating the touchscreen, you will have a working Jornada running Linux.
If you want to get WinCE back, with "load root" flash the wince_image.gz and then with "load bootldr" flash the saved_bootldr.gz.