Installare Debian Linux su eBox 2300SX miniPC
Mi è capitato fra le mani un eBox-2300SX, un miniPC compatto dalle ridotte dimensioni (e modeste potenzialità di calcolo), adatto sia come router avanzato che come postazione multimediale minimale, grazie al suo involucro VESA Mounting.
Poichè esso è solitamente venduto con una installazione già funzionante di Linux o Windows XP, riporto di seguito una procedura guidata per l’installazione del sistema Debian Linux Squeeze (versione di testing) . Questa guida si basa su queste due ottime guide, una sull’installazione di Debian Etch su ALIX, e l’altra è una guida in inglese sull’installazione di Debian su eBox 2300. Tale procedura presuppone che voi abbiate installato un sistema Debian/Ubuntu Linux sulla vostra macchina e che abbiate conoscenze basilari su Linux, Debian e shell.
Passo 1: Formattazione della Compact Flash (CF)
Il miniPC non possiede un hard disk interno, bensì uno slot Compact Flash nel quale va inserita una CF con un sistema operativo; nel nostro caso la CF conterrà Debian Squeeze e per farlo bisogna per primo formattare la CF con il filesystem più recente supportato dal kernel patchato per eBox: il filesystem ext3
Per prima cosa bisogna inserire la CF in un lettore di Compact Flash esterno o interno al vostro computer, essa verrà riconosciuta dal sistema e bisogna prendere nota del device assegnato alla CF. Questa guida è basata su un’installazione con CF vergine di 4GB.
Tutto ciò è visibile tramite il comando dmesg:
$ dmesg
[ 953.746456] sd 6:0:0:0: [sdb] 7880544 512-byte logical blocks: (4.03 GB/3.75 GiB)
[ 953.746946] sd 6:0:0:0: [sdb] Write Protect is off
[ 953.746950] sd 6:0:0:0: [sdb] Mode Sense: 03 00 00 00
[ 953.746952] sd 6:0:0:0: [sdb] Assuming drive cache: write through
Da questa porzione di testo mostrata in esempio è visibile il device da formattare con filesystem ext3 è /dev/sdb ma sulla vostra macchina potrebbe essere diverso (sdc, sdd, ecc). Una volta conosciuto il device da formattare, è necessario partizionare la CF. Il partizionamento avviene tramite il tool fdisk sul device considerato, di seguito riporto un esempio di procedura da seguire da utente root, sono stati messi in grassetto dei comandi da lanciare:
$ sudo -i
# fdisk /dev/sdb
Command (m for help): d 1
Command (m for help): c
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1018, default 1): (premere invio)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (18-1018, default 1018): (premere invio)
…
Using default value 1018
…
Command (m for help): a
Partition number (1-4): 1
Command (m for help): p
…
Disk /dev/sdd: 4009 MB, 4009549824 bytes
124 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 7688 * 512 = 3936256 bytes
Disk identifier: 0×001c2022
…
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 1018 3847844 83 Linux
…
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
…
WARNING: Re-reading the partition table failed with error 16: Dispositivo o risorsa occupata.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks
Dopo aver partizionato la CF, installando prima l’MBR sulla scheda e poi formattandola
install-mbr /dev/sdb
mkfs.ext3 /dev/sdb
tunefs -i 0 -c 0 /dev/sdb
Considerazioni:
Poiché le CF sono soggette a deterioramento a lungo andare, tramite il tool tunefs è possibile azzerare il count dei montaggi sulla base dei quali effettuare controlli periodici sul disco per evitare di aumentare il carico di lavoro della CF. Essendo ext2 ormai obsoleto, ma potenzialmente migliore su queste piattaforme embedded basate su scrittura su CF per l’assenza di journaling , ho preferito usare ext3 . Avrei voluto utilizzare ext4 che addirittura ottimizza l’uso della CF, ma siccome la patch per il kernel rilasciata dalla casa costruttrice è relativa solo alla versione 2.6.24, non sono riuscito ad usare un kernel recente (come il 2.6.31) per il quale supporto ext4 è stabile .
Passo 3: Installazione del sistema di base
Dopo aver formattato la CF andiamo ad installare il sistema Debian di base. Per fare questo, è necessario avere installato sulla propria macchina alcuni tool:
apt-get install debootstrap binutils
Siamo ora pronti per l’installazione. Montiamo ora la CF sul nostro computer in una cartella qualsiasi, per esempio /mnt/cf
mount /dev/sdb1 /mnt/cf
debootstrap --verbose --arch i386 etch /mnt/cf http://ftp.it.debian.org/debian
Si avvierà lo scaricamento e l’installazione del sistema di base che richiederà alcuni minuti (in base alla velocità di scaricamento). Per potere continuare l’installazione e al configurazione del sistema di base direttamente sulla nostra macchina è necessario agire in ambiente chroot:
mount --bind /proc /mnt/cf/proc
mount --bind /sys /mnt/cf/sys
chroot /mnt/cf /bin/bash
Ora siamo in ambiente chroot. Per prima cosa andiamo a modificare leggermente il file source.list di default utilizzato dal package manager apt in modo da disporre della totalità dei pacchetti presenti nei repository ufficiali Debian:
nano /etc/apt/source.lsit
in modo da farlo apparire così:
deb http://ftp.it.debian.org/debian squeeze main contrib non-free
Ora andiamo ad installare alcuni pacchetti di base come il boot loader GRUB e il server ssh con il quale possiamo controllare da remoto il miniPC:
apt-get update
apt-get install openssh-server grub locales console-data
Impostiamo correttamente i locales selezionando, quando verrà richiesta, la stringa it_IT@euro ISO-8859-15:
export LC_ALL=C
dpkg-reconfigure locales
e selezioniamo il layout della nostra tastiera selezionando Italiano Standard dalla lista che apparirà dopo l’esecuzione del comando:
dpkg-reconfigure console-data
se non si è già avviata la procedura di configurazione durante la fase di installazione del pacchetto.
Passo 4: Installazione del kernel
La casa costruttrice dell’eBox ha rilasciato un config e una patch per la versione del kernel linux 2.6.24, pertanto andiamo a scaricare questa versione direttamente dal sito, installandolo sulla nostra macchina (il pacchetto posiziona l’archivio con i sorgenti del kernel nella directory /usr/src), estraendolo, copiando il config e applicando la patch . Sulla nostra macchina, aprendo un’altra shell e diventando root:
cd /usr/src
wget -c http://security.debian.org/debian-security/pool/updates/main/l/linux-2.6.24/linux-source-2.6.24_2.6.24-6~etchnhalf.8etch3_all.deb
dpkg -i linux-source-2.6.24_2.6.24-6~etchnhalf.8etch3_all.deb
tar xjvf linux-source-2.6.24.tar.bz2
cd linux-source-2.6.24/
wget -c http://www.dmp.com.tw/tech/vortex86sx/config-2.6.24-DMP
cp config-2.6.24-DMP .config
wget -c http://www.dmp.com.tw/tech/vortex86sx/patch-2.6.24-DMP.gz
gunzip patch-2.6.24-DMP.gz
patch -p1 < patch-2.6.24-DMP
Ora siamo pronti per aggiungere nuove funzionalità al kernel oppure lasciare tutto com’è cambiandogli solo il suffisso per il nome:
make menuconfig
General setup->Local version: "-ebox"
Siamo pronti per compilare alla debian way!
make-kpkg linux-image --initrd
Questo comando creerà un pacchetto .deb nella cartella superiore:
/usr/src/linux-image-2.6.24-ebox_2.6.24-ebox-10.00.Custom_i386.deb
Bisogna copiare questo pacchetto sulla CF in una directory qualsiasi, per esempio /usr/src:
cp /usr/src/linux-image-2.6.24-ebox_2.6.24-ebox-10.00.Custom_i386.deb /mnt/cf/usr/src
Passiamo di nuovo alla shell sull’ambiente chroot, posizioniamoci nella cartella dove abbiamo copiato il kernel e installiamolo semplicemente con :
dpkg -i linux-image-2.6.24-ebox_2.6.24-ebox-10.00.Custom_i386.deb
Verranno chieste delle domande alle quali dovrete rispondere sempre Yes. Verranno inoltre richiesti dei pacchetti e delle dipendente da soddisfare, seguendo le indicazioni sui pacchetti mancanti da installare e concludendo con il comando:
apt-get -f install
l’installazione avverrà con successo.
Passo 5: Configurazione del Boot Loader GRUB
Nel passo 3 abbiamo installato il boot loader grub, il quale permette di avviare il sistema operativo che abbiamo appena installato (oppure di scegliere i sistemi operativi o i kernel da avviare). Ora configuriamolo un pò:
cp /usr/lib/grub/i386-pc/* /boot/grub
e creiamo il file di configurazione di grub per l’avvio:
nano /boot/grub/menu.lst
in modo da farlo apparire più o meno così:
timeout 2
default 0
title Debian Squeeze 2.6.24-ebox
root (hd0,0)
kernel /vmlinuz root=/dev/hda1
initrd /initrd.img
Passo 6: Altre configurazioni
Prima di avviare per la prima volta il sistema installato sulla CF, aggiungiamo alcuni file utili come il file fstab utilizzato per il montaggio automatico dei device:
nano /etc/fstab
modificandolo in questo modo:
proc /proc proc defaults 0 0
/dev/hda1 / ext3 noatime,errors=remount-ro 0 1
tmpfs /tmp tmpfs defaults,noatime 0 0
tmpfs /var/tmp tmpfs defaults,noatime 0 0
tmpfs /var/run tmpfs defaults 0 0
tmpfs /var/log tmpfs defaults 0 0
tmpfs /var/lock tmpfs defaults 0 0
Successivamente, andiamo a impostare le interfacce di rete da attivare all’avvio del sistema con la modifica del file interfaces:
nano /etc/network/interfaces
Ad esempio configuriamolo per l’interfaccia locale e per una rete ethernet (eth0) in DHCP:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
Potrebbero sorgere dei conflitti sul clock della macchina utilizzata per l’installazione e sul sistema installato sulla CF, per evitarli è meglio installare il tool ntpdate e sincronizzare l’ora con quella di un server NTP:
apt-get install ntpdate
ntpdate pool.ntp.org
Impostiamo infine una password di root:
passwd
e creiamo un utente semplice:
adduser ebox
Passo 7: Fasi finali dell’installazione
Adesso non resta che installare GRUB sulla CF. Per prima cosa bisogna uscire dall’ambiente chroot:
exit
e lanciare i seguenti comandi:
echo '(hd0) /dev/sdb' > /mnt/cf/boot/grub/device.map
grub-install --root-directory=/mnt/cf /dev/sdb
Ora il sistema è finalmente pronto! Smontiamo la CF:
killall sshd
umount /mnt/cf/proc
umount /mnt/cf/sys
umount /mnt/cf
Inseriamo la CF nell’eBox, attacchiamogli un cavo di rete (e se c’è anche un monitor e una tastiera) et voilà! Dopo un minuto circa il sistema sarà pronto e in ascolto sulla porta 22 per il controllo da remoto via ssh
E’ inutile dirvi che potete configurare il sistema a piacere, e installare tutto ciò di cui avete bisogno, dal web server al mail server, da emule a torrent, oppure usandolo semplicemente come firewall o gateway casalingo.
O addirittura un server GSM !