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

For a brief historical overview on the evolution of Linux on the SIMpad see here.

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.


If you use a 2009.X dev image, you must not set init in the linuxargs.

boot> set linuxargs "mtdparts=sa1100:0x00040000@0x00000000(bootldr)ro,0x00f80000@0x00080000(root) noinitrd root=/dev/mtdblock1 console=ttySA0 rootfstype=jffs2 jffs2_orphaned_inodes=delete mem=64M"
boot> params save

The big advantage is a working sound driver.

Other distributions

For information about alternative distributions see here.

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

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.

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.

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.


Upgrading the Siemens bootloader to 2.5.3

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.

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                                                                                                                                                                                                                        

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.

Whenever you need to or want to install the image or an other image on your SIMpad, proceed as described above.

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


Kernels

Kernels of the 2.6 series are the stable kernels for the SIMpad now. The 2.6 kernel supports all the SIMpads hardware except:

  • sound
  • usb-gadged
  • smartcard

However, the mmc/bluetooth mod is working out of the box with it :). You will find more information about it here.

Before, the stable kernel for the SIMpad originated from the 2.4 kernel series.There are some parts of the hardware which are not well supported by these kernels. Please use 2.6 ;).

Things to do after the installation

Think about modding your hardware?

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

Do stuff with your SIMpad

Setup your SIMpad, install and/or remove software. CL4 owners want to get connected first, see USB Networking.

What other people do with their SIMpad or what they want to use it for.

Reinstall the Siemens bootloader

If you want to go back to WindowsCE you need to re-install the original Siemens SIMpad bootloader.

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 more information about kernel stuff
This page was last modified 15:33, 12 March 2009. | This page has been accessed 53,184 times. | About OpenSIMpad.org
Designed by Anna Boheim | Powerd by mediawiki