FreeLink for the Kurobox Pro - Manual install

=FreeLink (Debian) on the KuroPro=

Rather than using the automatic install method you can partition the hard drive yourself (foregoing Buffalo's partition scheme) and use a custom kernel too. You will need Serial port access to have control over the Uboot settings.

Prerequisites:
 * KuroboxPro (of course)
 * 1) SATA Hard Drive (bigger is better) installed
 * 2) Serial port access
 * 3)  Use bottom Slot
 * 4)  Use daughterboard
 * 5) FreeLink ARM : http://downloads.nas-central.org/LSPro_ARM9/Distributions/Freelink/
 * 6) Custom Kernel: http://downloads.nas-central.org/Users/colchaodemola

Get it

 * 1) Download the FreeLink zip archive: http://downloads.nas-central.org/LSPro_ARM9/Distributions/Freelink/FreeLink_arm9-1.0rev2.zip
 * 2) Unzip it and find the hddrootfs.img file
 * 3) Rename it to have the .zip extension
 * 4) Unzip this file with the following password: IeY8omJwGlGkIbJm2FH_MV4fLsXE8ieu0gNYwE6Ty
 * 5) Rename the resultant file to hddrootfs.tar.gz and copy it over to the Samba Share.

Partition Hard Drive
XFS support is still poor (especially in a custom kernel). So we'll use EXT3, and use a sane partition scheme.

For more information look at this forum thread:

Partition scheme
There are detailed instructions on partitioning in EM Mode or using Parted on an external workstation. But here are the Fdisk commands to get you to this partition scheme.

Format all the Partitons
mkfs.ext3 /dev/sda1 mkswap /dev/sda2 mkfs.ext3 /dev/sda3

Get a newer Kernel and modules
I used this kernel image, big thanks to Colchaodemola


 * http://downloads.nas-central.org/Users/colchaodemola/uImage5

rename it to the following:


 * uImage-2.6.16.57-arm5_oabi

Get the Modules:


 * http://downloads.nas-central.org/Users/colchaodemola/2.6.16.57-arm5_oabi_modules.tgz

Copy these over to the samba share too.

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
mount /dev/sda1 /mnt/drive1

Move everything over
mv hddrootfs.tar.gz /mnt/drive1 mv uImage-2.6.16.57-arm5_oabi /mnt/drive1 mv 2.6.16.57-arm5_oabi_modules.tgz /mnt/drive1

Untar the rootfs
cd /mnt/drive1 tar -xvzf hddrootfs.tar.gz

Untar the kernel Modules
cd /mnt/drive1 tar -xvzf 2.6.16.57-arm5_oabi_modules.tgz

Move and link the kernel uimage
mkdir /mnt/drive1/boot mv uImage-2.6.16.57-arm5_oabi /mnt/drive1/boot/ cd /mnt/drive1/boot ln -s uImage-2.6.16.57-arm5_oabi uImage

Reboot and Change uboot settings
reboot

The final step is to modify your uboot environment to boot into the rootfs (freelink). Interrupt uboot over the serial console and type the following to configure your Kurobox Pro to boot from the hard disk with the new kernel:

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

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)'

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

To get to debian from foonas:

fw_setenv bootcmd ide reset \;  ext2load ide 0:1 0x00100000 /boot/uImage \;setenv bootargs console=ttyS0,115200 root=/dev/sda1 rw \; bootm 0x00100000 reboot

Login
Reboot and use ssh to login to your newly FreeLinked KuroBox Pro with an SSH session. In windows PuTTY is a good client


 * login:root
 * password: lspro

or


 * login:admin
 * password: admin</tt>

Change kernelmon script
cat /proc/driver/kernevnt to cat /proc/buffalo/kernevnt
 * You will now need to change a line in the the /usr/local/sbin/kernelmon</tt> script:

Enable root login on serial console
chmod 0744 /etc/securetty
 * If you use the console on the serial port, you need to change the permissions on /etc/securetty</tt> so it is not world-writable
 * until you do this, root logins on the serial console will not be permitted.

Fix fstab
Remember to change the /etc/fstab</tt> to reflect the location of linux swap and the share. Also remove the ,acl</tt> from the xfs declaration. My /etc/fstab</tt> looks like this after update: proc           /proc      proc    defaults                            0 0 none           /dev/pts   devpts  gid=5,mode=20                       0 0 tmpfs          /tmp       tmpfs   size=10M,mode=1777                  0 0 /dev/sda2      swap       swap    defaults                            0 0 /dev/sda3      /mnt/disk1 ext3    defaults,noatime,nodiratime         0 0
 * 1) /etc/fstab: static file system information.

Mkswap
Format the swap partition

mkswap /dev/sda2

=References=