Difference between revisions of "Armel Debian for the Kurobox Pro - Manual install"

From NAS-Central Buffalo - The Linkstation Wiki
Jump to: navigation, search
m (Cross-compiling a kernel)
m
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{Articles|KuroboxPro|FreeLink|Debian}}
 
{{Articles|KuroboxPro|FreeLink|Debian}}
 +
{{Warning| This guide is Deprecated and has been superceded by the OFFICIAL debian installer for the KuroBox Pro as outlined here: http://www.cyrius.com/debian/orion/buffalo/kuroboxpro/}}
 
<table align=right>
 
<table align=right>
 
<tr>
 
<tr>
Line 18: Line 19:
  
 
* Enough Debian to get you up and running, with ssh access and scp for easy file tranfer in & out of the box
 
* 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<ref>[[Kernel-cross-compile-kurobox-pro]]</ref>
+
* 2.6.25+ kernel w/ a fairly wide variety of modules, courtesy of foonas/OE/bitbake, or you could cross-compile your own<ref name=crosscompile>[[Kernel-cross-compile-kurobox-pro]]</ref>
 
* Built-in kernel support for ext2/3, jfs & reiserfs
 
* Built-in kernel support for ext2/3, jfs & reiserfs
 
* micro_evtd (fan & temperature control, LED's, buttons)
 
* micro_evtd (fan & temperature control, LED's, buttons)
Line 48: Line 49:
 
||<tt><nowiki>smb://kuroip/mtd_device</nowiki></tt>
 
||<tt><nowiki>smb://kuroip/mtd_device</nowiki></tt>
 
|}
 
|}
* Download the archive and updated Kernel/modules and Copy over these files to the samba share
+
* Download the archive and updated Kernel/modules and Copy over to the samba share
** '''<tt>[http://buffalo.nas-central.org/download/Users/davy_gravy/armel-lenny-for-lspro-dgv0.3.tgz  armel-lenny-for-lspro-dgv0.3.tgz]</tt>'''
+
** '''<tt>[http://buffalo.nas-central.org/download/Users/davy_gravy/armel_images/armel-lenny-for-lspro-dgv0.3.1b.tgz  armel-lenny-for-lspro-dgv0.3.1b.tgz]</tt>'''
** '''<tt>[http://buffalo.nas-central.org/download/Users/davy_gravy/kernel_and_modules_for_debian-armel-kuropro-2.6.25.6.tar.gz kernel_and_modules_for_debian-armel-kuropro-2.6.25.6.tar.gz]</tt>'''
+
  
 
==Log in to EM==
 
==Log in to EM==
Line 212: Line 212:
 
===Move everything over===
 
===Move everything over===
 
  mv armel-lenny*.tgz /mnt/sda2
 
  mv armel-lenny*.tgz /mnt/sda2
mv kernel_and_modules_for_debian*.tar.gz /mnt/sda2
 
  
 
===Untar the rootfs===
 
===Untar the rootfs===
 
  cd /mnt/sda2
 
  cd /mnt/sda2
 
  tar -xvzf armel-lenny*.tgz
 
  tar -xvzf armel-lenny*.tgz
tar -xvzf kernel_and_modules_for_debian*.tar.gz
 
  
 
===Copy the uImage over Modules===
 
===Copy the uImage over Modules===
Line 225: Line 223:
 
  reboot
 
  reboot
  
The final step is to modify your uboot environment to boot into the rootfs (Debian). Interrupt uboot over the serial console <ref name="bootup">bottup</ref> and type the following to configure your Kurobox Pro to boot from the hard disk with the new kernel:
+
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 <ref name="bootup">bottup</ref> 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):
  
 
<pre>
 
<pre>
setenv bootcmd 'ide reset; ext2load ide 0:1 0x00100000 /uImage; setenv bootargs console=ttyS0,115200 root=/dev/sda2 rw ; bootm 0x00100000'
+
setenv bootargs console=ttyS0,115200 root=/dev/sda2 rw ;
 +
setenv bootcmd 'ide reset; ext2load ide 0:1 0x00100000 /uImage; bootm 0x00100000'
 
saveenv
 
saveenv
 
boot
 
boot
Line 327: Line 328:
 
==Cross-compiling a kernel==
 
==Cross-compiling a kernel==
  
Cross compile your own kernel and modules for the  Kurobox Pro with whatever modules you like
+
Cross compile your own kernel and modules for the  Kurobox Pro with whatever modules you like<ref name=crosscompile>[[Kernel-cross-compile-kurobox-pro]]</ref>
  
 
<big>[[Kernel-cross-compile-kurobox-pro]]</big>
 
<big>[[Kernel-cross-compile-kurobox-pro]]</big>
 +
 +
  
 
=References=
 
=References=
 
<references />
 
<references />

Latest revision as of 10:44, 13 May 2011

Nuvola apps important.png 
WARNING!

This guide is Deprecated and has been superceded by the OFFICIAL debian installer for the KuroBox Pro as outlined here: http://www.cyrius.com/debian/orion/buffalo/kuroboxpro/


Kuroprowireport.jpg

Debian-armelv2.png

Contents

Armel Debian on the KuroPro

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

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

Prerequisites:

  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

Installation

Get it

Another Archive
Bar.png
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:
smb://kuroip/mtd_device

Log in to EM

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

Kuroprologin.jpg

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[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)
p
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)
p
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)
e
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)
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): <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
  • KURO-BOX/PRO Name: KUROBOX-PRO
  • IP Address: DHCP client
    (If there is no DHCP server, it will default to 192.168.11.150.)
Date and Time
  • Super Capacitor Backup
  • Initialized value : January 1, 1970
Serial Settings
  • Baud Rate : 115200
Root access
  • Console Administrator: root
  • Password: kuroadmin
SWAT
  • 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

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

Debian-armelv2.png


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

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

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[2]

Kernel-cross-compile-kurobox-pro


References

  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