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/
|