Contents

Why put Linux on a SIMpad?

Image:TuxWithSimpad.png

Well, have you ever asked "Why go to Burger King when I've been going to McDonalds all my life?" The answer - it could be nicer, taste better and maybe it's cheaper. If this is the correct answer for fast food depends on your personal taste. The same goes for Linux on the SIMpad. Some prefer Linux over M$ operating systems, so we decided to let the users decide what they want.

At the moment Linux is in a stable state on the SIMpad and it is possible to use the SIMpad as a nice little "Warwalking" device or as a "Couch potato surfing device". And according to our usage survey many want to use it as a note-taking device of some sort. This is also possible at the moment. So stay tuned for more in the near future. You will find all the information you need as a user or a developer here!

History of Linux on the SIMpad

When exactly the porting of linux to the SIMpad started is hard to say, since the ports that are available build off of similar projects. There are a few similar devices on the market where linux already runs (e.g. iPAQ, Zaurus, Assabet etc.). So needless to say the first port was basically a "familiar linux", which was ported for the iPAQ, with a modified kernel.

The work on the SIMpad port was started by a couple of employees from Siemens in Switzerland, namely Juergen Messerer and Walter Schweizer. If you search the www.arm.linux.org.uk archives for "simpad" you will notice that Juergen did the hardcore kernel hacking that is still the building block for future development. After getting a kernel that boots on the SIMpad, most of the "familiar linux" binaries were taken as is (with the exception of xcalibrate) and put together to get a working linux environment. As you probably noticed the first port was based on "TinyX", a minimized XFree86 for low memory devices.

Since some users of "Familiar linux" also like a QT-based desktop, an alternative to TinyX was also developed - Opie. Opie is a fork off of the original QT-Embedded-based QPE (Qtopia Palmtop Environment) from Trolltech. Users of the KDE linux desktop environment will be familiar with QT. If you are interested in the details why and how the fork-off took place go to the Opie homepage and their partner sites. The original port of Opie to the SIMpad was done by Chris Martin and later optimised by integrating the SIMpad as a target for OpenEmbedded, the successor of OpenZaurus. Chris worked together with Michael Lauer of the OpenEmbedded core team to get this accomplished.

Both ports were originally based on a CRAMFS root filesystem which has it's advantages (good compression) and disadvantages (read-only). Needless to say, because of the "read-only" characteristic of CRAMFS it was necessary to start work on a JFFS2 root file system like most mobile devices running linux. The first JFFS2 images were released in the beginning of June 2003, approx. 3 months after starting this task!

Then the release of the Opensimpad Distribution discontinued and the SIMpad had only a little life by those who where familiar with OpenEmbedded. Then Fred and some others uploaded some images. Fred then put SIMpad into the Familiar distribution and he is now the SIMpad Kernel maintainer.

OpenEmbedded

OpenEmbedded is a distribution building system for embedded devices - all the development work is done there.

There will be a description about which configuration fits well for the SIMpad.

Distributions

Angstroem

The Angstroem Distribution is now the main SIMpad distribution. The Familiar Distribution is discontinued (as far as I know).

It provides 2007.12 images for our favorite device.

Those images are based on Kernel 2.6. We would be happy if you will use them.

Please report bugs to the bugtracker! If you don't report bugs the distribution can't be improved.

Familiar

The Familar Distribution is discontinued (as far as I know). But will be mentioned here because it provides opie images while Angstrome does not.

gpe or opie?

There are 2 different user environments both with complete PIM. But see them for yourself, there are many screenshots and much more.

Images

After choosing the favorite environment, you can download a SimPAD image from the Familiar website.

Since the final v0.8.4, the Images are a bit under 14 MB, so they can be used for all SIMpad classes.

Big thx for the Familiar Team for this release!

v0.8.4: Opie GPE Barebone

It is always worth it to visit Freds Page for SIMpad related Familiar updates and stuff.

OpenSimPAD

The former opensimpad distribution is discontinued and only availabe for historical reasons.

SlackPAD

Well, at the moment this is only a concept. It's complete when it will be complete. It could be also another Vapoware so don't bag me if there will never be a release.

But SlackPAD Linux has now a sourceforge.net account. There you will find a thubscript userspace keyboard driver and the latest 2.6 SIMpad Kernel development status.

Put Linux on your SIMpad

