Stock Kernel

How to Get GPL Build Kernel Run Under Linkstation Live Stock Environment

Buffalo did not provide any means to setup correct Product ID for Linkstation Live in Makefile came with GPL release soruce. Without the correct Product ID, Linkstation will enter EM Mode upon reboot with the new build kernel. We have to patch one of the source file directly in order to get the kernel work with the Stock initrd and root filesystem. You don't need the below patch if you don't use your custom build kernel with the Stock environment and the Product ID below only applicable to Linkstation Live

Code Modification - buffalocore.c

Change directory to top of the source tree and modify buffalo/drivers/buffalocore.c like below:

Search and change the line
from:
len += sprintf(buf+len,"PRODUCTID=0x00000009\n");
to
len += sprintf(buf+len,"PRODUCTID=0x0000000A\n");

After that you can 'make menuconfig' to add/remove kernel options as usual and build the kernel.

Stock File System Modification

When you reboot the Linkstation with the new build kernel it will enter EM Mode, use acp_commander to reset root password and enable telnet access. Logon to the Linkstation and enter:

grep BUILDDATE /proc/buffalo/firmware

Replace the above grep output line with the same line in /etc/linkstation_release and reboot. Your Linkstation should now resume to normal mode.

Mainline Kernel

About

jonli447 and lb_worm were trying to create a patch for the vanilla kernel [2] so we could use the kernel.org sources for the arm9-buffalo-boxes easily. But the guys from Marvell have done a great job in doing that so the nas-central community have stopped efforts in doing that to focus on helping with the Marvell's git. Marvell's code was merged into 2.6.25 with the latest development going into the Orion repository which has been merged into mainline.

At this time (12/21/2008) the kernel (2.6.28-rc9) supports:

Buffalo Terastation Pro II/Live

Buffalo Linkstation Pro/Live

Buffalo Linkstation Mini

Linksys WRT350N v2

Technologic Systems TS-78xx

LaCie Ethernet Disk mini V2

Maxtor Shared Storage II

Netgear WNR854T

Marvell Orion-VoIP GE Reference Design

Marvell Orion-VoIP FXO Reference Design

Marvell Orion-1-90 AP GE Reference Design

The Buffalo Linkstation Pro/Revogear Kurobox Pro support (MV88F5182)

The Marvell Orion-2 (MV88F5281) Development Board

The OrionNAS Reference Design board (MV88F5182)

The D-Link DNS-323 board (MV88F5181)

The QNAP TS109/209/409 boards (MV88F5182 & MV88F5281)

The HP Media Vault mv2120

Containing support for devices:

The NAND Flash controller

The SATA controller

The Ethernet controller

The USB controller

The PCI controller

The GPIO controller

The Serial Port controller

The I2C controller

XFS has had problems on arm for a long time. Two patches [3][4] have improved the situation but there is still one problem remaining [5].

The things that are not yet supported :

The CESA hardware engine is not yet supported (usefull for cryptographic and security operations)

The XOR hardware engine is not yet supported (usefull for iSCSI or RAID5 operations)

Compilation & Installation Instructions

Install either a native or cross toolchain. Cross-compiling with the codesourcery toolchain (2007q3) is reccomended. If your cross compile machine runs Debian, or similar, you can use the cross compilation toolchain repository supplied by Emdebian. Gentoo users may use sys-devel/crossdev.

Download mkimage to somewhere in your path. Gentoo users may get it by emerging dev-embedded/u-boot-tools, Debian has a package named uboot-mkimage.

Ensure you have the devio command installed (sys-block/devio in Gentoo).