Debian Linux on the Psion netBook

 
 
Introduction
Openpsion Feedback and Development
Dillo and Firefox
gdcalc v. 2.13
gpsdrive v. 2.10pre2
AccessX
SIAG Office Suite
Short Answer:
Compactflash System
Short Answer:
Initrd-only System
EPOC Backup
Kernel Binaries
User Manual
System Disk
Other

What's new (5/7/06): Dillo 0.8.6 and Firefox compiled for netBook.
(6/8/05): Debian on netBook updated to "stable" - version 3.1 - Sarge. All files uploaded to Sourceforge "files".

This page is directed toward developing a Debian linux installation on the Psion netBook. This distribution presently based on Debian "stable", codenamed Sarge.

Introduction

This website is aimed at fostering development and use of linux on the Psion netBook subnotebook/ PDA, and in particular Debian linux. The main site for linux on Psion PDA's is www.openpsion.org, or more directly linux-7110.sourceforge.net. We seem to have lost our "psilinux.org" domain name for good now, which is just as well since openpsion.org has a nice ring to it! The descriptions here are meant to supplement the Linux on a Psion netBook HOWTO. This site is a place where "testing"-quality kernel binaries, distributions, initrd's etc. are posted, and documentation specific to this "testing" material is given. Better tested material, maybe, may be found at the Download Site of openpsion. This page is essentially a project notebook of one developer - B. Dushaw.

You are encouraged to contribute to the development of linux on the netBook. We particularly desire development of the kernel to support the various bits of hardware sported by the Psion. A list of supported hardware can be found at the defunct Wiki for Psilinux netBook; post at the openpsion mail list (read the list archives Here). Information about the netBook's hardware/kernel development is collected in the Linux on a Psion netBook HOWTO. Please send information, questions, FAQ (with answers?), to the mail list; material developed there will make its way to the HOWTO.

The latest system is the Debian "stable", codename Sarge, and it has been uploaded to Sourceforge. *.deb files from Debian Packages (ARM cpu/testing version) can be easily installed on this system. Linux on the netBook now supports compactflash, rudimentary PCMCIA, and touch screen.

N.B.: There is no power control for the linBook. At the moment, there is no way to turn the linBook off! So the mode of operation is much like a laptop - boot up when you need to use it and shutdown when you are done.

See also my Notes on a Psion netBook (Malaysian Style) for general notes on the netBook, EPOC, and using the netBook with a linux desktop.

MD5SUMS The file md5sum.txt contains a list of the md5sum check sums for the tarballs (and deprecated binaries). This to check/test that the files were downloaded without error.

Screenshot of WindowMaker on the netBook (640x480 screen) with an external mouse. WindowMaker runs well on the netBook.


Openpsion Feedback and Development

If you are using this "distribution" and would like to contribute to its development, or you are able to solve annoyances that you think others may run into, please use the the openpsion mail list.



Dillo 0.8.6 and Firefox 1.5.0.2 browsers for download

I have used my linBook to compile the latest version of the Dillo with the Internationalization patch. Version 0.8.6 has a number of new developments over what is available from Debian. It seems to render pages faster and better, has better support for cookies, and the version I make available has crude, basic support for https pages. The internationalization patch includes supports for frames and tabbed browsing. I compiled it using the "-Os -mcpu=strongarm1100 -mtune=strongarm1100" options, to try to optimize it for the netBook (any other suggestions for better optimization?). You can download it from: Sourceforge Files. This is just a tarball of the installation from /usr/local. Unpack it to /usr/local. If the Debian dillo package is installed on your system you should remove it. Dillo has a very small memory footprint (3-4 MB?) and starts up on the netbook in 6 seconds.

For a full-capability browser, install the firefox browser. This will work fine with patience; firefox takes 55 seconds to start on my netBook. The firefox binary, version 1.5.0.2, is also available from Sourceforge Files. This version is compiled from unmodified source code from mozilla.org.



The gdcalc RPN calculator for download

I have used my linBook to compile the latest version of the gdcalc. You can download it: gdcalc-2.13-ARM-BDD.tar.gz (0.3 MB). This is just a tarball of the installation to /usr/local. Unpack it to /usr/local. Gdcalc has a memory footprint of 3.7MB (3.0MB shared) and it starts up on the netbook in 5 seconds. The bad news is that it requires the gtk libraries and some of the gnome libraries: libgnome32, gnome-libs-data, libgnomesupport0, etc. But I am unsure of all its dependencies. A complete list is given in this text file: gdcalc.dep.

