Forum

Full Version: Faster NTFS driver
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I've used the WD Live the last recent years. While using it I had a NTFS performance of about 9MB/sec.
With the Pi I only get about 5MB/sec with the same USB drive and fstab settings.

I got the tip from the WD community that the WD is delivered with an commercial NTFS driver. I've looked for it and it's available for free for personal use:
http://www.paragon-software.com/home/ntfs-linux-per

You have to send a short request and will receive the download link via email. I've used as name "Raspberry Test" and a 10minute email adress and got the link within 5 minutes.

The problem is that you have to compile the driver yourself. I've tried it yesterday, came above some issues but it still crashes within the compiling process due some dependencies.
I think my Linux skills aren't suitable for such tasks.

So will perhaps someone with better Linux skills try it? If the difference is really the NTFS driver it could provide us an gain of nearly 90% of speed.
I what step did it fail?
It crashes in the compiling process.
I wanted to post the exact error message, but I just saw that it's not a good idea to store such file under /tmp as it get's flushed on every boot. I will try it again and post the error messages here.

Here it is:
install.log
http://pastebin.com/W027fTDK

I already run the suggested "make oldconfig && make prepare" twice without any error message.
But somehow something is still missing.
How did you install the kernel-headers?
I found a solution for the error message above:
1. Open "/xtmp/par/ifslinux/ufsdvfs.c"
2. Change (around line 57)...
Code:
#include <linux/smp_lock.h>
to
#include <linux/smp.h>

But now many, many more error messages:
http://pastebin.com/z66Jx5UG


Source-Kernel files for the 3.6 branch (I'm using 3.6.11):
Code:
sudo wget -O raspberrypi-linux-3.6.11.tar.gz https://github.com/raspberrypi/linux/tarball/rpi-3.6.y
And then un-tar it. This took about 25min. for me on the Class 10 SD card.

Code:
root@xbian:/usr/src# pwd
/usr/src
root@xbian:/usr/src#
root@xbian:/usr/src# ls -al
total 201064
drwxr-xr-x  4 root root      4096 Jan  3 19:29 .
drwxr-xr-x 10 root root      4096 Oct 28 22:54 ..
lrwxrwxrwx  1 root root        25 Jan  3 19:29 linux -> raspberrypi-linux-b7c5c10
-rw-r--r--  1 root root  99378805 Jan  3 18:11 raspberrypi-linux-3.1.9.tar.gz
-rw-r--r--  1 root root 106481128 Jan  3 19:04 raspberrypi-linux-3.6.11.tar.gz
drwxrwxr-x 24 root root      4096 Jan  3 20:25 raspberrypi-linux-b7c5c10
drwxr-xr-x  2 root root      4096 Nov 11 18:57 tools
root@xbian:/usr/src#
My guess is that it will not work, paragon doesn't state supporting non x86/x64 platforms and I guess their source is closed and part of the driver is thus distributed as a binary compiled for x86.

Did you mail them asking whether it is possible to compile and run on other platforms?
(7th Jan, 2013 07:42 AM)gizag Wrote: [ -> ]paragon doesn't state supporting non x86/x64 platforms

But the feature list names ARM as supported device:
http://www.paragon-software.com/business/ntfs-linux-embedded/
Code:
Use any hardware platform you wish. Platform independence of the driver source code allows us to port it easily on any hardware platform presented on the market. At the present time our driver supports the following architectures:
    Intel x86 or compatible;
    x86_64 or compatible;
    ARM (XScale, Marvell);
    MIPS.

But it seems that my current Linux skills are far too limited for such compiling tasks. I didn't really made some progress the last days to get this thing running. But perhaps someone with better skills with see this threid here and will give it a try.
A possible doubling of the current NTFS performance sounds interesting, doesn't it? Wink


Edit:
Just noticed the difference between the link in my first post (ver. 8.5 - 32/64bit) and in the last post (ver. 7 - ARM). There is also an free download link for ver. 7. Will give it a try.
Yep, you're right Smile The business embedded version does support ARM chips (different generations/brands tho, but it might be enough) I'll try compiling the module see if I can get it done Smile

On a sidenote, why do you need better NTFS performance ? 5MB/s seems enough to me for even high bitrate movies?
If you want to use the PI as a NAS you'd probably be better of with a ext4 formatted disk, or if you really do need windows compatabillity with a vfat formatted disk (no big file support tho)
(7th Jan, 2013 11:33 PM)gizag Wrote: [ -> ]If you want to use the PI as a NAS you'd probably be better of with a ext4 formatted disk, or if you really do need windows compatabillity with a vfat formatted disk (no big file support tho)

No, no NAS usage planned. Just some copying between the Pi and the destop machine. And many users are asking for better NTFS performance and as I know that the WD Live handles it better for example, it is just a try.

I gave it another try and I got it so far that it starts compiling, but then it's crashing with many different error messages again. So I'm not a big help here, sorry.
Just some short notes to the CONFIGURE executable:

1. The executable "/bin/arch" isn't found on my system.
I had to create a symbolic link to "/usr/bin/arch".

2. The script uses sometimes the "-V" parameter for gcc, which isn't recognized by my gcc version. I search&replace it with "-v".

3. Look for the line with "-fno-builtin".
The variable "$BUILD_INC_DIRS\" created a wrong path with double \\ for me. Didn't know how to fix this.
I just removed the \ in the script and it began compiling.

4. And the "linux/smp_lock.h" is also here.
Using Google it was suggested to edit the "ifslinux/ufsdvfs.c" and replace it...
Code:
#include <linux/smp_lock.h>
to
#include <linux/smp.h>
Did someone made any progress here?
If not, does someone already have an account on the official raspberry forum to ask for help?
http://www.raspberrypi.org/phpBB3/index.php
Reference URL's