Handhelds.org - Open source for handheld devices

UserPreferences

SiemensSX1HowTo


Siemens SX1

Home | News | Status | Downloads | Hardware | GUI | How-To |

Project Wiki on Sf.net

See project wiki on sf.net - [WWW]http://linux-on-sx1.wiki.sourceforge.net

LINUX ON SX1 HOW-TO

( by Vladimir Ananiev, Vovan888 at gmail dot com )

Tools needed:

Detecting amount of internal flash

To determine amount of SX1 internal flash you should read value at address 0x44 (0x50000044 in Symbian). You can use FCAMem for this, or Uboot.
SX1# md 44 

- should give you a value at 0x44. Then if it is 0x01000000 - you are lucky to have 32Mb flash, if 0x04000000 - you have old 24Mb strataflash.

Bootloader

Universal bootloader (U-Boot) has SX1 support. First copy sx1 uboot patch to uboot-1.1.4 dir and apply it

Then type:

make SX1_config 
make

Now you have u-boot.bin ready. Then apply firmware patch sx1.uboot.patch.v1.8.sxp to original SX1 fw 15, it installs u-boot binary into disk Z replacing file z:\system\data\testserver.mbm. You should know how to apply patches, if not - visit http://forum.oslik.ru. After all this stuff you should have uboot running when pressing 9 + CAMERA buttons. Remember to plug in standart USB cable. To work with uboot console your linux kernel on host machine should have "usbserial" compiled as module and loaded with commands:

rmmod usbserial 
rmmod cdc_acm
modprobe usbserial vendor=0x0525 product=0xA4A6

Now after starting uboot you should see messages with "ttyUSB0" in system log. Read sx1.uboot.pdf for complete instructions on how to work with uboot.

Kernel

Put kernel patches into the 2.6.15-rc4 kernel sources:
cat patch-2.6.15-rc4-omap1 | patch -p1 
cat patch-2.6.15-sx1 | patch -p1

Then copy kernel-config to .config and place it into kernel source dir. Run

make menuconfig 
make

Alternatively you can use script mkimage.kernel.sh. It uses "mkimage" from uboot/tools. It will copy uImage (kernel binary in uboot format) to your home dir.

XIP Kernel

To make use of XIP kernel you should flash it into internal flash. Connect to u-boot console, then do from it:
SX1# loadb 
press Ctrl+A S, select uxipimage.bin,wait while uploading
SX1# protect off 1:192-214
SX1# erase 1:192-214
SX1# cp.b 10000000 01800000 $(filesize)
SX1# protect on all
SX1# setenv bootcmd bootm 01800000
SX1# saveenv

SX1# boot

Now you should see linux kernel booting on SX1 LCD!

Running linux

Your host machine should have NFS server up and running. Unpack root filesystem image to /rootfs and export it with NFS - add this line to /etc/exports

/rootfs *(rw,sync,no_root_squash)

Start uboot, then from uboot console:

SX1# setenv bootargs root=/dev/nfs rw nfsroot=1.1.1.1:/rootfs,rsize=1024,wsize=1024,nolock ip=1.1.1.2 
SX1# saveenv
SX1# loadb

SX1# bootm

Exit from uboot (Ctrl-A + X). Kernel uses USB Gadget Ethernet to establish network communication with host. So after a few seconds you should see new network device on host - usb0 attached in system logs. You should configure it with IP adress:

Now you should see kernel continue booting with NFS. Then it will be Busybox invitation on LCD. By default there is telnetd running on SX1, so you can login to it:

telnet 1.1.1.2 
login: root
password: oslik
SX1 >

For developers

By default keypad CAMERA key is binded to "soft reset" function. So after you see some error and want to get back to uboot simply press CAMERA + 9.

For Loading from Symbian UbootLoader v.1.4

Prepare: 1. Creating on you MMC card next portition:

2. Unpack on Ext2 last rootfs.tar 3. Unpack on Fat16 last ubootloader.zip:

*4. For stable work qtopia need: