How a Linux Jornada user looks like?

viva o lynx!! viva o lynx!!
Anonymous users running Linux in the HP Jornadas connected to world using cable or wireless network cards.



Table of Contents:

1.0 .........How to install Linux in a Jornada 710/720/728?
2.0 .........Preparing the partitions and filesystem
3.0 .........Getting the loader, kernel and initrd
4.0 .........Linux Distributions for HP Jornada 7xx
4.1 ...........JLime
4.2 ...........720degrees
4.3 ...........Debian GNU/Linux
4.3.1 .........Woody - 3.0
4.3.2 .........Sarge - 3.1
4.3.3 .........Etch - 4.0
4.3.4 .........Lenny - 5.0
5.0 .........Tips
5.1 ...........LCD options
5.2 ...........Battery options
5.3 ...........Swapfile
5.4 ...........Suspend options
5.5 ...........Second and third mouse button
6.0 .........Useful links
7.0 .........Author, feedback, license and Thanks_to

1.0 - How to install Linux in a Jornada 710/720/728?

There are two different answers to this question. You can have a Flashboard attached to your jornada, or not.
This howto is about installing Linux in HP Jornada without a Flashboard. If you have one you may want to look here: http://handhelds.org/projects/jornada720.html.
If you don't know what a Flashboard is, you don't have one, so this is your howto :-) .

In fact you cannot easily remove WinCE and install Linux in your Jornada. What you can do is bootstrap Linux from WinCE. But when you reset the machine (took off the batteries), WinCE (located in a read-only memory) is loaded again.
So, to load Linux in your Jornada 7xx you need a CompactFlash, a Microdrive or something like that and a way to put the files inside the CF (like a USB to CF adapter).

Jan Prochazka has plans to make a Flashboard for Jornada 7xx, so stay tunned!


2.0 - Preparing the partitions and filesystem

Lets assume that your CF is represented by /dev/sda in your desktop pc. Partition the CF like this:


$ fdisk -l /dev/sda
Disk /dev/sda: 512 MB, 512483840 bytes
16 heads, 63 sectors/track, 993 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 22 11056+ 6 FAT16
/dev/sda2 23 993 489384 83 Linux


So, it's one small Fat16 (10Mb is enought) and the remaining space with a Linux partition.
If you want you can create a swap partition, ok, but it's not too good since the CF is slow and has a limited times of rewrites. If you have a IBM microdrive, I think there is no problems using swap in it. A swap file in a NFS mounted volume can be very confortable if you are in your home network.

Format your partitions:

# mkfs.msdos /dev/sda1
# mkfs.ext2 /dev/sda2
or
# mkfs.ext3 /dev/sda2

3.0 - Getting the loader, kernel and initrd

You need to download a loader, a kernel and a initrd to be able to boot into Linux.

loader:
jlinexec.exe (or the old linexec.exe) *
params.txt *

Kernel from Michael Gernoth ( j720 tree):
http://wwwcip.informatik.uni-erlangen.de/~simigern/jornada-7xx

You should download from the latest kernel release directory the files:
vmlinuz-2.4.xx-j720-y *
initrd-2.4.xx.gz *
modules-2.4.xx-j720-y.tar.bz2.


Place the files with * inside the FAT partition.
Adjust params.txt to the correct kernel and initrd paths.
Now you have all things needed to boot Linux (just double-click jlinexec.exe inside \Storage Card, \Speicherkarte, \Carte de stockage or \My Documents).

(initrd adjusted to mount root from /dev/hda2)
Warning: Pocket IE automagically renames the downloaded files, so be sure that the names of the files are correct!

Another working version of kernel is available here (2.4.19-rmk6-pxa1-hh3-j720-3).

4.0 - Linux Distributions for HP Jornada 7xx

You need a linux distribution to be able to use the system.
There are some ARM Linux distributions available: 720degrees, JLime, Debian, Gentoo and Gentoo Embbeded, ArmedSlack, DM, Familiar and others, but only JLime and 720degrees are customized especially for the HP Jornada 7xx.

4.1 - JLime

From JLime website (http://jlime.com):

JLime is an attempt to port Linux to the Jornada and MobilePro Handheld PC's. JLime aims to provide a maintained distribution which can be used to transform your HPC into either an enhanced PDA or a mini-laptop. As with all Linux code, JLime is open source and free to use.

Release with kernel 2.6: (including the system assembled with Opie, GPE or IceWM, and JLinexec):
http://jlime.com/downloads/releases/mongo/

Release with kernel 2.4 (with sound support!):
http://freeshells.ch/~wicked74/j720/icewm720/

Instalation Instructions: http://jlime.com/forum/viewtopic.php?f=59&t=802

This is a true distribution made for handhelds, and will probably be the best option for our Jornadas.

4.2 - 720degrees

720degrees is a distribution of the Debian GNU/Linux ARM port customized for the HP Jornada 710/720/728 handheld computers.
Download page: http://stevenwiki.homedns.org/720/oldsite/#downloads.
Direct link to system image: 720degrees-sarge-r2-base.tar.bz2 or 720degrees-debian-etch-base.tar.bz2

Remember to put the apt repository in /etc/sources.list:
http://stevenwiki.homedns.org/720/apt/

If you want to use your HP Jornada as a true workstation, use this distribution in your HP Jornada 7xx.

4.3 - Debian GNU/Linux

Since Debian Potato 2.2 there is a port for the ARM architecture.


4.3.1 - Debian Woody 3.0

Since version 3.0 Debian does not include base*.tgz anymore. So to make things easier I made a base3_0-2.tgz (no guarantees). Download the file and uncompress it inside the linux partition of the CF disk.
Then, uncompress the kernel modules (modules-2.4.xx-j720-y.tar.bz2), adjust the config files, setup the network and start installing packages using the apt-get tool :-)

