ts-7000
[Top] [All Lists]

[ts-7000] 2.6.30-rc7 kernel options on TS-7800

To:
Subject: [ts-7000] 2.6.30-rc7 kernel options on TS-7800
From: "Jaan" <>
Date: Mon, 02 Aug 2010 13:59:40 -0000
I would just like to mention how I got a newer Linux kernel working with 
TS-7800.

It seems to me that the following is
1) not well-known,
2) not known at all, or
3) very hard to find

That's why I will show steps that I followed to get Linux kernel 2.6.30-rc7 
working on TS-7800.

The TS-78xx system has been integrated into Linux kernel since about 2.6.31 
(don't know exactly). Alex (Alexander Clouter) has done very good work and his 
git repository at http://git.wormnet.eu/?p=alex-ts78xx.git;a=summary has been 
merged into mainline kernels. Alex also has help pages at 
http://ts78xx.digriz.org.uk/ where a ZIP file luckily has the files which are 
not directly accessible. This was a big help for me.

Technologic System used another names and directory structure for their 
2.6.21-ts kernel. When you have downloaded their kernel source from 
ftp.embeddedarm.com and unpacked it, all you have to do is change 
CROSS_COMPILE=/opt/cross/bin/arm-linux-gnueabi- (location of the cross compiler 
file without gcc at the end, this is for my OpenSUSE 11.1) and ARCH=arm (don't 
remember if it had to be changed) in main Makefile. Then 'make 
ts7800_defconfig' and 'make' could be run, or 'make menuconfig' to configure 
something.

Late kernels, on the other hand, use the name orion5x, therefore the default 
config is orion5x_defconfig ('make orion5x_defconfig' can be run). Here are 
some serious problems, though.

First, by doing an all-default configuration, it says that it is running on an 
unsupported machine. Alex has come up with a solution: you'll have to download 
the program "devio" and make a script (I made a ./patch to kernel source tree):

#!/bin/sh
(
  devio 'wl 0xe3a01c06,4' 'wl 0xe3811074,4'
  cat ./arch/arm/boot/zImage
) > ./arch/arm/boot/zImage.fixed
exit 0

To run it, do a "chmod 755 patch" and run it after "make".

I have only managed to get the kernel from original Alex's git repository 
working with Busybox and Debian. Latest stable kernel, 2.6.34.1, does not seem 
to know anything about the on-board flash, by default, and I haven't yet 
managed to give it a correct "root=" parameter, or some parameter describing 
the structure of the flash. The SD card kernel modules seem to be almost 
hopeless to compile for anything newer than 2.6.21-ts, so I tried to use an SD 
card as little as possible.

In the cross-compiling environment (I used an openSUSE 11.1 x86, also a more 
advanced x86_64 machine with same openSUSE), I ran "make menuconfig" to add 
following command line booting parameters:

 console=ttyS0,115200n8 root=/dev/mtdblock2 rw init=/linuxrc

The "console=ttyS0,115200n8" specifies that the kernel output will be directly 
on the screen and the will be many messages, so it is easier to debug (easier 
to find the problem). The "root=/dev/mtdblock2" is the initial disk where linux 
root filesystem will be, it is on the on-board flash. The "rw" shows that it is 
readable and writable; I guess "ro" (read-only) could be better, have'nt tried 
it. The option "init=/linuxrc" I looked up from original 2.6.21-ts kernel 
config file (ts7800_defconfig).

Without these options, there will be 2 kernel panic situations: first, it will 
say that it cannot find any device for the root file system, and secondly, it 
will say "Attempted to kill INIT" or similar. When you don't see these 
messages, be sure that in kernel source file .config, the parameters are 
CONFIG_SERIAL_8250=y and CONFIG_SERIAL_8250_CONSOLE=y, and 
"console=ttyS0,115200n8" is also written to CONFIG_CMDLINE.

To get the kernel to the SD card kernel partition, I used "dd 
if=./arch/arm/boot/zImage.fixed of=/dev/sdc2" (sdc is the SD card device; can 
be sdb, sdd or even something completely different).

Next, I got into Busybox and changed the boot-up file, /linuxrc-fastboot on 
/dev/mtdblock2. This can be done on a PC and copied from a bootable SD card 
back to the on-board flash. I commented out the loading of older kernel modules 
(insmod ... to # insmod ...).

Also, I changed ./linuxrc-fastboot so that no filesystem is mounted to 
/mnt/root automatically. I made a Ext2/Ext3 filesystem USB flash drive on the 
PC, copied (actually unpacked) the latest Lenny Armel version of Debian from 
ftp.embeddedarm.com to the drive, and connected it to TS-7800.

Then I ran "mknod /dev/sda1 b 8 1" in Busybox (because a device was not 
automatically created; the options b, 8 and 1 were looked up on the original 
TS-7800 Debian with "ls -l /dev/sd*"). After "mount -o rw /dev/sda1 /mnt/root" 
and "exit", Debian (Lenny Armel version) started booting.

Finally, I recompiled the kernel with option "console=none" to hide all 
informative kernel messages.

Later, I received occasionally "init: Id "x" respawning too fast: disabled for 
5 minutes." on my screen, I haven't found out what's the problem just yet. 
These messages appear on the screen, but seem to be harmless.

I did not try to copy the new kernel to on-board flash, yet. So, my system 
boots like that:
1) Kernel 2.6.30-rc7 from SD card partition 2 
2) Busybox from on-board flash partition 2 (/dev/mtdblock2)
3) Debian (Lenny Armel) from USB flash drive with ext2/ext3 filesystem

I hope this helps someone.

Jaan



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/ts-7000/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/ts-7000/join
    (Yahoo! ID required)

<*> To change settings via email:
     
    

<*> To unsubscribe from this group, send an email to:
    

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU