Le seguenti 410 parole non sono state trovate nel dizionario di 1275 termini (includendo 1275 LocalSpellingWords) e sono evidenziate qui sotto:
4s   500g   abbiamo   aggiungiamo   alla   allora   altamente   altri   amico   andato   andranno   appena   appoggio   apporteranno   asus   Asus   automaticamente   automatico   aver   avranno   avuto   avviene   backports   Backup   backup   banner   bash   basta   bin   binaria   bind   bisogno   bocca   boot   Boot   buon   bus0   busybox   cambio   cancellare   cancellarle   cancellato   caricare   cartella   casini   chiama   chiavetta   completare   compresi   conf   configurazioni   conosciute   consigliarlo   consta   Contents   contenuto   copia   copiamo   copiare   corrente   così   cp   creala   creare   creiamo   Creiamo   czvf   dapprima   dd   default   dell   deluxe   demone   dev   devi   dice   digita   direttamente   disc0   dischi   disposizione   diversi   dmesg   documentazione   documento   done   dopodichè   dove   dovi   dovrebbe   dovresti   downloads   drive   e2fsprogs   ecc   echo   effettive   effetto   ehci   eliminare   enter   errore   esce   esclude   esempio   esista   esiste   etc   ethernet   eventuali   evitare   exec   ext2   ext3   fa   fai   far   farci   fare   Fare   farlo   fat32   fdisk   file   filesystem   fino   firmware   fix   flash   for   forma   formattare   formattatore   formattazione   fs   funzionare   Generali   generalmente   genere   gz   hai   hanno   hcd   ho   Ho   Host   host   host0   hotplug   idee   if   incaricarsi   indica   indicare   indico   indietro   inferiori   informazione   init   insmod   interessa   intero   Intro   invitato   io   ip   ipkg   irreversibili   Jan   jbd   jffs2   kernel   kmod   lancia   lavorato   line   ln   lo   loggi   lrwxrwxrwx   ls   lun0   lupo   macchina   magari   manca   mantenendo   mega   memoria   memorizzare   messaggio   messo   metodo   mi   migliorabile   mio   mipsel   mkdir   mke2fs   mkefs   mkfs   mnt   mod   modi   modifica   modifiche   modo   module   modules   moduli   montarti   montati   montiamo   moooooolto   mostra   mostrerà   motivo   mount   mounts   move   mtabs   mtdblock   mv   nascosti   necessari   nei   new   ns   occupa   ogni   ohci   old   on   only   openwrt   Openwrt   oppure   Ora   ora   ovviamente   part1   partire   partirà   partito   Partizionamento   partizionamento   partizione   partizioni   Passiamo   pc   pedro   pen   pennino   pensa   perchè   perse   pivot   Plugga   pluggato   Poi   poi   popolato   posizione   poter   potrebbe   preferito   premi   prese   presente   priblemi   primaria   problema   proc   procedi   procedimento   procedura   procedure   pronto   proposito   prossimo   prove   prtizione   pulita   puoi   qualche   qualcosa   quali   quasi   qui   radice   rc   rc5   rc6   read   reiserfx   remoto   rendere   reperibile   repository   resolv   reversibile   Riavvia   riavvii   riavvio   riconosciuto   ricreare   riempire   riesce   righe   rimangano   rimarranno   rimpiazzalo   risicata   risparmiato   rispettivo   rm   rom   root   rozza   S2   Sal   samba   sbin   scaricare   scelto   scp   scritto   scrivere   scrivibile   scsi   sd   sda   sda1   Secondo   seguono   semplicemente   sempre   sento   serve   sgamare   significa   simbolici   simbolico   sleep   smonto   sostituirli   Squash   squashfs   src   ssh   sshti   state   storage   strumenti   sull   supporto   sys   system   T32   tab   tabella   Table   tar   target0   tarrone   testo   ti   Ti   tipo   tmp   to   tocca   tornare   totalità   touch   tratto   trova   trovare   Trovate   trovate   troverai   trx   tuo   uhci   umount   update   usa   usare   usb   usb1   usb2   usbcore   utilizzati   va   vecchia   vedere   Verifica   verifica   verifichi   vero   vfat   vi   visualizzare   voce   volte   vostra   vostro   vuoi   vuole   wl500g  

Nascondi questo messaggio
Italiano English
Modifica History Actions

Asus_WL-500g_e_openwrt_rc6

Asus WL-500g e openwrt rc6

Intro

In questo documento tratto come far vedere un pen drive usb alla vostra macchina mipsel per farci fare il boot o semplicemente per aumentare la memoria a disposizione (che è sempre moooooolto risicata).
Ho fatto le prove su un asus wl500g deluxe con openwrt rc6 (attenzione per rc inferiori alla 6 potrebbe non funzionare questo procedimento). La quasi totalità delle info che trovate qui di seguito sono state prese dalla documentazione on-line reperibile su http://www.openwrt.org. Inoltre questo documento è altamente migliorabile, quindi chi pensa di poter aggiungere, completare o cancellare del testo, è invitato a farlo!

Informazioni Generali

Host utilizzati:

  • host remoto (linux) da cui ho lavorato --> 192.168.0.10 (ethernet)

  • (Asus wl500g-deluxe) Openwrt rc6 --> 192.168.0.2 (ethernet)

Openwrt consta di 2 filesystem :

  • SquashFS --> kernel + filesystem read-only

  • JFFS2 --> filesystem scrivibile

Quando openwrt parte, verifica dapprima l'esistenza del filesystem JFFS2 e se non lo trova fa il boot da SquashFS. Di default il JFFS2 è popolato con link simbolici ai file del SquashFS. Per fare delle modifiche che rimangano effettive ai prossimi riavvii basta eliminare i link simbolici su JFFS2 e sostituirli con i file che si vuole (ovviamente mantenendo il nome del link simbolico).

Per esempio il file /etc/resolv.conf (che si occupa di indicare l'ip del ns da usare):

root@Asus_WRT_1:~# ls -l /etc/resolv.conf

lrwxrwxrwx    1 root     root           16 Jan  1 00:06 /etc/resolv.conf -> /tmp/resolv.conf

in queste condizioni se lo si modifica (vi /etc/resolv.conf), le modifiche avranno effetto fino al prossimo riavvio dopodichè andranno perse. Per rendere le modifiche effettive si deve cancellare il link simbolico e ricreare un file nella stessa posizione e con lo stesso nome del link appena cancellato. Solo allora le modifiche che si apporteranno rimarranno effettive anche ai prossimi riavvii :

root@Asus_WRT_1:~# rm /etc/resolv.conf ;touch /etc/resolv.conf ;vi /etc/resolv.conf

Openwrt usa la directory /etc/modules.d per caricare automaticamente i moduli ad ogni riavvio.

Backup dei dati su OpenWRT

Ti indico la procedura di backup per evitare di fare dei casini irreversibili. Ci sono 2 procedure:

1. (procedura rozza) sshti sull'asus e fai un mega tarrone delle configurazioni :

root@Asus_WRT_1:~#tar -czvf backup_asus.tar.gz /etc/

copia tutto sul pc 192.168.0.10 per esempio nella cartella /root/backup_asus

root@Asus_WRT_1:~#scp root@192.168.0.10:/root/backup_asus backup_asus.tar.gz

2. (procedura più pulita) oppure procedi così dal pc remoto 192.168.0.10 per fare il backup dell'intero firmware :

$ssh root@192.168.0.2 'dd if=/dev/mtdblock/1' > firmware-backup.trx

ti troverai il backup del firmware nella directory corrente.

Installazione del pennino USB

I moduli necessari sono :

root@Asus_WRT_1:~#ipkg install kmod-usb-uhci            (usb1.1)

root@Asus_WRT_1:~#ipkg install kmod-usb2                (usb2.0 ehci-hcd)

root@Asus_WRT_1:~#ipkg install kmod-usb-storage

root@Asus_WRT_1:~#ipkg install kmod-vfat                (supporto per fat32)

root@Asus_WRT_1:~#ipkg install kmod-ext2 kmod-ext3      (supporto per ext3; magari per un samba)

Passiamo ora al partizionamento e alla formattazione del pennino. Ci sono 2 modi: farlo da un pc OPPURE farlo direttamente sull'host openwrt (l'asus nel mio caso ).

Partizionamento e formattazione da PC

è il metodo che io ho preferito sia perchè così mi sono risparmiato di scaricare altri pacchetti necessari per queste operazioni sull'asus (gli apparati hanno una memoria generalmente risicata), sia perchè ho avuto dei priblemi nel formattare il pennino direttamente sul'asus. Trovate (tramite dmesg) come si chiama il vostro pennino (generalmente sd qualcosa). Creiamo la tabella delle partizioni :

bash-3.00#fdisk /dev/sda

una volta partito fdisk digita 'p' per vedere quali partizioni ci sono e 'd' seguito dal numero della partizione per cancellarle. Poi sempre con 'p' verifichi che non hai più partizioni. Ora devi creare una nuova partizione quindi digita 'n' e se la vuoi primaria (p) e 1.
Per riempire la chiavetta intera premi enter 2 volte.
Se vuoi creare una partizione FAT32 digita 't' e poi 'b'. Se vuoi creare una prtizione linux digita 't' e poi'83'.
Ora digita 'w' per scrivere la tabella di partizioni sulla chiavetta (non puoi più tornare indietro!).
Ora devi formattare la chiavetta :

bash-3.00#mkfs.vfat -F 32 /dev/sda1     (se hai scelto fat32)

bash-3.00#mkfs.ext3 /dev/sda1           (se hai scelto linux e la vuoi in ext3)

linux offre diversi file system con il rispettivo formattatore di fs (mkfs.reiserfx, mkfs.ext2 ecc... tab è tuo amico come dice Sal!!!).

Partizionamento e formattazione da host OpenWRT

serve fdisk ma non è presente nei repository della rc6 quindi aggiungiamo il backports della rc5 /etc/ipkg.conf

root@Asus_WRT_1:~#echo src backports http://downloads.openwrt.org/backports/rc5 >> /etc/ipkg.conf
root@Asus_WRT_1:~#ipkg update
root@Asus_WRT_1:~#ipkg install fdisk

Ora dovi sgamare come viene riconosciuto dal sistema il pennino. Plugga il pennino e lancia dmesg; dovresti trovare una voce del genere /dev/scsi/host0/bus0/target0/lun0---> questo è il tuo pennino.
Creiamo la tabella delle partizioni:

root@Asus_WRT_1:~#fdisk /dev/scsi/host0/bus0/target0/lun0

Per formattare la chiavetta sull'openwrt abbiamo bisogno di altri strumenti:

root@Asus_WRT_1:~#ipkg install e2fsprogs
root@Asus_WRT_1:~#mkefs -j /dev/scsi/host0/bus0/target0/lun0/part1      (per la formattazione)

Se ti esce un errore del tipo che non trova il file mke2fs significa che manca il link simbolico :

root@Asus_WRT_1:~#ln -s /proc/mounts /etc/mtabs         

(/proc/mounts mostra le informazione conosciute dal kernel a proposito dei dischi montati )

Fare il mount

Verifica che esista la cartella /mnt sul tuo apparato e se non esiste creala:

root@Asus_WRT_1:~# mkdir -p /mnt

Da questo punto in poi devi aver pluggato il pennino sull'apparato perchè tocca copiare tutto il contenuto della flash sulla usb :

root@Asus_WRT_1:~#mount -t ext3 /dev/scsi/host0/bus0/target0/lun0/part1 /mnt    

(montiamo il pennino in /mnt)

Ora hai tutto il contenuto del pennino in /mnt. Al prossimo riavvio il demone di hotplug dovrebbe incaricarsi di montarti in automatico il pennino in /mnt/disc0_1 o qualcosa del genere (il che sarà un problema per il boot da usb).