Install the "units" package and get conversion between units using gdcalc!



Updated gpsdrive for download

I have used my linBook to compile the latest version of the gpsdrive, version 2.10pre2. The Debian version seems to have its autodownload of maps broken. You can download it: gpsdrive-2.10pre2-sa1100-bdd.tgz (2.8 MB). This is just a tarball of the installation to /usr/local. Unpack it to /usr/local.

This binary has been compiled with "-O2 -mtune=strongarm1100" options. (A better set of options would have been "-Os -mcpu=strongarm1100 -mtune=strongarm1100")



AccessX

If you do a Fnc-p, SargeBook is set up to EnablePointerKeys, which turns on repeat keys for the AccessX extension, for awhile anyways. The accessX package is a utility that controls these options using a program. A "/usr/local/bin/ax +mousekeys" will start the EnablePointerKeys option. You can down load my compiled "accessX" package for ARM from the openpsion Wiki - it is small; unpack it to /usr/local.

This package was originally made to hack a solution to the WindowMaker autorepeat key proble. However, merely "xset r rate 500 50" in .xinitrc will fix that problem.



SIAG Office Suite

I compiled the latest version of the SIAG Office Suite version 3.6.0 on my linBook. I kept hearing so much about it, yet binaries were not readily available. This package has been compiled with the gcc "-O2 -mtune=strongarm1100" optimization. You can download it: siag.tgz (2.7 MB). This is just a tarball of the installation to /usr/local. Unpack it to /usr/local.

See the SIAG webpage for more information - but this includes a word processor and spreadsheet.

Notes: You can test this package out without messing up your system by moving /usr/local to /usr/local.save, say, and then mkdir /usr/local. Then unpack the SIAG package to /usr/local ("tar cfz siag.tgz -C /usr/local"). If you don't like the package, you can then just delete /usr/local and move the saved /usr/local.save back. The SIAG binaries have not been "stripped of symbols", so you can save disk space by executing "strip *" in /usr/local/bin. The egon binary segmentation faulted on my netBook, but pw and siag work fine.



Memory Issues Solved, more or less

At one point, my netbook would regularly lock up with an apparent memory issue. When in console mode, the lockup is reported as:

Unable to handle kernel paging request at virtual address c1948220
pgd = e3e07000
[c1948220] *pgd=

which seems to be the exact crash everytime, including the address numbers. A hard reset is required (removing all power) to restart the system. Others did not report similar errors (in fact, denied them), so perhaps this crash was unique to my system.

The problem seems to have mostly gone away with the upgrade to the 2.4.27 kernel compiled with gcc 3.3.4. Yay! The few times it have crashed have been caused by: (1) I changed virtual desktops in WindowMaker while starting up firefox, (2) I was compiling gpsdrive (compilers use lots of memory, etc.), (3) I started X windows in a terminal other than the first virtual terminal, and (4) I had a variety of applications running and was moving windows around in an erratic manner.



Short Answer: Compactflash System

There are now two ways of setting up a compactflash-based system. The preferred way these days (Type A) is to use a linux-version of the netBook's OS.img file and boot directly into linux.

The second way (Type B) is to set up Arlo, an initrd and a kernel on the EPOC partition and boot linux from EPOC. This approach probably requires that you have the 13 MB EPOC OS.img file on the EPOC partition. Information about this approach is kept here for the record, but the information is likely out of date.

In both cases, you will have to install the larger system disk onto an ext3 partition on the compactflash: a small /dev/hda1 vfat partition for EPOC, large /dev/hda2 ext3 partition for linux.

A compactflash card of size 256 MB or larger is a likely a prerequisite for Debian linux. That's the bad news; the good news is that such cards are quite inexpensive these days.

Type A: A linux OS.img file

I have used bookboot to create an OS.img file for linux. This OS.img boots the kernel and starts the minimal initrd filesystem. The initrd filesystem then sets up the compactflash IDE partitions and switches the root filesystem to the compactflash system. For this approach you only need the OS.img file on the EPOC vfat/msdos partition, nothing else. The OS.img file is available from Sourceforge/files. Download it and copy it to "OS.img" on the EPOC partition. This image is configured to automatically detect the memory size of the netBook (32 or 64 MB) and it is new as of 6/8/05; touch screen is supported with this OS.IMG file. You can download the latest version of the os.img from sourceforge.

