INSTALARE DEBIAN SQUEEZE PE POGOPLUG

Pregatirea mediului de instalare

Toate comenzile se introduc pe un calculator pe care ruleaza o distributie Ubuntu live sau instalata

Setarea variabilelor PATH

Se seteaza variabilele shell care vor reflecta folderele ce vor contine ALARM si sistemul de fisiere Debian rootfs:

export arch=/home/elvis/alarm
export pogodebian=/home/elvis/pogodebian-rootfs

Se creeaza folderele:

mkdir $pogodebian
mkdir $arch

Se descarca si se extrage sistemul de fisiere ALARM rootfs

Se descarca ALARM in radacina directorului /home/elvis de aici  sau cu comanda wget:

sudo wget https://download.milesburton.com/Pogoplug/ArchLinuxARM-oxnas-latest.tar.gz

Se dezarhiveaza ALARM in folderul alarm:

sudo tar xzvpf ArchLinuxARM-2012.12-oxnas.tar.gz -C alarm

Obtinerea soft-ului necesar pentru construirea sistemului de fisiere Debian rootfs

Mai intai se instaleaza cheia de criptare publica pentru surse (comanda din folderul unde este stocat fisierul debian-archive-keyring.gpg):

sudo apt-key add debian-archive-keyring.gpg 
sudo apt-key update
sudo apt-get update && apt-get upgrade && apt-get dist-upgrade

Instalarea se bazează pe debootstrap și qemu. Înainte de a le instala se actualizeaza lista de pachete:

sudo apt-get install qemu-user-static debootstrap

Construirea sistemului de fisiere rootfs

Debootstrapping etapa1 si etapa2

Prima etapa:

sudo debootstrap --verbose --arch armel --foreign squeeze $pogodebian/ http://mirror.debian.ikoula.com/debian-archive
sudo cp /usr/bin/qemu-arm-static $pogodebian/usr/bin/

Se monteaza diverse fisiere sistem pentru chroot:

sudo mount --rbind /dev $pogodebian/dev
sudo mount -t proc none $pogodebian/proc
sudo mount -o bind /sys $pogodebian/sys

Acum se poate intra ca root in noul sistem:

sudo chroot $pogodebian

Se porneste a doua etapa a procesului de debootstrap

debootstrap/debootstrap --second-stage

Dupa finalizare se iese din chroot:

exit

Se copiaza din ALARM modulele si fisierele specifice Pogoplug-ului:

sudo cp -a $arch/lib/modules/2.6.31.6_SMP_820 $pogodebian/lib/modules/

Se creeaza folderul specific pentru firmware-ul gmac:

sudo mkdir $pogodebian/lib/firmware/2.6.31.6_SMP_820

Se copiaza firmware-ul gmac:

sudo cp -a $arch/lib/modules/gmac_copro_firmware $pogodebian/lib/firmware/2.6.31.6_SMP_820

Se copiaza fisierele binare suport pentru LED:

sudo cp -a $arch/sbin/proled $pogodebian/sbin/
sudo cp -a $arch/sbin/devmem2 $pogodebian/sbin

Se stabileste propietarul pentru fisierele copiate:

sudo chown -R root:root $pogodebian/lib/modules/2.6.31.6_SMP_820
sudo chown root:root $pogodebian/lib/firmware/2.6.31.6_SMP_820
sudo chown root:root $pogodebian/sbin/proled
sudo chown root:root $pogodebian/sbin/devmem2

Se dezarhiveaza toate modulele kernel-ului:

sudo gunzip -r $pogodebian/lib/modules/2.6.31.6_SMP_820/

Se ignora mesajul: “Too many levels of symbolic links” care apare de doua ori

Configurarea sistemului de baza

Mai intai se intra ca root in Debian rootfs:

sudo chroot $pogodebian

Pentru activarea LED-ului verde dupa pornire se editeaza fisierul /etc/rc.local si se adauga liniile de mai jos inaintea ultimului rand (cel cu exit 0):

nano /etc/rc.local

# turn on LED
/sbin/proled green

Pentru a inchide LED-ul la oprirea sistemului se introduce linia “/sbin/proled off” in fisierul /etc/rc0.d/K08halt inainte de halt -d -f…..:

nano /etc/rc0.d/K08halt

log_action_msg „Will now halt”
    /sbin/proled off
    halt -d -f $netdown $poweroff $hddown

