Hi guys and gals,
I recently got ahold of two Buffalo Linkstation Live V3 devices.
These are based on Marvell Kirkwood 88F6192 SOCs, have 64MB DDR2 RAM, a Gigabit Ethernet port and one single SATA connector. No additional USB, or other nice things. :-) Just the amount of hardware to make data available on one's network, and nothing more.
After having tinkered with these little Gizmos for the last few days, I came up with kernel support for Mainline Kernel 3.13-7. Actually I used the Debian Sources, from Debian Unstable.
The 3.13-7 sources are available here:
https://github.com/ingmar-k/Buffalo-Linkstation-Kirkwood-Kernel
Seems to work just fine. I had "upgraded" my two devices by soldering a 128MB Samsung SLC NAND to each unit. This way they now run with Emdebian testing in NAND (ubifs).
Here are some hints that you need, in order to get Debian to run with this Kernel:
- Stock UBoot is 1.1.4
- A LOT OF Uboot's environment settings were made permanent by Buffalo (i.e. you can only temporarily change them)
- The bootcommands are part of those hardcoded commands. So, I found no way to change the automatic boot behaviour!
- You need to set the variable "mainlineLinux" to "yes" in order to run this new kernel. (setenv mainlineLinux yes)
- Due to bootargs being static, you need to hardcode the bootargs into the Kernel !!! In other words, you tell the kernel to just ignore the bootloader atags, and just use the compiled in commandline.
With menuconfig, just head to "Boot options --->", change "CONFIG_CMDLINE" and finally set "CONFIG_CMDLINE_FORCE".
- BE SURE to check the kernel commandline and edit it, according to your needs.
- The boot process tries to load the kernel "uImage.buffalo" and an initrd "initrd.buffalo" from HDD, then from NAND and finally from TFTP, if neither of the previous was successful.
- If you want to use a kernel without an initrd, just create a "dummy" initrd and let it load that. I use nandboot with a initrd dummy and a small 3MB JFFS2 formatted partition in NAND, where kernel and dummy initrd reside.
- There is full control over the blue power led through "/sys/class/leds/...".
- You can completely shut down the SATA port's power by using "/sys/class/gpio/gpio14/value". Echo a "0" there and the port will be powered down.
You can use a tftp server for kernel testing:
- setenv serverip 'my_servers_ip'
- setenv gatewayip 'my_gateways_ip'
- setenv ipaddr 'my_imaginary_ip_for_this_thing'
- setenv test_uImage 'tftp 0x00100000 uImage; bootm 0x00100000;'
- By running 'run test_uImage', you can now quickly test newly comiled uImages, directly from your tftp-server.
Howto create a "dummy" initrd file:
echo "This is a dummy initrd file" > dummy_initrd.txt
mkdir initrd
cd initrd/
cp ../dummy_initrd.txt .
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../new-initrd.lz
ls ../
mkimage -A arm -O linux -T ramdisk -a 0x00000000 -n "Dummy ramdisk" -C lzma -d new-initrd.lz initrd.buffalo
Pictures of the PCB, and the UART0 connection for serial console, can be found here:
http://www.hs-augsburg.de/~ingmar_k/Buffalo_LS-XL/pictures/
Have fun!
Regards
Ingmar
I recently got ahold of two Buffalo Linkstation Live V3 devices.
These are based on Marvell Kirkwood 88F6192 SOCs, have 64MB DDR2 RAM, a Gigabit Ethernet port and one single SATA connector. No additional USB, or other nice things. :-) Just the amount of hardware to make data available on one's network, and nothing more.
After having tinkered with these little Gizmos for the last few days, I came up with kernel support for Mainline Kernel 3.13-7. Actually I used the Debian Sources, from Debian Unstable.
The 3.13-7 sources are available here:
https://github.com/ingmar-k/Buffalo-Linkstation-Kirkwood-Kernel
Seems to work just fine. I had "upgraded" my two devices by soldering a 128MB Samsung SLC NAND to each unit. This way they now run with Emdebian testing in NAND (ubifs).
Here are some hints that you need, in order to get Debian to run with this Kernel:
- Stock UBoot is 1.1.4
- A LOT OF Uboot's environment settings were made permanent by Buffalo (i.e. you can only temporarily change them)
- The bootcommands are part of those hardcoded commands. So, I found no way to change the automatic boot behaviour!
- You need to set the variable "mainlineLinux" to "yes" in order to run this new kernel. (setenv mainlineLinux yes)
- Due to bootargs being static, you need to hardcode the bootargs into the Kernel !!! In other words, you tell the kernel to just ignore the bootloader atags, and just use the compiled in commandline.
With menuconfig, just head to "Boot options --->", change "CONFIG_CMDLINE" and finally set "CONFIG_CMDLINE_FORCE".
- BE SURE to check the kernel commandline and edit it, according to your needs.
- The boot process tries to load the kernel "uImage.buffalo" and an initrd "initrd.buffalo" from HDD, then from NAND and finally from TFTP, if neither of the previous was successful.
- If you want to use a kernel without an initrd, just create a "dummy" initrd and let it load that. I use nandboot with a initrd dummy and a small 3MB JFFS2 formatted partition in NAND, where kernel and dummy initrd reside.
- There is full control over the blue power led through "/sys/class/leds/...".
- You can completely shut down the SATA port's power by using "/sys/class/gpio/gpio14/value". Echo a "0" there and the port will be powered down.
You can use a tftp server for kernel testing:
- setenv serverip 'my_servers_ip'
- setenv gatewayip 'my_gateways_ip'
- setenv ipaddr 'my_imaginary_ip_for_this_thing'
- setenv test_uImage 'tftp 0x00100000 uImage; bootm 0x00100000;'
- By running 'run test_uImage', you can now quickly test newly comiled uImages, directly from your tftp-server.
Howto create a "dummy" initrd file:
echo "This is a dummy initrd file" > dummy_initrd.txt
mkdir initrd
cd initrd/
cp ../dummy_initrd.txt .
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../new-initrd.lz
ls ../
mkimage -A arm -O linux -T ramdisk -a 0x00000000 -n "Dummy ramdisk" -C lzma -d new-initrd.lz initrd.buffalo
Pictures of the PCB, and the UART0 connection for serial console, can be found here:
http://www.hs-augsburg.de/~ingmar_k/Buffalo_LS-XL/pictures/
Have fun!
Regards
Ingmar