Gadgets‎ > ‎

EXT3 on an Iomega iConnect Wireless Data Station

posted Feb 27, 2011, 5:55 AM by hyunghwan chung   [ updated Nov 7, 2011, 7:34 PM ]
After playing with the Iomega iConnect WDS for a while, I soon realized that it had no support for EXT3 formatted partitions as well as other non-MS file systems unlike what is said on various review sites. Iomega didn't care to include any kernel modules for such file systems. Here is how I cross-compiled the EXT3 kernel module on Ubuntu Linux x86_64 and installed it to the box.

Enable the SSH access by checking Allow remote access for support (SSH and SFTP) in http://ip-address-of-iconnect/supportaccess.html.

Once SSH is enabled, you can log in as root@ip-address-of-iconnect with the password of soho+your-admin-password. If your administration password is tiger, your SSH password for the root user is sohotiger.

Get a proper cross-compiler and install in on your local development machine. I was too lazy to build my own so simply downloaded a compiler for SheevaPlug from and used it. The file downloaded is shown below and contains two files one of which contains ARM cross-compiler suite for 32-bit x86.

Extract files from gcc.tar.bz2 and place them into a directory you like. I put them under ${HOME}/iconnect/LinuxHost/gcc.

Get the kernel source files and the configuration file from the Iomega download site I could get the file named which includes and contains the kernel source files and the configuration file.

Extract the kernel source to a directory you like and copy config_iconnect to the root of the kernel source code as .config. I placed them in ${HOME}/iconnect/linux- without applying the patches in the patches directory as they do not include anything related to EXT3.

Chnage the current directory to the top of the kernel source code which, in my case, is ${HOME}/iconnect/linux-

$ cd ${HOME}/iconnect/linux-

Open the kernel configuration interface by executing the following command.

$ make menuconfig ARCH=arm

Enable the EXT3 file system driver under File systems.

Build the kernel with the following command.

$ make ARCH=arm CROSS_COMPILE=${HOME}/iconnect/LinuxHost/gcc/bin/arm-none-linux-gnueabi-

If compiling completes with no errors, you should be able to get the file system module files from the fs directory. Not only ext3.ko, but you need jbk.ko and mbcache.ko which ext3.ko depends on.

$ ls fs/ext3/ext3.ko fs/mbcache.ko fs/jbd/jbd.ko
fs/ext3/ext3.ko  fs/jbd/jbd.ko  fs/mbcache.ko

Copy these three files to the iConnect box. I chose to copy them into /etc because /lib/modules and its subdirectories are mounted read-only.

$ scp fs/ext3/ext3.ko fs/mbcache.ko fs/jbd/jbd.ko root@

Now log in to the iConnect box.

$ ssh root@

You can strip unnecessary information from the kernel module files copied to save some space on the box.

root@eagle:/# cd /etc
root@eagle:/etc# strip --strip-unneeded ext3.ko mbcache.ko jbd.ko

Load the kernel modules with the insmod command.

root@eagle:/etc# insmod mbcache.ko
root@eagle:/etc# insmod jbd.ko
root@eagle:/etc# insmod ext3.ko

Now, the iConnect box should be able to mount drives formatted in EXT3.

Add the following three lines into /etc/rc.local to make loading permanent.

insmod /etc/mbcache.ko
insmod /etc/jbd.ko
insmod /etc/ext3.ko

You may simply download precompiled-ext3-driver-for- from the attachments below if your device runs and you don't want to get your hands dirty compiling the modules.

hyunghwan chung,
Feb 27, 2011, 7:55 AM
hyunghwan chung,
Feb 27, 2011, 6:09 PM
hyunghwan chung,
Feb 27, 2011, 8:38 AM
hyunghwan chung,
Feb 27, 2011, 8:46 PM
hyunghwan chung,
Nov 7, 2011, 7:29 PM
hyunghwan chung,
Feb 27, 2011, 6:18 AM
hyunghwan chung,
Feb 27, 2011, 5:59 AM