User Tools

Site Tools


installdebian2big

This is an old revision of the document!


Install Debian on a 2Big Network

This page could be relevant for all the Orion-based LaCie boards.

Boot custom installer

A minimal system can be used to prepare disks and to install Debian distribution. A such sytem (kernel+initramfs) is available here. The initramfs only embed enssential software: busybox, mdadm and mke2fs. Note that the total image size (kernel+initramfs) must not exceed 2MB. The LaCie stock U-Boot is not able to load images largest than 2MB.

In the following process, you should replace ${NAS_IP} and ${SERVER_IP} with correct IPs regarding your network configuration.

  • Connect to U-Boot using network console with clunc:
$ ./clunc -i ${NAS_IP}
  • Fix machine ID:
Marvell>> setenv arcNumber 2342
setenv arcNumber 2342
Marvell>> setenv mainlineLinux yes
setenv mainlineLinux yes
Marvell>> saveenv
saveenv
Saving Environment to Flash...
.
Un-Protected 1 sectors
Erasing Flash...
. done
Erased 1 sectors
Writing to Flash... done
.
Protected 1 sectors
Marvell>> reset
reset
  • Load installer image:

As a preliminary step, you must export the installer image via a tftp server. U-Boot will use this way to load the installer image into RAM.

$ ./clunc -i ${NAS_IP}

Waiting for LUMP (0)
no lump receive; continuing
Marvell>> setenv ipaddr ${NAS_IP}; setenv serverip ${SERVER_IP}; tftpboot 0x400000 uImage
setenv ipaddr ${NAS_IP}; setenv serverip ${SERVER_IP}; tftpboot 0x400000 uImage
Using egiga0 device
TFTP from server ${SERVER_IP}; our IP address is ${NAS_IP}
Filename 'uImage'.
Load address: 0x400000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #######
done
Bytes transferred = 2031132 (1efe1c hex)
  • Boot installer:
Marvell>> setenv bootargs ip=dhcp console=ttyS0,115200 netconsole=6666@${ipaddr}/,6666@${serverip}/
setenv bootargs ip=dhcp console=ttyS0,115200 netconsole=6666@${ipaddr}/,6666@${serverip}/
Marvell>> bootm 0x400000
bootm 0x400000
## Booting image at 00400000 ...
   Image Name:   Linux-2.6.38-rc4-09710-g31481ad-
   Created:      2011-02-20  13:26:58 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2031068 Bytes =  1.9 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
OK

Starting kernel ...