Pentru incarcarea la pornire a modulelor specifice kernel-ului Pogoplug-ului se introduc urmatoarele lini in /etc/modules

nano /etc/modules

mii
gmac
oxnas-led

Se introduc urmatoarele linii in /etc/default/rcS:

nano /etc/default/rcS

HWCLOCKACCESS=no
CONCURRENCY=shell

Se actualizeaza dependentele modulelor corespunzatoare kernel-ului:

depmod -a 2.6.31.6_SMP_820

Se introduc sursele de pachete in /etc/apt/sources.list

nano /etc/apt/sources.list

deb http://archive.debian.org/debian/ squeeze main
deb http://mirror.debian.ikoula.com/debian-archive squeeze main

Se actualizeaza lista de pachete:

apt-get update

Se localizeaza sistemul de operare:

apt-get install locales

Se actualizeaza setarile regionale eliminand comentariul (#) in /etc/locale.gen

nano /etc/locale.gen

en_US.UTF-8 UTF-8

Apoi se regenereaza setarile regionale:

locale-gen

Se instaleaza programele de baza:

apt-get install openssh-server usbutils psmisc dhcp3-client

Se schimba parola utilizatorului root:

passwd

Se seteaza hostname-ul editand /etc/hostname:

nano /etc/hostname

POGODEBIAN

Se editeaza fisierul /etc/fstab pentru montarea sistemului de fisiere la boot-are:

nano /etc/fstab

/dev/root / ext3 noatime,errors=remount-ro 0 1
tmpfs /tmp tmpfs defaults 0 0

Se configureaza reteaua editand /etc/network/interfaces

nano /etc/network/interfaces

auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
hwaddress ether 00:25:31:02:97:BD

Se paraseste chroot:

exit

Asta-i tot, acum se poate copia rootfs pe USB.

Copiere si finalizare

Se introduce stick-ul USB in calculator.

sudo fdisk -l

Presupunem ca USB-ul este recunoscut de sistem ca  /dev/sdb.

ATENTIE la litera!!!

Se sterge tabela de partitii a stick-ului USB:

sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1024

Se creeaza o noua tabela de partitii cu fdisk:

sudo fdisk /dev/sdb

Se afiseaza ceva de genul:

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x274aa42c.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Se creeaza o noua partitie primara care foloseste tot spatiul stick-ului USB cu comanda n ca mai jos:

Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-7813119, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-7813119, default 7813119):
Using default value 7813119

Se scriu modificarile pe stick si apoi se iese din fdisk cu comanda w:

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

Acum stick-ul este partitionat si se poate formata ca ext3:

sudo mkfs.ext3 -m00 /dev/sdb1

Daca apare mesajul ca discul este montat si nu se poate formata se demonteaza:

umount /dev/sdb1

Se creeaza un punct de montare:

sudo mkdir /mnt/pogostick

Si se monteaza stick-ul USB:

sudo mount /dev/sdb1 /mnt/pogostick

Se copiaza continutul folderului $pogodebian pe USB si se demonteaza:

cd $pogodebian
sudo cp -a . /mnt/pogostick/
sudo umount /dev/sdb1

Se scoate stick-ul, se introduce in Pogoplug si se porneste. LED-ul ar trebui sa clipeasca in verde, sa se stinga cateva secunde apoi sa ramana aprins. Se poate accesa prin SSH.

Crearea fisierului de swap

Dupa conectarea prin ssh la POGOPLUG se creeaza in /var fisierul care urmeaza sa fie folosit ca swap:

dd if=/dev/zero of=/var/256MB.swap bs=1024 count=262144

Se formateaza ca fisier swap:

mkswap /var/256MB.swap

Se initializeaza fisierul swap:

swapon /var/256MB.swap

Se editeaza fisierul /etc/fstab

nano /etc/fstab

si se introduce urmatoarea linie:

/var/256MB.swap        none      swap      sw      0      0

Se editeaza fisierul /etc/sysctl.conf

nano /etc/sysctl.conf

si se introduce urmatoarea linie:

vm.swappiness=10

Se reporneste serverul ca schimbarile sa aibe efect:

reboot

Dupa repornire se verifica daca fisierul swap este activ:

swapon -s

Rezultatul este ceva de forma:

 Filename            Type      Size       Used     Priority
/var/256MB.swap   file      262144    0          -1