USB storage

From DD-WRT Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 20:25, 10 July 2006 (edit)
Gerrys (Talk | contribs)

← Previous diff
Revision as of 21:48, 30 August 2006 (edit) (undo)
SMiLe (Talk | contribs)

Next diff →
Line 68: Line 68:
Partition check: Partition check:
/dev/scsi/host0/bus0/target0/lun0 /dev/scsi/host0/bus0/target0/lun0
 +
 +In order to use a multislot card reader, you must add the following parameter to the scsi_mod in the file /jffs/etc/modules.d/60-usb-storage:
 +
 + scsi_mod max_scsi_luns=8
To mount a partition To mount a partition
Line 86: Line 90:
# list its contents # list its contents
ls -l /tmp/usb/2 ls -l /tmp/usb/2
- 
[[Category:English documentation]] [[Category:English documentation]]

Revision as of 21:48, 30 August 2006

First, install the folowing modules :

 ipkg install kmod-usb-uhci // this is for USB 1.1
 ipkg install kmod-usb-core
 ipkg install kmod-usb2
 ipkg install kmod-usb-storage

The script below executes on every reboot all *.startup scripts located in /jffs/etc/config/ (this is not needed in new DD-WRT builds (from v23 SP1) since they already execute all *.startup scripts found in /jffs/etc/config/ directory)

 console mode
 > ~ # nvram set rc_startup="
 > for I in `/bin/ls /jffs/etc/config/*.startup`
 > do
 >    sh $I &
 > done
 > "
 > ~ # nvram commit
 >
 web interface mode
 for I in `/bin/ls /jffs/etc/config/*.startup`
   do
     sh $I &
 done

A startup script must be made to start usb drivers on every reboot. Create a file, usb.startup in /jffs/etc/config/ directory that contains this :

#!/bin/sh
insmod /jffs/lib/modules/2.4.30/usbcore.o
insmod /jffs/lib/modules/2.4.30/ehci-hcd.o
insmod /jffs/lib/modules/2.4.30/scsi_mod.o
insmod /jffs/lib/modules/2.4.30/usb-storage.o
# remove the dash (#) from the line below if you use USB 1.1
#insmod /jffs/lib/modules/2.4.30/uhci.o
insmod /jffs/lib/modules/2.4.30/sd_mod.o

This is it. Here's my dmesg from Asus WL-500gP

 dmesg
 SCSI subsystem driver Revision: 1.00
 Initializing USB Mass Storage driver...
 usb.c: registered new driver usb-storage
 USB Mass Storage support registered.
 uhci.c: USB Universal Host Controller Interface driver v1.1
 PCI: Enabling device 01:03.0 (0000 -> 0001)
 uhci.c: USB UHCI at I/O 0x100, IRQ 2
 usb.c: new USB bus registered, assigned bus number 2
 hub.c: USB hub found
 hub.c: 2 ports detected
 PCI: Enabling device 01:03.1 (0000 -> 0001)
 uhci.c: USB UHCI at I/O 0x120, IRQ 2
 usb.c: new USB bus registered, assigned bus number 3
 hub.c: USB hub found
 hub.c: 2 ports detected

Now to access FAT/EXT partitions you must install

 ipkg install kmod-vfat
 ipkg install kmod-ext2
 ipkg install kmod-ext3

Add to /jffs/etc/config/usb.startup

 # FAT
 insmod /jffs/lib/modules/2.4.30/fat.o
 insmod /jffs/lib/modules/2.4.30/vfat.o

Now dmesg should show (The example below is from a 80 GB HD)

 Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
 SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)
 Partition check:
 /dev/scsi/host0/bus0/target0/lun0

In order to use a multislot card reader, you must add the following parameter to the scsi_mod in the file /jffs/etc/modules.d/60-usb-storage:

scsi_mod max_scsi_luns=8

To mount a partition

mount /dev/scsi/host0/bus0/target0/lun0/part1 /mnt
# list its contents
ls -l /mnt

You can also add the above line to /jffs/etc/config/usb.startup to mount the partition on reboot

# multiple partitions
mkdir /tmp/usb/1
mount /dev/scsi/host0/bus0/target0/lun0/part1 /tmp/usb/1
# list its contents
ls -l /tmp/usb/1
# second partition
mkdir /tmp/usb/2
mount /dev/scsi/host0/bus0/target0/lun0/part2 /tmp/usb/2
# list its contents
ls -l /tmp/usb/2