4.3.2 - Debian Sarge 3.1

If you want to install Debian Sarge, Matthis Rought made page about how to do that:
http://badaboum.bidibom.free.fr/linux-jornada-fs

If you just want the tarball, go here: debian-sarge-j720-image.tar.bz2

I compiled mplayer for sarge: mplayer_1.0rc1-1_arm.deb. Instructions on how to use, here: http://www.handhelds.org/pipermail/jornada/24/2401.html.


4.3.3 - Debian Etch 4.0

To install Debian Etch (the latest stable Debian distribution), start with the 720degrees tarball: 720degrees-debian-etch-base.tar.bz2, and adjust /etc/apt/sources.list to reflect that Debian Etch is now the 'stable' version of Debian, and update the system.


4.3.4 - Debian Lenny 5.0

Michael Fritscher made available a Lenny tarball along with the instalation instructions here: http://mifritscher.de/j720/


5.0 - Tips

Note that these tips may work only with kernel 2.4.
Kernel 2.6 support is almost completed, only Suspend and Sound support is lacking.
The maintainer of the Jornada sub-architecture in kernel is Kristoffer Ericson.


5.1 - LCD options

If you have not done this before, load the kernel module:
# modprobe j720_control

- Setting brightness and contrast*:

# echo 110 > /proc/jornada/contrast
# echo 190 > /proc/jornada/brightness

* There is a program called 'lcdset' that has a nice gui (ncurses) to do these adjusts.

Bigger numbers means lower contrast and brightness. The range is 0 to 255.

5.2 - Battery options

- Reading the battery charge*:
# cat /proc/jornada/battery

* There is a program called 'battstat' that shows all the power status in a organized way.


- Saving battery:
If you are not using the screen, you can turn it off pressing the power button.

5.3 - Swapfile

- Create a swapfile for more virtual memory as Jornadas 7x0 has only 32Mb of RAM:
(be aware that using swap in a CF can be harmful to the CF)
# dd if=/dev/zero of=/swapfile bs=1k count=60000
# mkswap /swapfile

Then you can put an entry in /etc/fstab for the created swapfile.


5.4 - Suspend options

Jornada has no real suspend yet, but it's possible the press the power button to shut down the screen and the pcmcia slot, and slow down the processor.
You can choose what you want to do when you press the power button.

- The screen is always turned off, of course.

- To keep the pcmia slot on (if you want your jornada to stay connected to the internet using a Wifi card, for example):

# echo disabled > /proc/j720_hacks/pcmcia

- To keep the CPU clock unchanged (if you want to listen your mp3's, for example):

# echo disabled > /proc/j720_hacks/cpufreq

All these commands can be placed in one startup script, to automate your choises.

To enable an option, replace 'disabled' for 'enabled'.


5.5 - Second and third mouse button

To emulate the second and third mouse button, you have to use the xmonobut software.

Source and binary download:
http://ftp.handhelds.org/mirror/Debian-snapshot-2003-09-17/Debian/pool/main/x/xmonobut/

And then make your .xinitrc looks like:

#!/bin/sh
xmonobut -k 21 -m 22 &
exec blackbox


The keycode 21 represents the frontal left sound volume button, and is used to emulate the right mouse button. The keycode 22 represents the right sound volume button, and is used to emulate the middle mouse button.


6.0 - Useful links

- A very good description and howto site about Jornada 720:
http://www.lowlevel.cz/log/pivot/entry.php?id=41

- Kernel 2.6:
http://jlime.com/phpBB2/viewtopic.php?t=411
http://jlime.com/phpBB2/viewtopic.php?t=464

- Linexec for kernel 2.6:
http://wwwcip.informatik.uni-erlangen.de/~simigern/jornada-7xx/linux-2.6/

- Official page of the Jornada port:
http://www.handhelds.org/projects/jornada720.html

- RMK patches, from Russel King, for the 2.4 kernel:
ftp://ftp-old.arm.linux.org.uk/pub/armlinux/kernel/v2.4/

- HH patches, from HandHelds.org, for the 2.4-rmk kernel:
http://www.handhelds.org/download/misc/linux/kernel/v2.4/

- Linux on the Jornada 720, a page about running Linux in Jornada 7xx with great infos:
http://acid.ch.pw.edu.pl/~sq5bpf/mylinux/j720/

- Page about brazillian Jornada keyboard layout:
http://www.students.ic.unicamp.br/~ra017126/jornada.htm

- The Linux Jornada email list:
http://www.handhelds.org/mailman/listinfo/jornada

- A text about running NetBSD in Jornada (in portuguese):
http://www.students.ic.unicamp.br/~ra017126/reportagem-jornada

- Discussion Forum about Linux in Jornadas:
http://jornada.pocketgaming.de/

- ArmedSlack FTP:
ftp://ftp.armedslack.org

7.0 - Author, feedback and license and Thanks_to

Thanks to Alex, Jacek, Michael, Kye, Kristoffer and others for kernel hacking to get linux up and running in Jornada 7xx and Claudio Neves, for the very cheap jornada battery he sold me.

Any feedback: rafael@riseup.net

Copyright (c) 2007 Rafael Diniz
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".