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