Differences between revisions 1 and 2
Revision 1 as of 2006-03-14 16:24:26
Size: 3796
Editor: Kurgan
Comment:
Revision 2 as of 2006-03-14 17:03:38
Size: 4518
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Chiaramente va bene per hard disk o flashpen, usb o usb2. Attenzione che sembra che usb2 abbia dei problemi e sotto carico si incasini. Questo probelma e` risolto dalla White Russian RC5 in poi. Chiaramente va bene per hard disk o flashpen, usb o usb2. Attenzione che sembra che usb2 abbia dei problemi e sotto carico si incasini. Questo probelma e` risolto dalla White Russian RC5 in poi.

'''IMPORTANTE:''' Se non si vuole installare la root sul disco esterno, e non si vuole usare l' USB2 dato che e` bacato sulla RC4, NON INSTALLARE IL MODULO, altrimenti al momento del pivot_root il disco esterno usb2 (che durante il boot e` visto come usb 1.1, si ingrippa quando viene caricato il modulo dell' usb2. Va da se` che siccome la root e` sul disco esterno, il boot si inchioda. Va ricordato che il modulo usb2 deve non essere presente ne` nella flash interna ne` nella root copiata sul disco esterno.
Line 8: Line 10:
ipkg install kmod-usb2 # ipkg install kmod-usb2
Line 94: Line 96:

 * Riavviare e vedere se monta il disco esterno come root. Se qualcosa non va, e` probabile che togliendo il disco esterno si riesca a bootare dalla flash. Se ancora non va, it's serial console time!

Installazione di un hard disk usb2 sull Asus WL500G Deluxe

Chiaramente va bene per hard disk o flashpen, usb o usb2. Attenzione che sembra che usb2 abbia dei problemi e sotto carico si incasini. Questo probelma e` risolto dalla White Russian RC5 in poi.

IMPORTANTE: Se non si vuole installare la root sul disco esterno, e non si vuole usare l' USB2 dato che e` bacato sulla RC4, NON INSTALLARE IL MODULO, altrimenti al momento del pivot_root il disco esterno usb2 (che durante il boot e` visto come usb 1.1, si ingrippa quando viene caricato il modulo dell' usb2. Va da se` che siccome la root e` sul disco esterno, il boot si inchioda. Va ricordato che il modulo usb2 deve non essere presente ne` nella flash interna ne` nella root copiata sul disco esterno.

  • Caricare i moduli per l' USB, l' USB2 e il supporto usb-storage:
    • ipkg install kmod-usb-uhci
      # ipkg install kmod-usb2
      ipkg install kmod-usb-storage
  • rebootare per far caricare i moduli al boot (facoltativo, si puo` fare dopo)
  • Caricare i moduli per il file system che preferite (vfat, ext2, ext3)
    • ipkg install kmod-vfat
      ipkg install kmod-ext3
      ipkg install kmod-ext2
  • Reboot again per caricare i moduli (stavolta si`, altrimenti poi non vedi il disco)
  • Attaccare il disco usb e vedere con dmesg come e` stato chiamato (qualcosa tipo "/dev/scsi/host0/bus0/target0/lun0/part1")

  • Siccome Openwrt Whiterussian RC4 ha il plug and play, automontera` il disco, se ci riesce. Se odiate il plug and play, occorrera` provvedere a modificare /etc/hotplug.d/usb/01-mount.

Opzione per installare il root file system sul disco esterno

Se lo spazio dentro la flash del router non basta, si puo` avere un sacco di flash usando il disco esterno come root. Per farlo, occorre prima di tutto installare openwrt sulla flash interna, come al solito. Poi occorre installare il supporto per ext3 come indicato sopra, quindi occorre seguire la seguente procedura:

  • Montare il disco usb da qualche parte (diciamo /mnt, che poi su openwrt e` linkato a /tmp/mnt)
    • mount -t ext3 /dev/scsi/host0/bus0/target0/lun0/part1 /mnt
  • Copiare tutto dalla root a /mnt (che poi e` /tmp/mnt in questo caso). Attenzione che puo` essere necessario adattare la struttura delle directory a seconda della versione di Openwrt.
    • tar cvO -C / bin/ etc/ lib/ sbin/ usr/ www/  | tar x -C /mnt
  • Creare le directory e i link che mancano in /mnt
    • mkdir -p /mnt/tmp && mkdir -p /mnt/dev && mkdir -p /mnt/proc 
      ln -s /tmp/mnt /mnt/mnt
      ln -s /tmp /mnt/var
  • Ora, un "ls -la" di / e /mnt dovrebbero essere uguali.
  • Creare in "/" la directory "usb" che useremo poi per montare il disco usb
    • mkdir /usb
  • Creare in /mnt la directory "jffs" che conterra`, dopo che si e` bootato con la root montata sul disco usb esterno, il file system della flash interna al router, per eventuali modifiche o per leggerne roba che serve.
    • mkdir /mnt/jffs
  • A questo punto occorre modificare /sbin/init per adattarlo alla nuova config.
    • Cancellare /sbin/init (Che e` un link a busybox)
    • Inserire questo shell script al posto di /sbin/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
      insmod usbcore
      insmod uhci && sleep 2s
      # insmod ehci-hcd && sleep 2s
      insmod scsi_mod && insmod sd_mod && insmod sg && insmod usb-storage
      insmod ext2 && insmod jbd && insmod ext3
      sleep 2s
      
      # mount the usb stick
      mount -t ext3 -o rw,noatime "$boot_dev" /usb
      
      # if everything looks ok, do the pivot root
      if [ -x /usb/sbin/init ] && [ -d /usb/jffs ]; then
       pivot_root /usb /usb/jffs
       mount none /proc -t proc
       mount none /dev -t devfs
       mount none /tmp -t tmpfs size=50%
       mkdir -p /dev/pts
       mount none /dev/pts -t devpts
       umount /jffs/proc /jffs/dev/pts
       sleep 1s
       umount /jffs/tmp /jffs/dev
      fi
      
      # finally, run the real init (from USB hopefully).
      exec /bin/busybox init
  • Rendere eseguibile lo script di init:
    • chmod a+x /sbin/init
  • Eliminare l'hotplug in modo che il disco USB non venga montato automaticamente, in quanto e` GIA` montato come /.
    • rm /etc/hotplug.d/usb/01-mount
  • Riavviare e vedere se monta il disco esterno come root. Se qualcosa non va, e` probabile che togliendo il disco esterno si riesca a bootare dalla flash. Se ancora non va, it's serial console time!

OpenWrt/WhiteRussian/HardDiskUSB (last edited 2009-04-12 17:33:25 by localhost)