Kernel Binaries and Modules:

  • Linux Kernel: 16, 32, 64 MB Version
  • Kernel Modules:

This kernel is configured for fast floating point emulation (unlike previous kernels; fast FPE seems to be working o.k. now) and ext3 filesystem support. Format your compactflash disk as ext3 and get journalling for your linux system.

To boot this system from scratch, I think you have to remove all the batteries and power from the netBook to reset the system and get it to load the OS.img file. (You'll also have to remove the power and restart if you "shutdown -h now" the linux system.)

Type B: Arlo, kernel and initrd

In addition to Arlo, you will need three things for a compactflash system: A kernel and modules, a small initrd ramdisk filesystem, and a compactflash system. The compactflash card should be repartitioned to have a ca. 20 MB fat-16 partition as /dev/sda1, say, and a 100MB or more ext3 partition as /dev/sda2, say. Put Arlo, the kernel binary, and the initrd on the /dev/sda1 partition for EPOC.

Kernel Binaries and Modules: See above. Any initrd or system disk you use has to have the proper kernel modules installed for the OS.img file to work right.

Initrd
The initrd resulted from a collaboration with T. Leppä that will boot up, mount the compactflash drive, and transfer the root filesytem to it. The os.img file has the latest initrd included already; obtain these from sourceforge. Its main purpose is to enable the compactflash root filesystem using pivot_root, but it has a few useful things on it (networking, pcmcia card suport). It starts a script /linuxrc to make the transfer. Arlo must be configured to use /linuxrc as the init.

Compactflash System Disk

Both types of systems described above use a Debian linux root filesystem called SargeBook, SargeBook_v5.tgz, from sourceforge filerelease; 96 MB, 234 MB unpacked. Unpack this to the ext3 filesystem on the compactflash, e.g., /dev/sda2. (This is not a perfect system yet.)

The newer 2.4.27 kernel supports the ext3 filesystem, so you should partition your compactflash card for ext3 journalling - the /etc/fstab file on SargeBook is set up for this.



Short Answer: Initrd-only System

Using either an OS.img file or Arlo, you will need two things for an initrd-only system: A kernel, and a useful initrd ramdisk filesystem. Put Arlo, the kernel binary and the initrd on the EPOC disk; the kernel size + initrd size must be less than 4 MB. For the OS.img approach the kernel and initrd are combined into the OS.img; this approach does not have the 4 MB limit of Arlo, but the kernel and initrd must be less than 16 MB. The initrd system here is a little old - and it will not work with Arlo because it is too big.

Kernel Binaries and (optional) Modules:
(same as above)

  • Linux Kernel: 16, 32, 64 MB Version
  • Kernel Modules:

Initrd
My initrd-only system can be downloaded from Sourceforge ; it is designed to work with the 2.4.27 kernel. Newer kernels will require that the modules be replaced. This system is set up for networking, PPP, ssh, and PCMCIA and not much else. The kernel will support touch screen in X windows. However, I have installed octave on this system successfully, and I've even installed gcc (20 MB), compiled a c program and ran it. This initrd is based on busybox and tinylogin.



EPOC Backup

Booting linux will wipe out everything on your C:\ drive, so it is important to back this disk up.

My backup approach is to copy the contents of the entire C:\ drive, including the System directory, to a subdirectory on the compactfash D:\ drive before booting linux (select everything, then ^C to copy, ^V to paste). To restore the system on reboot, I first delete the entire contents of the newly regenerated C:\ drive (including the System directory - C:\ should be completely empty; select everything, then ^D to delete), then copy the original contents of C:\ saved on compactflash back to the empty C:\ drive (^C to copy, ^V to paste). This has worked quite well for some time. The copy-paste between C: and D: drives puts things back exactly as they were, and doesn't take but a few minutes. The annoyances are that one has to stop (^E) all the applications that start at reboot (or you can't delete everything) and reset all the time, home city, sound, show hidden system directory, etc. preferences. I've started using Sysback recently which helped some. (And from time-to-time I'll burn a CD of all the EPOC contents!)



