Armel Debian for the Kurobox Pro - Manual install

From NAS-Central Buffalo - The Linkstation Wiki
Revision as of 10:44, 13 May 2011 by Ramuk (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Nuvola apps important.png 

This guide is Deprecated and has been superceded by the OFFICIAL debian installer for the KuroBox Pro as outlined here:



Armel Debian on the KuroPro

Lenny-armel*-Debian rootfs image for testing available...[1]


  • Enough Debian to get you up and running, with ssh access and scp for easy file tranfer in & out of the box
  • 2.6.25+ kernel w/ a fairly wide variety of modules, courtesy of foonas/OE/bitbake, or you could cross-compile your own[2]
  • Built-in kernel support for ext2/3, jfs & reiserfs
  • micro_evtd (fan & temperature control, LED's, buttons)
  • u-boot utils (fw_{print|set}env)
  • no initrd

What you will need

Install using the native EM mode (or foonas-em[3] if you have it) via command line (manually). You will need Serial port[4] access to have control over the Uboot settings [5]. Serial access will provide a safety net, it is strongly suggested that you have serial access already, and you know how to safely change uboot env vars. It is not a good idea to try to install this without understanding completely, get into a problem, and then try to get serial access and try to learn this. Note that for Buffalo's stock U-Boot, if you change bootcmd from the default values, you will have to either edit them w/ fw_setenv while in foonas-em, or use serial access and reset them all to defaults.


  1. KuroboxPro (of course)
  2. SATA Hard Drive (bigger is better) installed[6]
  3. Serial port access (one of the following)
    1. Add a Serial port to the ARM9 Linkstation
    2. SCON-KIT/ PRO quick manual
    3. Use a Nokia Serial Cable on an ARM9 Linkstation


Get it

Another Archive
Another Lenny drop of Debian for the LS PRO also exists at:
downloads: ALL_ARM9/ARMel Lenny

  1. Connect up the blank unformatted hard drive
  2. Connect ethernet to your network (it would be best to use the 192.168.11.x subnet)
  3. Connect serial cable for serial console and power on.
  4. Access the Samba share on the Kurobox Pro named mtd_device, the flash memory is available via Samba with the native EM mode at:

Log in to EM

Using a Kurobox that is booting into EM (the default) you should login first over the serial console [7]


KUROBOX-PRO login: root
Password: kuroadmin
login[756]: root login  on `ttyS0'

BusyBox v1.1.1 (2007.04.06-12:02+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
~ #


There are detailed instructions on partitioning in EM Mode[8][9] or using Parted on an external workstation[10]. We want to create the following partition scheme:

Partition Type Size
/dev/sda1 ext2 100M
/dev/sda2 ext3 10,000M
/dev/sda4 W95 Ext'd (LBA) REST
/dev/sda5 swap 512M
/dev/sda6 ext3 REST

You could pretty much follow this guide keystroke for keystroke to do it. It is suggested that you read the man pages for fdisk & read up on it, as well[9].

Primary Partitions

Start up fdisk

fdisk /dev/sda

And use the following commands

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): 1
First cylinder (1-30401, default 1): <enter> Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401): +100MB

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): 2
First cylinder (124-30401, default 124): <enter> Using default value 124
Last cylinder or +size or +sizeM or +sizeK (124-30401, default 30401): +10GB

Extended Partitions

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): 4
First cylinder (1341-30401, default 1341): <enter> Using default value 1341
Last cylinder or +size or +sizeM or +sizeK (1341-30401, default 30401): <enter> Using default value 30401

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
First cylinder (1341-30401, default 1341): Using default value 1341
Last cylinder or +size or +sizeM or +sizeK (1341-30401, default 30401): +512MB

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
First cylinder (1404-30401, default 1404): <enter> Using default value 1404
Last cylinder or +size or +sizeM or +sizeK (1404-30401, default 30401):  <enter> Using default value 30401

Change sda5 to Swap

The default type of partition is Ext3 (83), so we only need to change the type on partition 5, to Swap (82).

Command (m for help): t
Partition number (1-7): 5
Hex code (type L to list codes): 82
Changed system type of partition 5 to 82 (Linux swap)

Print the partition map

To see that it is what we want

Command (m for help): p

Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot      Start         End      Blocks  Id System
/dev/sda1               1         123      987966  83 Linux
/dev/sda2             124        1340     9775552+ 83 Linux
/dev/sda4            1341       30401   233432482+  5 Extended
/dev/sda5            1341        1403      506016  82 Linux swap
/dev/sda6            1404       30401   223150851  83 Linux

Write the partitions to the hard drive

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table

Create Filesystems

Once you are done w/ making partitions, create the filesystems on them. We will assume you created exactly the partition above. Do the following:

mkfs.ext2 /dev/sda1
mkfs.ext3 /dev/sda2
mkswap /dev/sda5
mkfs.ext3 /dev/sda6

Extract everything over to the Hard Drive

Log into the Kurobox using the default settings[11]

Kurobox PRO
IP Settings
  • IP Address: DHCP client
    (If there is no DHCP server, it will default to
Date and Time
  • Super Capacitor Backup
  • Initialized value : January 1, 1970
Serial Settings
  • Baud Rate : 115200
Root access
  • Console Administrator: root
  • Password: kuroadmin
  • SWAT User: root
  • Password: kuroadmin
Samba Share Folder
  • Workgroup Name: KUROBOX
  • /mnt/mtd: mtd device (NAND FLASH),
  • /mnt/disk1: share (HDD)

and go to the directory that you transferred your files over to (likely /mnt/mtd)

cd /mnt/mtd

Mount Hard Drive

mkdir /mnt/sda1
mkdir /mnt/sda2
mount -t ext2 /dev/sda1 /mnt/sda1
mount -t ext3 /dev/sda2 /mnt/sda2  

Move everything over

mv armel-lenny*.tgz /mnt/sda2

Untar the rootfs

cd /mnt/sda2
tar -xvzf armel-lenny*.tgz

Copy the uImage over Modules

cp /mnt/sda2/boot/* /mnt/sda1

Reboot and Change uboot settings


The final step is to modify your uboot environment to boot into the rootfs (Debian). On reboot, wait for the SECOND countdown to happen, interrupt uboot over the serial console [7] and type the following commands to configure your Kurobox Pro to boot from the hard disk with the new kernel.

For stock U-Boot (default bootloader):

setenv bootargs console=ttyS0,115200 root=/dev/sda2 rw ;
setenv bootcmd 'ide reset; ext2load ide 0:1 0x00100000 /uImage; bootm 0x00100000'


Reboot and use ssh to login to your newly Debianized KuroBox Pro with an SSH session. In windows PuTTY is a good client. Networking is set up for static ip.

Open an SSH session to:

  • Static IP:


Login with:

  • login:root
  • password: armel

Post install

EM Mode Issues

Can't Set UBoot Env Vars Because of the 16-arg Limit?

Buffalo gave us a UBoot that has some shortcomings...including the 16-arg limit... While in foonas-em, set bootcmd with fw_setenv, which gets around this limit, by executing the following:

fw_setenv bootcmd 'ide reset; ext2load ide 0:1 0x00100000 /uImage; setenv bootargs console=ttyS0,115200 root=/dev/sda2 rw ; bootm 0x00100000'

Executing the following will allow you to see if you were successful:

fw_printenv bootcmd

Original EM Mode

By the way, the command set to get it to boot from the flash (like it was originally) should you ever want to is:

setenv default_kernel_addr 0x00100000 
setenv bootargs_base console=ttyS0,115200 
setenv bootargs_root root=/dev/mtdblock2 rw 
setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver) 
setenv uImage_block 0 
setenv uImage_offset 0x00020000 
setenv bootcmd 'nboot $(default_kernel_addr) $(uImage_block) $(uImage_offset); bootm $(default_kernel_addr)'

Foonas EM

Should you be doing this from foonas EM (and have fw_setenv installed):

To get to foonas-em from debian:

fw_setenv bootcmd ide reset \;  ext2load ide 0:1 0x00100000 /boot/uImage \; setenv bootargs console=ttyS0,115200 \;nboot 0x00100000 0 0x01000000 \; bootm 0x00100000;

Changing the hostname

nano /mnt/drive2/etc/hostname

Edit it to be something more KuroPro-ish, like kpro-armel.


If you want some other setup, do so, but remember to adjust your /etc/fstab, and anything else that matters.


If necessary, adjust /etc/network/interfaces to your network and your needs, either static or dhcp. By default, it is set for a network, with an IP of It currently reads as follows:

# we always want the loopback interface
auto lo
iface lo inet loopback
# default dynamic setup (no adjustment necessary)
# auto eth0
# iface eth0 inet dhcp
#      hostname `hostname`
# default static setup (adjust to your network settings)
auto eth0
iface eth0 inet static

You may also need to check your etc/resolv.conf contents and adjust them to your network and ISP.


Kernel has netcat/nc capability, so you can monitor part of the boot process that way without needing any serial connection. Also excellent with netconsole-enabled u-boot.


Run depmod after cd-ing to the appropriate directory, so that any new modules are recognized.


Option: (highly suggested!) : add a foonas-em on some read-only partition (like sda1 in the default setup) so you have an em-image to fall back on. Also, consider learning how to tftp-boot into foonas-em, procedure shown here.

Samba tuning

Filesharing : for faster samba, include in /etc/samba/smb.conf - [global]:


Problems? This is not a supported distro - just a test run. If you see problems and can relay a solution back, that would be great. If you see problems but can't give a fix, that's appreciated also.

Cross-compiling a kernel

Cross compile your own kernel and modules for the Kurobox Pro with whatever modules you like[2]



  1. (Towards) an armel root-fs image for Freelink
  2. 2.0 2.1 Kernel-cross-compile-kurobox-pro
  3. Foonas Wiki:TFTPBoot kuropro
  4. Serial Port Use daughterboard or Use bottom Slot
  5. Kurobox Pro u-boot environment variable settings
  6. KuroboxPro User's Guide in English
  7. 7.0 7.1 Kurobox Pro UBoot/Linux Console Message - bootup
  8. Custom Partitions on the LS Pro
  9. 9.0 9.1 Linux Partition HOWTO - Partitioning with fdisk
  10. Resizing the system partition with parted magic live cd
  11. KuroBoxPro: Default Settings