[    0.000000] Linux version 2.6.38-rc4-09710-g31481ad-svn-dirty (simon@X31) (gcc version 4.4.2 (crosstool NG-hg_default@1665_60a47ac6cae1) ) #7 PREEMPT Sun Feb 20 16:16:24 CET 2011
[    0.000000] CPU: Feroceon [41069260] revision 0 (ARMv5TEJ), cr=a0053177
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine: LaCie 2Big Network
[    0.000000] Clearing invalid memory bank 0KB@0x00000000
[    0.000000] Clearing invalid memory bank 0KB@0x00000000
[    0.000000] Ignoring unrecognised tag 0x00000000
[    0.000000] Ignoring unrecognised tag 0x00000000
[    0.000000] Ignoring unrecognised tag 0x00000000
[    0.000000] Ignoring unrecognised tag 0x41000403
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line: ip=dhcp console=ttyS0,115200 netconsole=6666@192.168.0.17/,6666@192.168.0.11/
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Memory: 64MB = 64MB total
[    0.000000] Memory: 59008k/59008k available, 6528k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     DMA     : 0xffc00000 - 0xffe00000   (   2 MB)
[    0.000000]     vmalloc : 0xc4800000 - 0xfd800000   ( 912 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc4000000   (  64 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .init : 0xc0008000 - 0xc012b000   (1164 kB)
[    0.000000]       .text : 0xc012b000 - 0xc0517fb8   (4020 kB)
[    0.000000]       .data : 0xc0518000 - 0xc0539040   ( 133 kB)

[ snip ]
  • Log into the installer:

First, you need to guess the installer address IP (delivred by a DHCP server). You could use tools like dhcpdump. Example:

 $ sudo dhcpdump -i eth0
 [ snip ]
 OPTION:  50 (  4) Request IP address        192.168.0.16
 [ snip ]

Then, you can simply connect to the installer using telnet:

$ telnet 192.168.0.16
Trying 192.168.0.16...
Connected to 192.168.0.16.
Escape character is '^]'.

miniroot login: root


BusyBox v1.15.3 (2010-10-22 22:14:58 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

miniroot ~ # uname -a
Linux miniroot 2.6.38-rc4-09710-g31481ad-svn-dirty #6 PREEMPT Sun Feb 20 15:37:16 CET 2011 armv5tel GNU/Linux
miniroot ~ # 

Partition Disks

Using a custom debian installation on the 2BigNetwork allows great flexibility with the partition structure. The only caveat is that the kernel _must_ be on partition 6 of one or both of the drives, usually both to make the drives swappable. The startup of the initial ram fs will search for a root filesystem on all RAID and regular disk partitions, and if one is found, will switch to it and complete the boot sequence from there.

Use the supplied fdisk to partition the disk. An example scheme is below

Running on a single 500GB disk with no RAID

Device Boot      Start         End      Blocks   Id  System      Mount Point
/dev/sda1               1        2433    19543041   83  Linux       /
/dev/sda2            2434        2556      987997+  83  Linux       swap
/dev/sda3            2560       60801   467828865   83  Linux       /data
/dev/sda4            2557        2559       24097+   5  Extended
/dev/sda5            2557        2558       16033+  83  Linux       unused
/dev/sda6            2559        2559        8001   83  Linux       kernel image

A dual disk configuration with RAID

Using the same partition but with sda1 and sdb1 making md0 for /, and sda3 and sdb3 making md1 for /data

Create the RAID arrays using the mdadm command:

mdadm -C /dev/md0 -l 1 -n 2 /dev/sda1 /dev/sdb1
mdadm -C /dev/md1 -l 1 -n 2 /dev/sda3 /dev/sdb3

Format the / filesystem as ext3 with:

mke2fs -j /dev/sda1 (or /dev/md0 if using RAID)

Format the /data fielsystem as ext3 with:

mke2fs -j /dev/sda3 (or /dev/md1)

Install kernel

Providing that an internet connection is available, installation of the kernel is as simple as:

  • If using the regular kernel
wget ftp://lacie-nas.org/kernel/uImage-arm-orion-lacie-2.6.38-rc4-miniroot -O /dev/sda6
wget ftp://lacie-nas.org/kernel/uImage-arm-orion-lacie-2.6.38-rc4-miniroot -O /dev/sdb6
  • If using the kernel with fixed id
wget ftp://lacie-nas.org/kernel/uImage-arm-orion-lacie-net2big-fix-id-2.6.38-rc4-miniroot -O /dev/sda6
wget ftp://lacie-nas.org/kernel/uImage-arm-orion-lacie-net2big-fix-id-2.6.38-rc4-miniroot -O /dev/sdb6

Install rootfs

After the basic rootfs is installed, the system can be booted and used as a regular debian system.

  • Create some useful directories
mkdir /mnt
mkdir /mnt/root
mkdir /data
  • Mount / and /data
mount /dev/sda1 /mnt/root
mount /dev/sda3 /data
  • Download the rootfs into /data
cd /data
wget ftp://lacie-nas.org/images/rootfs-sid.tar.bz2
bunzip2 rootfs-sid.tar.bz2
tar xf rootfs-sid.tar -C .
mv rootfs-sid/* /mnt/root
  • Copy the console device
cp -a /dev/console /mnt/root/dev
  • Unmount and reboot
umount /mnt/root
umount /data
reboot

The NAS should now start the the roofs on /dev/sda1. The rootfs does not contain a telnet daemon, instead it uses ssh

  • SSH into the NAS
ssh root@IPADDRESS

From here on, the NAS can be treated and configured as a regular debian system.

Initial Configuration

  • Set a root password
root@sid-arm:~# passwd 
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
  • Automatically mount /data

Using your preferred editor (nano is available), edit /etc/fstab to automatically mount the /data partition and setup the swap

# UNCONFIGURED FSTAB FOR BASE SYSTEM
/dev/sda3       /data   auto    defaults        0 0
/dev/sda2        swap   swap    defaults        0 0
  • Create the /data directory and mount it
mkdir /data
mount /data

* Update the apt database
apt-get update
  • Install ntpdate to set the correct time on startup
apt-get install ntpdate
ntpdate pool.ntp.org

Set up the network

  • Set a static IP address so you always know where to find your NAS on the network

Edit /etc/network/interfaces and replace

iface eth0 inet dhcp

With

iface eth0 inet static
      address 192.168.1.9
      netmask 255.255.255.0
      network 192.168.1.0
      broadcast 192.168.1.255
      gateway 192.168.1.1

Using your preferred settings where appropriate

  • Set your hostname

Edit /etc/hostname and enter your preferred name

  • Set up /etc/hosts to ensure proftpd works

Edit /etc/hosts and add

127.0.0.1 localhost
192.168.1.9    lacie-nas

Changing your IP address appropriately

Useful Services

SAMBA

  • Install the packages
apt-get install samba

A basic configuration

  • Edit /etc/samba/smb.conf to share the /data directory with public read access
[data]
  comment = NAS Data
  read only = yes
  guest ok = yes
  path = /data
  • For the sake of simplicity, set the server to *share* level access
####### Authentication #######
# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
 security = share

FTP

MediaTomb UPNP AV Server

Troubleshooting

  • Depending the LaCie U-Boot version, the savenv command could fail: as a solution you can use a a dedicated net2big kernel image with machine ID set to 526 (Marvell LSP unique number for all the customer boards).
installdebian2big.1298469236.txt.gz · Last modified: 2011/02/23 14:53 by 78.145.124.167