Arch Linux su Android
Introduzione
E così avete acquistato il vostro nuovo smartphone, rigorosamente con Android perché Android è Linux, immaginando di fare un buon acquisto, di poter installare moltissime app gratuitamente, di avere sempre a portata di mano la vostra postazione GNU... e poi dopo solo due giorni di utilizzo vi siete accorti che, sarà anche Linux, ma di GNU c'è ben poco.Così, intenzionati a riprendervi la vostra libertà, vi siete messi alla ricerca di un modo per installare una qualche distribuzione GNU/Linux sul vostro smartphone, e avete scoperto cose a dir poco imbarazzanti: acquisire i privilegi di root? Flashare la ROM? Perdere la garanzia sul telefono nuovo? Dover usare programmi per Windows??? Decisi a continuare ad utilizzare il vostro telefono come, appunto, telefono e non come banco di prova, sprovvisti di una scheda telefonica d'emergenza, avete quindi abbandonato l'idea di poter vivere la vera esperienza Linux sul vostro smartphone.
Ma fortunatamente siete capitati qua, e avete scoperto che, in fondo, il compromesso giusto tra qualità e rischio c'è. Ecco quindi la mia guida su come utilizzare Archlinux in chroot su Android, in gran parte ispirata al lavoro di a Developer with Opinions, a parte qualche punto che non si conciliava bene col mio modus operandi e che quindi ho voluto cambiare.
Nota bene: continuate la lettura e la messa in pratica di questa guida a vostro rischio e pericolo. Non mi ritengo responsabile dei danni derivati a cose o persone causati dall'utilizzo di questa guida. Detto questo, iniziamo.
Il metodo
Supponiamo di avere l'immagine di un disco, dentro la quale abbiamo installato il nostro sistema. Per poter usare il sistema che c'è installato, sarà sufficiente montare l'immagine da qualche parte nel filesystem, e effettuare il chroot. Niente di più semplice!
Preparazione dell'ambiente di lavoro
Poiché su un sistema Linux il chroot può essere fatto solamente dall'utente root, sarà comunque necessario acquisire i privilegi di amministratore sul vostro smartphone, ovvero quello che i profani chiamano fare il root. Almeno nella maggior parte dei casi, il root invalida la garanzia dello smartphone.
Sebbene sia un'operazione molto delicata per il vostro telefono, è estremamente facile da mettere in pratica per voi: basterà seguire una delle tante guide che si trovano in giro sulla rete; per esempio, se avete un Samsung Galaxy Y Pro, potete seguire questa. Per il momento possiamo comunque continuare anche senza privilegi di amministrazione.
Colleghiamo quindi il nostro smartphone (o la sua scheda di memoria) al nostro computer, e creiamo la nostra immagine disco:
$ dd if=/dev/zero of=arch.img bs=1M count=800
Questo comando crea un file vuoto arch.img di 800 MB, una dimensione ragionevole per installare il nostro sistema. Adesso creiamo un filesystem sull'immagine, cosicché possiamo montarla e possiamo lavorarci, come se fosse un normalissimo disco:
$ mkfs.ext2 arch.img
Android per ora riconosce solo vfat e ext2, quindi noi ovviamente scegliamo di utilizzare ext2 per la nostra immagine. Probabilmente verremo avvertiti che quello su cui stiamo operando non è un disco vero e proprio, ma possiamo ignorare questo messaggio.
Montiamo quindi l'immagine da qualche parte nel nostro filesystem, per esempio:
# mount -t ext2 arch.img /mnt
Se non la monta, date un'occhiata a questa pagina che spiega dettagliatamente tutti i passaggi tecnici per creare un'immagine disco.
Installazione dei binari
Una volta montata l'immagine, è necessario metterci dentro il
sistema: dal sito archlinuxarm.org
reperiamo quindi i binari adatti al nostro smartphone, in formato
.tar.gz.
Per conoscere l'architettura del nostro dispositivo,
apriamo un terminale su di esso e diamo:
cat /proc/cpuinfoIl mio smartphone, per esempio, dice Processor: ARMv6-compatible processor rev 5 (v 61), quindi evidentemente devo scaricare i binari per un ARMv6.
Se, in seguito, utilizzando il sistema, riscontrassimo errori come dei Segmentation fault, allora l'architettura non è compatibile, e sarà quindi una buona idea scaricare un'altra versione di binari.
Ottenuti i binari, per scongiurare il pericolo di aver perso qualcosa per strada, calcoliamo il loro hash md5. In caso di esito positivo, spostiamoli nella cartella in cui è montata la nostra immagine, nel nostro caso /mnt, e scompattiamo l'archivio:
# cd /mnt # tar -xzvf ArchLinuxARM-oxnas-latest.tar.gzNel giro di qualche decina di secondi dovrebbe aver finito; a questo punto il sistema è installato: possiamo rimuovere l'archivio, e configurare qualche file di sistema che ci tornerà utile.
Configurazione del sistema
Per poter utilizzare il sistema è necessario aggiungere i seguenti comandi al file etc/profile della nostra immagine:
export TERM=xterm export HOME=/rootAttenzione a non modificare il file /etc/profile del vostro sistema: lavorate solamente sui file nell'immagine!
Assicuriamoci anche dell'esistenza di alcune cartelle importanti, e nel caso in cui non esistano, creiamole:
# mkdir -p proc # mkdir -p dev # mkdir -p sysOpzionalmente diamo anche un nome al nostro sistema, inserendolo nel file etc/hostname.
Avvio del sistema
Ora siamo pronti: smontiamo l'immagine dal nostro computer, scolleghiamo lo smartphone (o rimettiamo la scheda di memoria dentro di esso) e, spostandoci ovviamente sul nostro Android, avviamo Arch.
Apriamo un terminale, creiamo un punto di mount, e poi diventiamo root:
$ mkdir archlinux $ suAndroid ci chiederà se siamo sicuri, e noi gli diciamo di sì. Una volta amministratori, montiamo l'immagine...
# mknod /dev/loop256 b 7 256 # losetup /dev/loop256 arch.img # mount -t ext2 /dev/loop256 archlinux...tutte le altre cartelle necessarie...
# mount -o bind /dev/ archlinux/dev # mount -t proc /proc/ archlinux/proc # mount -t sysfs /sys/ archlinux/sys...e effettuiamo il chroot:
# chroot archlinux /bin/bash
Se tutto è andato a buon fine, il prompt della bash dovrebbe apparire sullo schermo, in attesa di comandi. Facciamo finta di essere PID=0 (cioè init) e avviamo gli script di caricamento:
# /etc/rc.sysinitCon molta probabilità, verranno notificati degli errori, qualcosa andrà sicuramente storto, ma nel complesso il sistema dovrebbe avviarsi. Abbiate pazienza (al massimo uno o due minuti) e quando sarà comparso di nuovo il prompt, il vostro sistema sarà finalmente pronto per ricevere i vostri comandi. Consiglio vivamente di creare uno script che effettui automaticamente queste operazioni.
# /etc/rc.multi
# . /etc/profile
Da ora in poi, potete iniziare ad utilizzare Arch come sul vostro computer: buon divertimento!
Ulteriori accorgimenti
Poiché necessiteremo di collegarci ad Internet per installare nuovi programmi, apriamo il file /etc/resolv.conf e modifichiamo il suo contenuto con:
nameserver 208.67.222.222In alternativa, se Android e la vostra rete lo consentono, attiviamo il wifi, e diamo
nameserver 208.67.220.220
dhcpcd eth0che assegnerà automaticamente un indirizzo IP e dei server DNS alla scheda di rete virtuale eth0.
