Cocoboot Loader


Cocoboot allows you to load and run a Linux kernel on a PalmOS 5 based handheld. It is conceptially based on the Garux loader but attempts to autodetect all the information that is required so that one binary can be used for all handhelds, without any need for modification.

Cocoboot is currently developed and maintained by members of the Hack&Dev project.




Supported Machines

Currently Cocoboot knows about the following devices. It may actually work on other devices as well, you will just have to specify the Linux machine id manually in the top left corner of the main window.

POS id Linux id Consumer name
TunX 835 Palm LifeDrive?
H102 909 Palm Treo 650
D053 1230 Palm Treo 680
D052 1421 Palm Treo 700p
D061 1944 Palm Centro (GSM)
D062 1944 Palm Centro (CDMA)
MT64 918 Palm Tungsten C
Cct1 817 Palm Tungsten E
Zir4 844 Palm Tungsten E2
Frg1 839 Palm Tungsten T
Frg2 834 Palm Tungsten T2
Arz1 829 Palm Tungsten T3
TnT5 917 Palm Tungsten T5
D050 885 Palm TX
Zi22 1090 Palm Zire 31
Zpth 993 Palm Zire 71
Zi72 904 Palm Zire 72


You will need prc-tools, pilrc and the Palm OS SDK installed. Then simply use "make" to build. You might need to adjust the paths in the Makefile if your SDK is in a non-standard place.

USB Console

Cocoboot includes a primitive USB console which you can use for dumping memory and other debugging pruposes. Enable it from Cocoboot's Tools menu. Plug your PDA's USB into your PC, make sure you have the visor.ko kernel module loaded and you should see two serial ports appear as /dev/ttyUSB0 and /dev/ttyUSB1. Connect to /dev/ttyUSB0 using minicom with a baud rate of 115200 to access the console.

Note: You may need to use ttyUSB1 on some devices such as the LD.

Configuration file (cocoboot.conf)

Place in root directory of SD card (or HDD).

# cocoboot.conf.exaple - example configuration file for Cocoboot

## cmdline
# The value of cmdline is the default kernel command-line.  The user can
# edit this via the GUI unless noprompt is enabled.
# Default: [blank]

cmdline = root=/dev/mmcblk0p1

## kernel
# Filename of the kernel zImage.  Cocoboot will look for this file on all
# attached VFS disks.
# Defaut: /zImage

kernel = /zImage-2.6.21

## initrd
# Filename of the initrd or initramfs ramdisk image.
# Default: /initrd.gz

initrd = /initramfs_cpio.gz

## noprompt
# When this option is 1, Cocoboot will not prompt for the kernel
# command-line and will instead boot Linux immediately when it is started.
# Default: 0

noprompt = 0

## openserial
# Set this to the serial (or USB) port to open before booting.
#      Cradle: 0x8000
#          IR: 0x8001
#     Console: 0x8002
# CradleRS232: 0x8003
#   CradleUSB: 0x8004
# Default: 0 (disabled)

openserial = 0
Last modified 10 years ago Last modified on 11/08/08 10:24:25

Attachments (1)

Download all attachments as: .zip