NTFS for Embedded Linux Systems

Since now more and more HD videos are larger than 4GB they can not be stored into FAT32 file system, and require the use of other file systems, the most popular being ext2/ext3 or NTFS. However, since many users may want to access the mass storage devices (IDE / SATA harddisk, USB Harddisk, USB Thumbdrives…) in Windows as well as in their embedded systems (IP STV, Digital Signage..) NTFS seems to the best choice to share data between Windows systems and embedded systems using Linux.

NTFS is available in the Linux kernel. However only read-only is fully supported and the performance is about 25% less than ext-2 or ext-3 for the platforms we tested (EM8623L and SMP8635), but this is still acceptable to play most of HD Videos.

NTFS 3G Logo
NTFS 3G Logo

However, if the device also needs to download videos from a server or other P2P clients, having a read-only file systems will not do it. For this purpose NTFS-3G can be used and provide full read/write access to NTFS partitions. The caveat is that NTFS-3G relies on FUSE (File Systems in User Space) and suffers from very poor performance with embedded platforms, at least with Sigma Designs EM862X and SMP863X series probably due the the overhead of transferring data between kernel space and user space.

So there are no ready made open-source solutions that provide all functionalities and performance required to have NTFS support in an embedded systems such as a Set-Top-Box.

Their are way to overcome the issue however.

  • Optimize ntfs-3g for your embedded systems by yourself.

Your abilities to do that depends on the embedded platform. This is quite challenging for the older Sigma Designs  since AFAIK there are no working profilers for EM862x/SMP863X plarforms. Gprof can not work with uClinux and oprofile requires linux 2.6 (OK for SMP863X) and some hardware timers are required by not available on the MIPS core used by SMP8634/SMP8635.

  • Use commercial solutions

The first solution that can be used is Tuxera made by the developers of NTFS-3G. They have a version of NTFS for embedded systems and boasts some impressive NTFS benchmark for embedded systems , especially in comparison to ntfs-3g. I have never tried a platform using Tuxera NTFS, but based on their benchmark for an embedded systems using MIPS Core @ 333Mhz (See below) this should work very well.

Tuxera vs NTFS-3G vs Ext-3 benchmarch for embedded system
Tuxera vs NTFS-3G vs Ext-3 benchmarch for embedded system

The second commercial solution is made by Paragon and called Paragon NTFS for Linux Embedded. This solution is already used in products using Sigma Designs solutions such as TViX M-6500A and for having tried the sample offers pretty decent performance compared to the open source solutions. Actually this is fast enough to record DTV on the NTFS partition.

Support CNX Software - Donate via PayPal or become a Patron on Patreon

4
Leave a Reply

avatar
4 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Tuxera FAT Embedded Boasts Faster and Better FAT32 Implementation for Embedded Linux and AndroidcnxsoftMikeWCNXSoft – Embedded Software Development » Optimizing hard disk and compact flash performance in Linux Embedded Systems Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
trackback

[…] you use commercial NTFS solution as discussed a previous […]

MikeW
Guest
MikeW

“The caveat is that NTFS-3G relies on FUSE (File Systems in User Space) and suffers from very poor performance with embedded platforms”

According to ntfs-3g’s latest information, it no longer relies on FUSE, hence can use an unmodified kernel (ie. just the same one you have been using with ext3 – no rebuild required).

Cannot comment on the speed aspect, though some kind of profiling of this would be a useful effort for someone with the resources … is it inherent to the filesystem or just the implementation, also with embedded in mind, how does it perform with a) MTD/YAFFS Flash b) SSD drives and c) reliability wrt power cycling.

trackback

[…] system. As a side note, I also evaluated 2 embedded systems based on the same low-end CPU: one using NTFS-3G, and the other Tuxera NTFS back in 2010, and there’s was a massive performance difference at the time. NTFS-3G is a […]