Kernel Binaries

The latest kernel binaries use the 2.4.27 kernel with Klasjaan's patch; the kernel version is 2.4.27-vrs1-kvd1. The 16, 32, and 64 MB memory options are no longer required; a single kernel can be used with appropriate configuration of Arlo (or bookboot) And indeed this system should boot on the Series 7. See the Linux on a Psion netBook HOWTO for how to put together a patched kernel source tree and compile your own kernel binaries.

The kernel was configured and compiled using the scratchbox environment 3.3.4 gcc - it has compactflash, rudimentary PCMCIA support, and touch screen support. It uses the fast floating point emulator (fast FPE - which seems to work o.k. now compared to what it was doing before) and shows the red LED only when the cpu is active. It may have support for a variety of PCMCIA network cards, even yours. In particular, I am pleased to announce that the Linksys v.2.5 wireless card is supported with the hostap_cs.o module.

The output of dmesg from the 2.4.27 kernel on the netBook can be seen in the dmesg.out file.

A sample configuration file used for the kernel can be downloaded as bddkernel.config.
N.B.: This configuration uses a patch from http://hostap.epitest.fi/ for the hostap_cs wireless module. However, I am told this configuration file will still work for a kernel without this patch.



User Manual

See the Linux on a Psion netBook HOWTO for information on using this system. Notes here are just a few remnants left over from the move to the HOWTO.

The pipe key, "|", for the present default version of the keymap is <Cntl><t>. and <Fn><t> in X windows.

<Menu><2> will change to console 2; <Menu><1> will change to console 1; <Menu><3> will change to console 3.

You can mount ram disks by either of:

  1. [optional: dd if=/dev/zero of=/dev/ram1 bs=512 count=32600 ] (a 16MB ramdisk)
    mke2fs /dev/ram1 ; mount /dev/ram1 /mnt/disk
    [an ext2 filesystem]
  2. or
  3. mount -t ramfs ramfs /mnt/disk
    [a ramfs filesystem]
    [nothing shows with "df"]
  4. or
  5. mount -t tmpfs -o size=20M tmpfs /mnt/disk
    [ a tmpfs filesystem of 20 MB size ]
    [ This would seem to be the preferred method ]
A cramfs system is also a possibilty.

See the script "mkramfs". You would want to use a ram disk like this mounted to /opt, /usr/local, /usr/X11R6 if you had an initrd-only system and you wanted to install large packages such as gcc to /opt, other things to /usr/local, or X to /usr/X11R6.

You can install *.deb's with, e.g., "dpkg -i rsync_2.4.6-1_arm.deb" This is an deb system; you can install any *.deb files using ipkg.

Do consolechars -f default8x16 to change console font, although the default size is 8x16 anyways. See /usr/share/consolefonts for other options (most of which are deleted to save space...).

If you have the OS.img file on the compactflash card when you reboot with <Ctrl><Menu><Delete>, you'll reboot back into EPOC, no fuss, no muss!

On the initrd-only system, communications are set up to use ssh and PPP over the serial line. Edit the /etc/inittab (see last lines) to start the getty, and execute init q to have init reread inittab.



System Disk

I have installed and modified Debian 3.1 Sarge/stable for the netBook. This system originally started from a generic "Woody" installation, but all of the packages have been updated and installed from the latest "stable". The tarball of this system file can be downloaded from sourceforge SargeBook_v5.tgz, a 95 MB file, 234 MB when unpacked. Repartition your compactflash drive to have about 10 MB for EPOC (MSDOS) and the remainder for linux - this system needs 235 MB or more. Format the two drives, one msdos, the other ext3. You can start this system using an OS.IMG file when first powering up the netBook, or using Arlo from EPOC. (Install Arlo, the linux.img kernel, the initrd system onto the EPOC partition. Configure Arlo appropriately.) Then unpack this system tarball to the ext3 partition: e.g., "tar xfz SargeBook_v5.tgz -C /mnt/sda2".

The system automatically mounts /dev/hda1 as an vfat filesystem. And it unmounts the initrd filesystem used to start it, freeing that memory.

This system supports many wireless network and other PCMCIA cards.



Other

The Arlo configuration file must be edited by hand, so you will need an EPOC text editor for this purpose. You can download the EditorColor.sis file here and install it on your netBook.