Livebox (Inventel DV4210) Filesystem Mounting USB Drives


Depending on the version of firmware and Linux kernel installed depends on how easy it is to mount USB drives as some of the modules required do not exist in every firmware version.

For Linux kernel 2.4.17 you need to have the following modules in place,

/lib/modules/2.4.17/kernel/drivers/usb/usb-ohci.o
/lib/modules/2.4.17/kernel/drivers/scsi/scsi_mod.o
/lib/modules/2.4.17/kernel/drivers/scsi/sd_mod.o
/lib/modules/2.4.17/kernel/drivers/usb/usb-storage.o

If you want ext2 support,

/lib/modules/2.4.17/kernel/fs/ext2/ext2.o

If you want ext3 support (untested),

/lib/modules/2.4.17/kernel/fs/ext3/ext3.o

If you want FAT32 support,

/lib/modules/2.4.17/kernel/fs/nls/nls.o
/lib/modules/2.4.17/kernel/fs/fat/fat.o
/lib/modules/2.4.17/kernel/fs/vfat/vfat.o

and to load the drivers,

insmod {drivername}.o
in the above order

For Linux kernel 2.6.12.6 you need the following modules in place (these all appear to be in the user_2_fs image),

/lib/modules/2.6.12.6/kernel/drivers/usb/host/ohci-hcd.ko
/lib/modules/2.6.12.6/kernel/drivers/scsi/scsi_mod.ko
/lib/modules/2.6.12.6/kernel/drivers/scsi/sd_mod.ko
/lib/modules/2.6.12.6/kernel/drivers/usb/storage/usb-storage.ko

If you want ext2 support, there is none in any of the 2.6.12.6 firmwares that I have seen

If you want ext3 support, there is none in any of the 2.6.12.6 firmwares that I have seen

If you want FAT32 support,

/lib/modules/2.6.12.6/kernel/fs/nls/nls_base.ko
/lib/modules/2.6.12.6/kernel/fs/nls/nls_utf8.ko
/lib/modules/2.6.12.6/kernel/fs/nls/nls_ascii.ko
/lib/modules/2.6.12.6/kernel/fs/nls/nls_cp437.ko
/lib/modules/2.6.12.6/kernel/fs/nls/nls_iso8859-1.ko
/lib/modules/2.6.12.6/kernel/fs/fat/fat.ko
/lib/modules/2.6.12.6/kernel/fs/vfat/vfat.ko

and to load the drivers,

insmod {drivername}
in the above order

You should now be able to mount any available USB drives.

The command for mounting a 2.4.17 filesystem is

mount -t fstype /dev/sdxx /mnt/mountpoint
where 'fstype' is currently only vfat, /dev/sdxx is the device node and /mnt/mount_point is the location for it to be mounted on and can be /mnt/nfs/nfsa, /mnt/nfs/nfsb, etc, depending on available mount points.

The command for mounting a 2.6.12.6 filesystem is

mount -t fstype /dev/scsi/host0/bus0/target0/lun0/partx /mnt/mountpoint
where 'fstype' is currently only vfat, /dev/scsi/host0/bus0/target0/lun0/partx is the device node and /mnt/mount_point is the location for it to be mounted on and can be /mnt/nfs/nfsa, /mnt/nfs/nfsb, etc, depending on available mount points.
Typing 'df' should now show the amount of free disk space on all mounted partitions and should include those of the USB connected device(s). Once you have finished using the shared device, you should be able to remove all the drivers you have loaded with 'rmmod modulename' for each module in reverse order.

If you wanted to, you could create a script file in /etc/init.d and have it called during the boot process to automatically install the drivers and mount the partitions.

For the 2.4.17 kernel modules, all the files that you need to copy to the Livebox were compiled using this source code, provided by Belkin for their F5D7633 ADSL Modem/Router which uses the same Broadcom device. I just changed the config file to build the USB/SCSI/NFS modules and then did a 'make PROFILE=96348GW' and copied the files I wanted from targets/96348GW/modules/lib.... except for nls.o which came from the sgibcm_2_4_17/linux/fs/nfs directory. I have just verified that this config file builds the required modules and that they load and function correctly. The config file needs to be copied as .config into the sgibcm_2_4_17/linux directory. You also need to change the Makefile in that directory to add -mlong-calls to line 105 in the CFLAGS. If you don't, doing insmod with nls.o results in an error. To compile the code, change to the root of the source and type 'make PROFILE=96348GW'. You also need the cross-compile toolset. The version I use came from uclibc-crosstools-mips-0.9.12-5p1.i386.rpm which was part of the bcm963xx_2.14L.02DT_consumer_release.tar.gz code released by HHT (Sinus 1054)/ Siemens SE515. All these sources appear to be identical. I obtained mine from within the Siemens source code but the Sinus one is probably easier to download.

For the 2.6.12.6 kernel modules, all the files came from the V5.08.15-2-fr firmware image. As can be seen, there are no available filesystem drivers for ext2 or ext3, only fat32. Currently no sources for this firmware have been released. Bummer!!!


AndyP