This description has been shamelessly stolen from handhelds.org and I think Fred has written it. Now it is expanded a lot and supports 16MB Class Pads (thx to Berend who pointed out the necessary steps on this forum- I have changed them a bit (params partition and mtdparts parameter).

Prerequesites

These installation instructions are for the SIMpad SL4 and SLC (32MB flash) and for T-Sinus, CL4 and WP50(16MB flash).

To install Angstrom/Familiar on a SIMpad, you will need:

  • the serial cable to connect the SIMpad to a PC
  • a terminal emulation program on the PC (e.g. minicom on Linux or Hyper Terminal on MS Windows)
  • a PCMCIA Compact Flash (CF) reader (optional, but installation is faster that way)

The SIMpad has 7 keys on the front ("Key-a" to "Key-g") plus a reset button on the back ("Key-r"). The location of these keys is shown on the following drawing:


Image:simpad-map.png

Bootloader installation

Angstrom/Familiar on SIMpad needs the handhelds.org (hh.org) bootloader. The following will help you check if it's installed, or help you install it if the Siemens bootloader is installed.

Checking your bootloader version

If you don't know what bootloader is installed on your SIMpad, you must first check the bootloader version. See SIMpad Bootloader Howto for more information on the SIMpad bootloaders.

Handhelds.org bootloader

Connect the SIMpad to a PC and run a terminal emulator on the PC. As connection settings you should use 115200 baud 8 databits no parity 1 stopbit (115200 8N1), no hardware and no software flow control.

Press key 'r' on the SIMpad, and immediately press any key (except Enter) in your terminal emulator. If you get a prompt saying "boot>" in the terminal emulator, then you have the hh.org bootloader already installed and can go to the next section Installing Angstrom/Familiar

Note: On 16MB class devices you will also have to check for the right params.

Siemens bootloader

Connect the SIMpad to a PC and run a terminal emulator on the PC. As connection settings you should use 38400 baud 8 databits no parity 1 stopbit (38400 8N1), hardware flow control.

Reset the SIMpad and enter the Bootloader monitor: press "Key-g" while resetting with "Key-r".

If what you get on the terminal begins with the following text (check the "Siemens Switzerland Bootloader" line), then you have a 2.5.3 Siemens bootloader and must install the hh.org bootloader:

PBL V2.4 20.07.2001
Booting...
================================================
Siemens Switzerland Bootloader V2.5.3 10.06.2003
Running @206Mhz Processor ID 0x6901b118
Press ESC for monitor
...

If the bootloader version is less than 2.5.3, then you must first upgrade it to 2.5.3 before installing the hh.org bootloader.

Check your actual loader

Look at the occupied memory addresses to see which one is running. Normal bootloader starts at 0x8014 and alternative bootloader starts at 0x1f00014.

Occupied Memory: [0x00004000-0x00008000],[0x00008014-0x0007500c]

The one above is a normal Loader. If you don't know the difference see SIMpad Bootloader Howto for more information.

Updating the bootloader

WARNING: Flashing a boot loader is a delicate task. It it fails the SIMpad is dead and can only be brought to life with a JTAG adapter! See SIMpad JTAG HOWTO.

This step is only needed if you don't already have the hh.org bootloader installed.

Upgrading the Siemens bootloader to 2.5.3

This Loader is normaly only for SL4 and SLC class SIMpads. I have installed it on T-Sinus, too. But do this at your own risk!

This step is only needed if you have an older version of the Siemens bootloader

Download the following files:

Caution: serload and Hyperterminal must under NO circumstances access the serial interface at the same time!

  • Get the image files you want to load and the serload utility for Windows or the serload utility for Linux.
  • Connect the SIMpad and the PC (in Windows this must be on COM1) via the serial-cable.
  • Check which loader you have to upload first. Do this at Check your actual loader - else you will get a "please try to load alternate loader" error.
  • If your loader is the normal loader
    • run serload loader_bl.alt (in Windows start within a cmd-shell) or serload loader_bl.alt # (Linux - where # is the TTYS# number). serload then waits on further requests from the SIMpad (Ready to download file "_FILENAME_". Press RESET!).
    • Now reset ("Key-r") your device and it will recognise that it has a request for an image download and will install that image.
    • Load the 2nd bootloader - run serload loader_bl (Windows) or serload loader_bl # (Linux) just like above.
    • Reset your device again ("Key-r").
  • If your loader is the alternate loader
    • do the steps above with the loader_bl first and then the loader_bl.alt

Caution: On some SimPads you have to press "Key-g" + "Key-r" together, otherwise there is no serial download request send to serload!

Consult: Checking_your_bootloader_version in order to check the current version of your bootloader (should be 2.5.3)

Installing the hh.org bootloader

Download the following files:

  • Connect the SIMpad to AC power and to the serial port of your PC.
  • Open up a terminal program on the serial port that the SIMpad is connected to. For siemens bootloader use 38400-8N1, hardware flow control.
  • Reset the SIMpad and enter the Bootloader monitor: press "Key-g" while resetting with "Key-r"
  • The Terminal should show something like :
=====================
   
Monitor:
=====================
Boot from Flash   'f'
Boot from Net     'n'
Power Off         'o'
Erase PSM+Registry'p'
Exit              'q'
Erase Registry    'r'
Erase Flash       'y'
Soft Reset        's'
Print Fab-String  'w'

boot>
  • If you don't see the menu and a boot prompt, then try to reset again and hit "ESC" in your terminal program as soon as the SIMpad starts booting up. Another way to get the menu to appear, is to reset your Simpad whilst at the same time holding down the lower Simpad front-panel key "Key-g" (the key that brings up the on-screen keypad in WinCE). If you do see the monitor menu, but don't see "Erase Flash" option in the menu, then you have an older siemens bootloader and you'll need to upgrade to siemens 2.5.3 bootloader first (see previous section).
  • Press 'y' to erase the flash. After that finishes, close the terminal program.
  • run serload blupdater.img (in Windows start within a cmd-shell) or serload blupdater.img # (Linux - where # is the TTYS# number). serload then waits on further requests from the SIMpad.
  • Now reset your device and it will recognise that it has a request for an image download and will install that image: Press "Key-r"


Serial download request
Booting : <NULL>
Serial download entered. 

Base    : 0xc0208000 Size 2800404 entry:0xc0208000
[*********************-]  2800128
Load finished 
Burn Image with entry at c0208000
Write File to Flash

This image is different in 673213 longwords
Reading Flash ID at 0x08000000...
Write changed blocks to Flash with ID: 0x0018 [0x05080000-0x0532bb28]
+---------+---------+-
**********************

Successfully written !
Done with 125kB/sec
PLEASE RESTART TARGET
......................
Update successfully finished! Swich the SIMpad on.
  • After this there will be a Warning that you can stop the flashing. You have 9 seconds for your decicion.
  • Because the loader was original designed for 32MB class devices (SL4,SLC) you now need to follow Needed steps for CL4,WP50 and T-Sinus Pad if you, and only if you, own a 16 MB class device (CL4,WP50 and T-Sinus Pad) to be able to flash the jffs2 image. Else you will get an erase flash error.
  • Then you have to follow the instructions on SIMpads screen. If you name the Image simpad-rootfs.jffs2 it will be automaticaly flashed on next boot. Else follow the Installing Angstrom/Familiar instructions.

Needed steps for CL4,WP50 and T-Sinus Pad

These Steps are only requiered on 16MB Flash Class SIMpads. Ignore the following if you have a 32MB Class Pad (SL4,SLC).

  • Now you need to reallocate your partitions and change your "linuxargs". This step is requiered until we are able to provide a different loader for 16MB class SIMads
boot> partition delete root
boot> partition delete home
boot> partition define params 0x40000 0x40000 16
boot> partition define root 0x80000 0xF80000 16
boot> set linuxargs "mtdparts=sa1100:0x00040000@0x00000000(bootldr)ro,0x00f80000@0x00080000(root) noinitrd root=/dev/mtdblock1 init=/linuxrc console=ttySA0 rootfstype=jffs2 jffs2_orphaned_inodes=delete mem=32M"
boot> params save

This will add a 256KB big params partition in which the linuxargs can be saved. 256KB is a lot of space, but I think it's better to have a bit too much space then too low. Also a ~15MB root partition will be created and the params will be saved in the new params partition.

You can check your partition table with this one:

(Note: the 16 is now 10 hex the adresses are all in hex and in Byte)

boot> partition show                                                                                                                                                                                                                    
npartitions=00000003                                                                                                                                                                                                                   
bootldr                                                                                                                                                                                                                                 
  base: 00000000                                                                                                                                                                                                                        
  size: 00040000                                                                                                                                                                                                                        
   end: 00040000                                                                                                                                                                                                                        
 flags: 00000002                                                                                                                                                                                                                        
params                                                                                                                                                                                                                                  
  base: 00040000                                                                                                                                                                                                                        
  size: 00040000                                                                                                                                                                                                                        
   end: 00080000                                                                                                                                                                                                                        
 flags: 00000010                                                                                                                                                                                                                        
root                                                                                                                                                                                                                                    
  base: 00080000                                                                                                                                                                                                                        
  size: 00F80000                                                                                                                                                                                                                        
   end: 01000000                                                                                                                                                                                                                        
 flags: 00000010                                                                                                                                                                                                                        

Reinstalling the Siemens bootloader

If you decide you want to go back to CE after installing the hh.org bootloader, then you will have to reinstall the original Siemens bootloader. This is a small HOWTO of you to accomplish this.

Download the following file:

Unpack it:

 tar -xvzf Plb-simpad-1.0.tar.gz

The tarball contains 3 files:

Simpad-Jtag-Howto.txt
simpadCL.rom
simpadSL.rom
  • simpadCL.rom is the right one for 16MB class devices like CL4,WP50,T-Sinus.
  • simpadSL.rom is the right one for 32MB class devices like SL4,SLC

Warning: Install by no means a siemens bootloader that was used to update the original bootloader (e.g. version 2.5.3 or 2.5.1)!! These bootloaders were only update bootloaders, not full bootloaders. The file above contains the original (and yes, quite old) bootloader. If you install an update bootloader from within the hh.org bootldr you will brick your pad and you will have to use JTAG (see SIMpad JTAG HOWTO) to bring your pad back to life.

First attach your pad to a serial terminal program (Hyperterm, minicom etc.) with the settings 115200 8N1. Press the reset button on the back of the pad and press any key while the bootldr is initiating. The bootldr should stop at a boot> prompt. Now run the following commands at the "boot>" prompt:

  • "set override=1"
  • "pflash 0 0x40000 0"
  • "load flash 0" (serial installation) or "copy hda1:/simpadXX.rom bootldr" (from a CF card)

If you install over serial you will upload the simpadXX.rom via ymodem after step three. If you install from CF you will have to copy the simpadXX.rom to the CF card and insert it into the pad first. The CF card must be FAT formatted.

The output in your seriallistener (minicom/hyperterm) could look like this:

boot> set override = 1
  setting param <override> to value <1>
boot> pflash 0 0x40000 0
  addr=00000000
  len=00040000
  protect=00000000
Protect=00000000
boot> load flash 0
loading flash region flash
using ymodem
ready for YMODEM transfer...
CC362F95577901AFF5C29BA77867A9D33B
00022EC0 bytes loaded to C0000400

programming flash...erasing ...
Erasing sector 00000000
Erasing sector 00020000
writing flash..
addr: 00000000 data: E1A00000
addr: 00010000 data: E1A0C00D
addr: 00020000 data: 4144540A
verifying ...
done.
boot>

Be careful not to run serload and minicom/hyperterm at the same time.

Installing Angstrom/Familiar

Angstrom/Familiar can be installed using the serial connection (slow) or using a PCMCIA CF card reader.

The serial installation

  • connect the SIMpad to a PC running a terminal emulator (Hyper Terminal on MS Windows, minicom on Linux...) and set the connection to 115200 baud 8 databits no parity 1 stopbit (115200 8N1), no hardware and no software flow control.
  • reset the SIMpad, and immediately press a key (not "Enter") in the terminal. This should give you the "boot>" prompt
  • type "load root" in the terminal emulator
  • transfer the rootfs.jffs2 file corresponding to the image you want to install (bootstrap-image-*-simpad.rootfs.jffs2, gpe-image-*-simpad.rootfs.jffs2 or opie-image-*-simpad.rootfs.jffs2) using Ymodem from the PC to the SIMpad
  • when the transfer is finished, type "boot" in the terminal emulator.


The CF-based installation is much faster

  • format the CF card using the vfat (or windows FAT) format
  • copy the rootfs.jffs2 file corresponding to the image you want to install (bootstrap-image-*-simpad.rootfs.jffs2, gpe-image-*-simpad.rootfs.jffs2 or opie-image-*-simpad.rootfs.jffs2) on the CF card, and rename it to rootfs.jffs2
  • connect the SIMpad to a PC running a terminal emulator (Hyper Terminal on MS Windows, minicom on Linux...) and set the connection to 115200 baud 8 databits no parity 1 stopbit (115200 8N1), no hardware and no software flow control.
  • instert the CF card with a PCMCIA adapted in the SIMpad
  • reset the SIMpad, and immediately press a key (not "Enter") in the terminal. This should give you the "boot>" prompt
  • Once in a boot prompt, type "copy hda1:/rootfs.jffs2 root"
  • after flashing is finished, you may want to type "eflash home" if you already did an installation using the hh.org bootloader and you want to erase the home partition
  • type "boot" in the terminal emulator

Think about modding your hardware?

With Linux nearly everything is possible just surf the mods section.

Kernels

2.6 Series

This is now the stable Kernel for the SIMpad. It supports all the SIMpads hardware exept.

  • sound
  • usb-gadged
  • smartcard

Even the mmc/bluetooth mod is working out of the obx with it :).

Here you will find more information about it.

2.4 Series

This was the Stable Kernel for the SIMpad, ther are some parts of the hardware which are not well supported. Please use 2.6 ;)

To do

  • Break the Page into smaller ones which will be better to read online (but harder for printouts).
  • create subcatagorys
  • check the history I don't if it is right
  • check for errors
  • get mor information about kernel stuff
This page was last modified 10:08, 13 March 2008. | This page has been accessed 26,311 times. | About OpenSIMpad.org
Designed by Anna Boheim | Powerd by mediawiki