Terastation Boot
Kernel 2.6 on Terastation HTGL
Linux Kernels version 2.6.18 and newer ones are available for Terastation. There is an Open Source Project on Sourceforge where you can get kernel sources for a Terastation kernel version 2.6.22 and 2.6.23. At time of this writing kernels from these sources are the best available 2.6 kernels for Terastation.
All known Linux 2.6 kernels for Terastation HTGL are unstable. It is generally not recommended to use such a kernel in a production environment.
Considerations for Linux 2.6 kernel
The original software installed on the Terastation from Buffalo is a Linux 2.4.20 kernel based on Montavista Linux 3.1. This software has some limitations. Maybe you came to this site because you see such limitations and are looking for a better software.
It is possible to install for instance a Debian Etch stable distribution on the Terastation. Unfortunately Debian Etch will not run stable on the Terastation. Just the Debian Packaging System (dpkg) which is the greatest improvement you could give to your Terastation is known to be able to crash all available 2.6 kernels on Terastation HTGL.
The Terastation is really slow. Its 266 !MHz !PowerPC processor does not have enough power for many tasks of a modern server system. So **do not expect to get a high performance server system when installing a 2.6 kernel**. The performance problem will not be fixed by installing a 2.6 kernel.
What you'll get
Installing the kernel version 2.6 gives you some improvements and some limitations.
- After installing a Debian Etch apt-get install <package> gives you access to nearly the whole world of open source software.
- For software developing tasks simply you'll need such a software environment.
- You can boot off other devices: USB stick, flash drives or even from NFS. So the hard disks can sleep while not being used.
What you'll loose
- Open Source: On Buffalo Open Source Site you get the source code for all open source software on your Teraststion. On the other hand just the so called Open Source Communities especially nas-central.org do not care about the GPL.
- Stability: The Linux 2.4.20 kernel provided by Buffalo is really stable compared to the 2.6 kernels.
- AVR support: There is a additional Atmel controller chip on TeraStation's main board. This chip contains an own firmware and is important for some important functionality like watchdog and fan controlling. The interface to this hardware is not covered by Linux 2.6 kernels. So all monitoring funtions have to be disabled after booting a 2.6 kernel.
Scripts for booting kernel 2.6
The scripts of the initial ramdisk are changed as followed:
- Mount the compact flash disk ``/dev/hdb1`` to ``/mnt/cf``.
- Check if /mnt/cf/boot/BOOT26 exists? If not so then exit and continue to boot 2.4 kernel.
- Delete this file to prevent any loops.
- Execute /mnt/cf/boot/autoboot if it exists.
Script /usr/sbin/boot_kernel26 on initial ramdisk
#!/bin/sh ROOT26="/mnt/cf" LOGFILE="$ROOT26/boot/boot26.log" BOOTFLAG="$ROOT26/boot/BOOT26" # Mount the compact flash drive in local file system mount -o noatime,rw /dev/hdb1 $ROOT26 # Boot message echo "\nBooting at `date`" >> $LOGFILE # look for boot flag [ -f $BOOTFLAG ] || exit 0 echo "Flag to boot kernel 2.6 detected. Removing it." >> $LOGFILE rm -f $BOOTFLAG [ -x $ROOT26/boot/autoboot ] || exit 0 echo "Booting now into Linux kernel 2.6..." >> $LOGFILE $ROOT26/boot/autoboot umount $ROOT26
Download ``_
Script ``/boot/autoboot`` on boot disk
#!/bin/sh # # /boot/autoboot # $Id: autoboot,v 1.1.1.1 2007-08-24 06:10:47 marko Exp $ # # This script is run from the boot_kernel26 located on the kernels # initial ramdisk (initrd) # # Here are some hints for the environment when starting this script # - Kernel 2.4.20 (original version from Buffalo) is running # - root file system is the initial ramdisk (initrd) # - the future root file system with Debian Etch for kernel 2.6 is # mounted to /mnt/cf BOOTDIR="/mnt/cf/boot" ROOTDEV="/dev/hdb1" KERNELBIN=vmlinux # check if there should be used another root file system if [ -f $BOOTDIR/ROOTDEV ] then ROOTDEV=`cat $BOOTDIR/ROOTDEV` # only one try if something goes wrong rm $BOOTDIR/ROOTDEV fi # should try a new kernel? if [ -f $BOOTDIR/NEXTBOOT ] then KERNELBIN=`cat $BOOTDIR/NEXTBOOT` rm $BOOTDIR/NEXTBOOT fi BOOTLOADERARGS=" cmdline=\"root=$ROOTDEV\" " echo "autoboot: booting $KERNELBIN from $ROOTDEV" >> $BOOTDIR/boot26.log sync $BOOTDIR/insmod -f $BOOTDIR/loader.o kernel=$BOOTDIR/$KERNELBIN $BOOTLOADERARGS 2>> $BOOTDIR/boot26.log
Download `autoboot.gz`_
The `loader.o`_ could be downloaded from here: http://www.von-oppen.com/download/loader.o. The kernel_ could be downloaded from here: http://www.von-oppen.com/download/vmlinux.
.. _`loader.o`: http://www.von-oppen.com/download/loader.o .. _kernel: http://www.von-oppen.com/download/vmlinux .. _`boot_kernel26.gz`: http://www.von-oppen.com/download/ts/boot_kernel26.gz .. _`autoboot.gz`: http://www.von-oppen.com/download/ts/autoboot.gz
Contents of /boot
marko@ts1:/boot$ ll total 12220 drwxr-xr-x 2 root root 4096 Aug 24 07:57 . drwxr-xr-x 22 root root 4096 Aug 22 19:48 .. -rw-r--r-- 1 root root 0 Aug 22 23:51 BOOT26 -rw-r--r-- 1 root root 18011 Jun 1 2006 COPYING -rw-r--r-- 1 root root 757006 Jun 14 08:45 System.map.2.6.21.5 -rwxr-xr-x 1 root root 610 Aug 14 08:05 autoboot -rw-r--r-- 1 root root 19080 Aug 22 23:50 boot26.log lrwxrwxrwx 1 root root 15 Aug 24 07:56 config -> config.2.6.22.4 -rw-r--r-- 1 root root 52706 Aug 14 00:10 config.2.6.22.2 -rw-r--r-- 1 root root 52706 Aug 16 17:52 config.2.6.22.3 -rw-r--r-- 1 root root 52706 Aug 21 22:40 config.2.6.22.4 -rwxr-xr-x 1 root root 142920 Jun 16 00:28 insmod -rw-r--r-- 1 root root 4862 Jun 15 14:57 loader.o lrwxrwxrwx 1 root root 16 Aug 21 22:39 vmlinux -> vmlinux.2.6.22.4 -rwxr-xr-x 1 root root 4108422 Aug 14 07:53 vmlinux.2.6.21.5 -rwxr-xr-x 1 root root 3768453 Aug 14 07:46 vmlinux.2.6.22.2 -rwxr-xr-x 1 root root 3768453 Aug 20 21:32 vmlinux.2.6.22.3 -rwxr-xr-x 1 root root 3768454 Aug 21 22:37 vmlinux.2.6.22.4