Boot da pennino USB

root@Asus_WRT_1:~#mkdir /tmp/root       

(creiamo una cartella di appoggio in cui copiare quello che verrà poi copiato sul pennino)

di queste 2 righe che seguono una esclude l'altra:

root@Asus_WRT_1:~#mount -o bind /rom /tmp/root  

(se vuoi caricare lo squashfs sulla usb e non ti interessa di eventuali modifiche che hai fatto sul JFFS2)

root@Asus_WRT_1:~#mount -o bind / /tmp/root     

(per chi ha fatto delle modifiche sul JFFS2.E' il mio caso e mi sento di consigliarlo!)



root@Asus_WRT_1:~#cp /tmp/root/* /mnt -a        

(copiamo tutto da /tmp/root in /mnt (pennino usb) compresi i file nascosti)

root@Asus_WRT_1:~#umount /tmp/root      

(smonto la directory /tmp/root che non mi serve più)

root@Asus_WRT_1:~#umount /mnt                   

(smonto il pennino usb)

Ora fai un backup del file /sbin/init

root@Asus_WRT_1:~#mv /sbin/init /sbin/init.BK

e rimpiazzalo con questo nuovo init:

# change this to your boot partition
boot_dev="/dev/scsi/host0/bus0/target0/lun0/part1"

# install needed modules for usb and the ext3 filesystem
# **NOTE** for usb2.0 replace "uhci" with "ehci-hcd"
# **NOTE** for ohci chipsets replace "uhci" with "usb-ohci"

for module in usbcore ehci-hcd usb-ohci uhci scsi_mod sd_mod usb-storage jbd ext3; do {
        insmod $module
}; done

# this may need to be higher if your disk is slow to initialize
sleep 4s

#aggiunta da pedro per smontare il pennino se hotplug lo ha già montato
umount /mnt/disc0_1

# mount the usb stick
mount "$boot_dev" /mnt

# if everything looks ok, do the pivot root
[ -x /mnt/sbin/init ] && {
        mount -o move /proc /mnt/proc && \
        pivot_root /mnt /mnt/mnt/disc0_1 && {
                mount -o move /mnt/dev /dev
                mount -o move /mnt/tmp /tmp

# If you are using whiterussian 0.9 then remove next two lines and uncomment third one:
# note that is jffs and not jffs2

                mount -o move /mnt/jffs2 /jffs2 2>&-
                mount -o move /mnt/sys /sys 2>&-
#               mount -o move /mnt/jffs /jffs 2>&-

        }
}

# finally, run the real init (from USB hopefully).

exec /bin/busybox init

Poi per verificare se al riavvio il boot viene fatto dal pennino o dalla flash puoi visualizzare un messaggio nel banner dell'openwrt :

$echo "BOOT FROM FLASH" >> /etc/banner

$mount /dev/scsi/host0/target0/lun0/part1 /mnt

$echo "BOOT FROM USB" >> /mnt/etc/banner

Ora dovrebbe essere tutto pronto per il boot da usb.Riavvia e in bocca al lupo. Se tutto è andato a buon fine non appena ti loggi sul tuo asus dovresti vedere il banner seguito dalla scritto BOOT FROM USB e il file /sbin/init è in forma binaria (è quello originale dell'openwrt!). Se l'asus non riesce per qualche motivo a partire da usb allora partirà dalla flash di default e ti mostrerà il messaggio BOOT FROM FLASH.

to fix:

nel nuovo file /sbin/init il vero e proprio cambio di root del sistema dalla flash alla usb avviene con il comando

root@Asus_WRT_1:~#pivot_root new_root old_root

dove nella new_root si indica la radice della usb /mnt e in old_root va messo il percorso per memorizzare la vecchia root di modo da rendere il cambio di root un processo reversibile. Secondo quanto scritto nel file la vecchia root dovrebbe essere in /mnt/mnt ma così non avviene.(idee!??!)

pedro