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.
However, if the device also needs to download videos from a server or other P2P clients, having a read-only file system 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 to 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 embedded systems such as a Set-Top-Box.
There are ways to overcome the issue, however.
- Optimize ntfs-3g for your embedded systems by yourself.
Your abilities to do that depend on the embedded platform. This is quite challenging for the older Sigma Designs since AFAIK there are no working profilers for EM862x/SMP863X platforms. 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 embedded systems using MIPS Core @ 333Mhz (See below) this should work very well.
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.