LinkStation Kernels
Linux 2.4.x
linux-2.4.31-list.mg.x
Features
- The same kernel binary and modules will run on:
- LinkStation 1
- KuroBox standard
- LinkStation HG
- KuroBox HG
- Detects the the clock speed and the memory size.
- Small size. U-Boot kernel (compressed binary + U-Boot header:
815193 Bytes = 796.1 kB (when compiled with gcc 3.3.3 from the
Denx ELDK 3.1.1)
- Includes the drivers for IT 8211/8212 backported from Linux-2.6.17
- New LinkStation specific mtd driver. Read/write by default.
Can be changed to read-only by setting a kernel configuration option.
- No need for NGNG / OKOK. It will mount initrd if passed the
correct parameters on the command line.
- Two configuration included. Both configurations have the drivers
for the two possible network controllers (AN983B -
LinkStation 1 and RTL 8169/8110 - LinkStation HG) and the two
possible IDE controllers (SiI 680 - LinkStation 1 and some
LinkStations HG and IT 8211/8212 - some LinkStations HG) compiled
in the kernel.
- Standard configuration. Close to the configuration for
Linux-2.4.20 for the LinkStation.
- Nfs kernel. As above but suited for root on nfs
Compiling
- Apply the patch to a stock Linux-2.4.31 source.
- The standard configuration is
arch/ppc/configs/linkstation_defconfig.
Leave CONFIG_HGLAN=y alone. This doesn't mean that the
resulting binary will run only on the LinkStation HG. It simply
means that I didn't finish cleaning up the sources.
- The nfs configuration is configs/config_linkstation_nfs.
- Set CONFIG_MTD_LINKSTATION_RO=y if you want read only MTD
devices.
- Change
CONFIG_MTD_BLOCK_RO=y
to
# CONFIG_MTD_BLOCK_RO is not set
if you want read / write MTD block devices.
- The top Makefile has been modified for ARCH := ppc.
- Run the usual:
make oldconfig
make dep uImage modules
If you are cross-compiling:
make INSTALL_MOD_PATH=<modules-install-directory> modules_install
linux-2.4.33.3-list.mg.x
The port of linux-2.4.33.3 to the LinkStations has the same features as
the port of linux-2.4.31. Use the instructions above to compile it.
Obviously, the patch should be applied to linux-2.4.33.3 souces.
Fixes
- Fixed the clock frequency. The clock has now a much lower drift.
The clock drift cannot be eliminated completely due to the nature
of the osciallator circuit. Use ntpd if you need precision
time keeping.
- Applied the latest patches for linux-2.4 to the Pegasus USB to
Ethernet driver.
Miscellaneous
- Only the character MTD (/dev/mtd<X>) devices are read / write. The
block devices are read only. I strongly advise to leave them read
only. They are buffered which means that the probability of losing
information is higer than for character devices which, by
definition, are unbuffered. You will need to use the program
/usr/sbin/eraseall which comes with the LinkStation HG to
erase the character device before writing to it:
/usr/sbin/eraseall /dev/mtd<X>
The block device does allow you to write only a few bytes. It does
this by reading the information in RAM, modifying it, erasing the
flash block and writing back the modified information. If you
decide that, despite the risk, it is more conveninent to use the
block device always run sync after writing to it.
- The LinkStation 1 / KuroBox standard don't have the mtd devices.
Download
linkstation-mtd-devices.tgz
and untar it in /.
Downloads
linux-2.4.31-list.mg.2.diff.bz2
linux-2.4.31-list.mg.3.diff.bz2 Low clock drift.
linux-2.4.33.3-list.mg.1.diff.bz2
linux-2.4.33.3-list.mg.2.diff.bz2 Fixed jffs2.
linkstation-mtd-devices.tgz
Linux 2.6.x
linux-2.6.22.ls2-x
Features
- Based on linux-2.6.22 from
www.linux-mips.org which is the
home of Linux on mips.
- Runs on LinkStation v2 (mips).
- LinkStation specific mtd driver.
- Reads the kernel command line passed by the boot loader. If no
command line is passed, it defaults to root=/dev/hda1.
- Two configuration included. Both configurations are nfs enabled.
- Small configuration. Results in a relatively compact kernel.
- Large configuration. Results in a larger kernel and compiles
most (all) modules which could be expected to run on the
LinkStation v2.
Compiling
- Download
linux-2.6.22.tar.gz
- Apply the patch.
- The two configurations are:
- arch/mips/idt-boards/Configs/config.ls2.nfs
- arch/mips/idt-boards/Configs/config.ls2.modules
Copy one of them to .config.
- Run the usual:
make vmlinux modules
If you are cross-compiling:
make INSTALL_MOD_PATH=<modules-install-directory> modules_install
Downloads
linux-2.6.22.ls2-1.patch.bz2