Armel Debian for the Kurobox Pro - Manual install

=Armel Debian on the KuroPro= Lenny-armel*-Debian rootfs image for testing available...

Features

 * 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
 * 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 if you have it) via command line (manually). You will need Serial port access to have control over the Uboot settings. 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.

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

=Installation=

Get it

 * 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:
 * Download the archive and updated Kernel/modules and Copy over to the samba share
 * armel-lenny-for-lspro-dgv0.3.1b.tgz

Log in to EM
Using a Kurobox that is booting into EM (the default) you should login first over the serial console


 * Here is the bootup sequence

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. ~ #

Partitioning
There are detailed instructions on partitioning in EM Mode or using Parted on an external workstation. We want to create the following partition scheme: 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.

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) p Partition number (1-4): 1 First cylinder (1-30401, default 1):   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) p Partition number (1-4): 2 First cylinder (124-30401, default 124):   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) e Partition number (1-4): 4 First cylinder (1341-30401, default 1341):   Using default value 1341 Last cylinder or +size or +sizeM or +sizeK (1341-30401, default 30401):   Using default value 30401 Command (m for help): n Command action l  logical (5 or over) p  primary partition (1-4) l 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) l First cylinder (1404-30401, default 1404):   Using default value 1404 Last cylinder or +size or +sizeM or +sizeK (1404-30401, default 30401):   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

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
reboot

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 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' saveenv boot

Login
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: 192.168.11.50



Login with:
 * login:root
 * password: armel

=Post install=

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; reboot

Changing the hostname
nano /mnt/drive2/etc/hostname Edit it to be something more KuroPro-ish, like kpro-armel.

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

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

# auto lo iface lo inet loopback # # # # auto eth0 iface eth0 inet static address 192.168.11.50 netmask 255.255.255.0 broadcast 192.168.255.255 network 192.168.11.0 gateway 192.168.11.1
 * 1) we always want the loopback interface
 * 1) default dynamic setup (no adjustment necessary)
 * 1) auto eth0
 * 2) iface eth0 inet dhcp
 * 3)      hostname `hostname`
 * 1) default static setup (adjust to your network settings)

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

Netcat
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.

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

Foonas-em
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]: socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=4096 SO_SNDBUF=8192

Problems?
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

Kernel-cross-compile-kurobox-pro

=References=