La Fonera 2.0n Episodio 4: installare i programmi su memoria usb esterna
Scritto da Erriko in Fonera il 6 marzo 2010
Abbiamo visto precedentemente come installare nuovo software sulla Fonera 2.0n. Attingendo ai repositories di OpenWrt questo router diventa davvero versatile, è quasi come avere un piccolo server domestico. Ma come sfruttare tutto questo potenziale?
Installare molti pacchetti software o comunque alcuni particolarmente grandi diventa impossibile attingendo alla (poca) memoria integrata della Fonera. E’ per questo che diventa indispensabile installare i programmi che desideriamo su di un supporto esterno.
Grazie all’uscita usb della Fonera 2.0n possiamo connettere un hard disk usb o una pen drive, o diversi utilizzando un hub (in questo caso è consigliato un hub alimentato).
Per il nostro scopo è necessario che il supporto in questione sia formattato in ext2 o ext3. Nel caso usassimo un solo supporto, potremmo partizionarlo in due ed avere così una partizione dedicata all’installazione di software aggiuntiva (quella in ext2/3) ed una partizione dedicata al download e a tutte le altre funzioni che necessitano il formato FAT32.
Tralasceremo qui la fase di formattazione/partizionamento in quanto si tratta di unargomento trattato in tutte le salse ovunque (basta cercare su google) per concentrarci sulle operazioni da compiere per ottenere il nostro scopo.
Ricapitolando ci serviranno:
- una Fonera 2.0n (ma va… )
- la fonera deve avere un Firmware DEV che permette quindi l’accesso via ssh
- una pen drive o HD esterno con almeno una partizione in etx2 o ext3
Le operazioni da svolgere
Individuare la partizione ext
Per prima cosa colleghiamo la memoria alla Fonera 2.0n e connettiamoci ad essa via ssh.
Come avrete notato ogni disco (o partizione) viene distinto dalla Fonera con un nome del tipo Disc-A* (dove * è un numero).
E’ possibile vedere la lista dei dischi connessi digitando sul terminale della fonera il comando:
ls /tmp/mounts
E’ importande individuare e memorizzare il nome assegnato alla nostra partizione ext2/3.
Tuttavia per semplificarci la vita possiamo accedere al pannello della Fonera (quello raggiungibile digitando l’indirizzo ip del router) e cambiare il nome assegnato di default alla partizione in questione, rinominandola ad esempio con il nome di disco.
Aggiungiamo la destinazione usb
Digitiamo sul terminale della fonera
vi /etc/opkg.conf
all’interno del file troveremo due righe che iniziano con dest (fanno riferimento alla destinazione memoria interna e la destinazione ram).
Aggiungiamo subito dopo le due righe con dest questa nuova riga:
dest usb /tmp/mounts/disco
dove “disco” è il nome della partizione ext precedentemente individuata.
Note riguardo l’editor vi: se non avete mai usato vi ricordatevi che premendo il tasto I entrate in modalità modifica (e potrete quindi aggiungere la riga appena proposta). Una volta finite le operazioni di modifica per salvare dovrete premere il tasto Esc e digitare :wq!
Una volta salvato il file digitiamo:
opkg update
Profilo
Apriamo il file del profilo digitando
vi /etc/profile
e modifichiamolo in modo che venga identico a questo:
#!/bin/sh
[ -f /etc/banner ] && cat /etc/banner
ext_path='/tmp/mounts/disco'
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$ext_path/usr/sbin:$ext_path/usr/bin
export LD_LIBRARY_PATH=/lib:/usr/lib:/$ext_path/usr/lib:$ext_path/lib
export HOME=/root
export PS1='\u@\h:\w\$ '
[ -x /bin/more ] || alias more=less
[ -x /usr/bin/vim ] && alias vi=vim || alias vim=vi
[ -z "$KSH_VERSION" -o \! -s /etc/mkshrc ] || . /etc/mkshrc
[ -x /sbin/arp ] || arp() { cat /proc/net/arp; }
[ -z /bin/ldd ] || ldd() { LD_TRACE_LOADED_OBJECTS=1 $*; }
n.b. Ricordatevi che “disco” è il nome che abbiamo scelto per convenzione e nel vostro caso potrebbe essere diverso, per cui ext_path va modificato di conseguenza.
Ricarichiamo il profilo digitando:
. /etc/profile
Finito, e adesso?
Bene se tutto è andato a buon fine da adesso non ci resta che installare il software che preferiamo direttamente sulla memoria usb semplicemente digitando sul terminale della Fonera:
opkg -dest usb install nomeprogramma
Se alcuni programmi funzionano ed altri no…
Capita che alcuni programmi richiedano librerie che vengono ricercate sulla memoria interna (nonostante queste siano sulla memoria usb). Come fa notare ophys (potete leggere il suo post originale tra i commenti), è necessario installare ldconfig con il comando:
opkg install ldconfig
Fatto questo è necessario creare il file /etc/ld.so.conf con l’editor vi, digitando quindi:
vi /etc/ld.so.conf
ed incollando al suo interno queste due righe:
/tmp/mounts/disco/lib /tmp/mounts/disco/usr/lib
Come detto precedentemente al posto di “disco” dovrà andare il nome della partizione ext2/3.
Adesso potete proprio dare il benvenuto al vostro mini-server ;-P






Grazie Erriko, ho seguito la tua guida ed abilitato lo spazio su chiavetta.
non capisco cmq perchè nella sezione applicazioni della fonera lo spazio disponibile rimanente è pari al 100%.
cioè tutto occupato, anche se ho abilitato lo spazio extra come da tua guida, ed inoltre se lancio un df da shell mi risulta lo / e la rom piena a l 100%
help me if is possible
Evidentemente qualche passaggio non è andato a buon fine. Hai modificato /tmp/mounts/disco con il percorso della tua partizione (potrebbe essere ad esempio /tmp/mounts/Disc-A1) in /etc/profile?
Sia io (più volte) che altri utenti hanno ottenuto questo scopo con successo seguendo questa guida, sono certo che riuscirai anche tu
ciao Erriko, volevo chiederti un’ultima cosa, pensi esista una applicazione che riavvii la fonera automaticamente al fallimento di un ping verso un dato sito?
o in caso fare un riavvio ad una data ora? devo usare il cron?
grazie
No non ne esistono ma con un po’ di programmazione te lo scrivi in bash e lo fai eseguire ad intervalli regolari da cron.