back

Dopo aver creato una directory debian in questa partizione possiamo scaricarvi l'immagine debian utilizzando debootstrap:

# debootstrap --verbose --arch armel --foreign lenny /media/sdcard2/debian \
http://ftp.ch.debian.org/debian

dove con --verbose visualizziamo qualche dato sull'andamento dell'installazione (oramai siamo curiosi cronici ;-)); con --arch armel definiamo l'architettura di debian che vogliamo installare; con --foreign diciamo che l'architettura da cui partiamo (nei miei "esperimenti" amd64) non è uguale a quella d'arrivo (armel). Infine con lenny decidiamo che versione di debian installare; con /media/sdcard2/debian selezioniamo la directory dove verranno installati i pacchetti; per ultimo definiamo il mirror dal quale scaricare il tutto, in questo caso quello svizzero.

A questo punto possiamo smontare la partizione della scheda microSD e aprire una shell dell'adb (Android Debug Bridge) dalla SDK. Se abbiamo installato uno dei due firmware non-ufficiali sopracitati, la partizione in ext3 verrà automaticamente montata in /system/sd. Altrimenti dovremo farlo noi manualmente con:

# busybox mount /dev/block/mmcblk0p2 /system/sd

Come abbiamo potuto osservare si fa l'uso di busybox [10], chiamato il "coltellino svizzero del Linux embedded". BusyBox comprende varie utility UNIX in un unico eseguibile di piccole dimensioni, come ad esempio ls, cat, chroot, mount,... e tante altre ancora. Per la lista completa dei comandi supportati si consulti il man page. Quest'ultimi hanno generalmente meno opzioni rispetto agli "originali"; tuttavia, le opzioni che sono incluse sono del tutto fedeli a quelle "originali". BusyBox risulta dunque essere un ambiente abbastanza completo per qualsiasi sistema di piccole dimensioni o embedded, il tutto come detto racchiuso in un unico eseguibile.

Tornando alla nostra shell dell'adb, esportiamo ora le variabili relative al path (riferite a debian), al terminale e alla home di root:

export PATH=/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root

A questo punto possiamo terminare l'installazione con:

# busybox chroot /system/sd/debian /debootstrap/debootstrap --second-stage

Come abbiamo potuto notare, si tratta di una chroot jail: una specie di spazio (in inglese jail, prigione) nel quale si definisce la root "/" del sistema in /system/sd/debian (tramite chroot) e dalla quale si lancia debootstrap per concludere l'installazione. Si noti che una volta definita la root, la directory debootstrap di /system/sd/debian sarà presente nella root "/" del sistema, la chroot jail, e verrà chiamata /debootstrap.

back