I recently had success in building NTFS-3G and the accompanying FUSE kernel module for Unslung 6.10. The NTFS-3G driver so far appears to provide better performance, and is well tested in the Linux community. It also doesn't suffer from the Linksys proprietary driver bug where the driver locks up under heavy load.
As of right now, I haven't had the time to learn how to create an optware package, but I thought I would provide some guidance on how to compile the software yourself. If someone has a place for me to upload the software - particularly the FUSE driver which is tough to build - then I'd be happy to share! Hopefully one day I will have time to create an optware package for easy installation, as I think a lot of people would love to use NTFS-3G.
What follows is my best recollection of what I did to set up the proper build environment, and what I did to build the software. There may be some missing details, so if you run into any issues, please speak up. I may also not be doing this in the most efficient way, so if there are extra steps or an easier way to do a step, please share.
Since Unslung runs a 2.4 kernel, we have to use FUSE v2.5.3 - Try to use the latest version of NTFS-3G which is v1.2812 as of this writing.
Okay - to the good stuff!
Setting up a kernel build environment to build the FUSE kernel module
We must first build a kernel module for FUSE. FUSE is a driver that allows filesystems in user space, and is used by the NTFS-3G software. I didn't have much luck getting the module to build properly by compiling natively on the NSLU2 - I would get two unresolved symbols when I tried to insmod it. So what you must do is set up a cross-compiler build environment on an external Linux workstation. I found Sun's VirtualBox a perfect solution for creating a quick and easy VirtualPC on my Windows workstation to install Linux on. I used Ubuntu v8.04 as my Linux distro.
./configure --with-kernel= /usr/local/src/unslung/unslung/tmp/work/unslung-kernel-2.4.22.l2.3r63-r22/linux-2.4.22/ --prefix=/opt
CC = /usr/local/src/unslung/unslung/tmp/cross/bin/armeb-linux-gcc LD = /usr/local/src/unslung/unslung/tmp/cross/bin/armeb-linux-ld
Setting up a native build environment for NTFS-3G
I don't know if you can build the NTFS-3G user-tools on the Ubuntu machine (I assume you can, but I didn't try it), but you can build it right on your NSLU2 and use it in conjunction with the fuse.o kernel module to mount your NTFS drive.
I like to do my custom startup stuff in
If you are creating your script from scratch, don't forget to make the script executable:
Reboot and this should mount your NTFS drive using the new NTFS-3G driver.
To verify, run "mount" and it should say something similar to:
So far, I've had mixed results using the NTFS-3G driver. Occasionally the
For the most part, I am giving up on getting it to be stable. The Unslung kernel is too old (2.4) to run the fuse driver reliably, so I am going to switch to another distro with a 2.6 kernel. I would suggest other Unslung users try this out and see if they get better results.
Update to fix crashing?
I think I have a patch that fixes the remaining instability issues. Apply the following patch to dev.c in the fuse source code before compiling:
Update: This doesn't appear to do the trick for me... Anyone else have any luck?
Probably. Look at http://forum.openwrt.org/viewtopic.php?pid=75156