Development environment: i.MX6Q SabreSD w/ L3.0.35_1.1.0_121218 release.
Quoting from Wikipedia about exFAT (exFAT - Wikipedia, the free encyclopedia) as following:
exFAT (Extended File Allocation Table) is a Microsoft file system optimized for flash drives.[3] It is proprietary and patent-pending.[1] It is supported in Windows XP and Windows Server 2003 with update KB955704,[2] Windows Embedded CE 6.0, Windows Vista with Service Pack 1,[4] Windows Server 2008,[5] Windows 7, Windows 8, Windows Server 2008 R2 (except Windows Server 2008 Server Core), Mac OS X Snow Leopard starting from 10.6.5,[6] Mac OS X Lion and OS X Mountain Lion.
The history of support exFAT in Linux was since from 2.6.x, it involves several parts that will be described followingly.
Part 1: Linux Kernel
Enable FUSE (Filesystem in userspace) feature in Kernel Config, then build a new uImage and module if set it to be "M";
Part 2: fuse-2.9.2.tar.gz
Download fuse-2.9.2.tar.gz from http://sourceforge.net/projects/fuse/files/fuse-2.X/, untar it, then build it with following commands:
./configure --prefix=/home/alanz/i.MX6_L3.0.35_121218/ltib/rootfs/usr --host=`/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-gcc -dumpmachine` --enable-lib --enable-util --enable-example --exec-prefix=/home/alanz/i.MX6_L3.0.35_121218/ltib/rootfs/usr
make
sudo make install
Part 3: exfat-utils-1.0.1.tar.gz
Download exfat-utils-1.0.1.tar.gz from http://code.google.com/p/exfat/downloads/list, untar it, then build it with following command:
sudo scons SYSROOT=/home/alanz/i.MX6_L3.0.35_121218/ltib/rootfs DESTDIR=/home/alanz/i.MX6_L3.0.35_121218/ltib/rootfs/sbin CC=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-gcc AR=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-ar RANLIB=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-ranlib STRIP=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-strip install
Part 4: fuse-exfat.git
git clone git://sources.progress-linux.org/git/releases/baureo-backports/packages/fuse-exfat.git fuse-exfat.git
cd fuse-exfat.git
Replace the root SConstruct with the attached one, then execute command:
sudo scons SYSROOT=/home/alanz/i.MX6_L3.0.35_121218/ltib/rootfs DESTDIR=/home/alanz/i.MX6_L3.0.35_121218/ltib/rootfs/sbin CC=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-gcc AR=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-ar RANLIB=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-ranlib STRIP=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-strip install
After all above steps done, you can check whether the necessary files under your rootfs like I did as following:
http://en.wikipedia.org/wiki/ExFAT#cite_note-uspatent-2alanz@alanz-VirtualBox:~/i.MX6_L3.0.35_121218/ltib$ find ./rootfs/ -name *exfat*./rootfs/sbin/exfatlabel
./rootfs/sbin/mount.exfat
./rootfs/sbin/fsck.exfat
./rootfs/sbin/dumpexfat
./rootfs/sbin/exfatfsck
./rootfs/sbin/mount.exfat-fuse
./rootfs/sbin/mkexfatfs
./rootfs/sbin/mkfs.exfat
alanz@alanz-VirtualBox:~/i.MX6_L3.0.35_121218/ltib$ find ./rootfs/ -name *fuse*./rootfs/usr/include/fuse
./rootfs/usr/include/fuse/fuse_common_compat.h
./rootfs/usr/include/fuse/fuse_compat.h
./rootfs/usr/include/fuse/fuse_lowlevel_compat.h
./rootfs/usr/include/fuse/fuse_opt.h
./rootfs/usr/include/fuse/fuse_lowlevel.h
./rootfs/usr/include/fuse/fuse.h
./rootfs/usr/include/fuse/fuse_common.h
./rootfs/usr/include/fuse.h
./rootfs/usr/src/linux/include/linux/fuse.h
./rootfs/usr/lib/libfuse.so
./rootfs/usr/lib/libfuse.a
./rootfs/usr/lib/libfuse.so.2.9.2
./rootfs/usr/lib/libfuse.la
./rootfs/usr/lib/libfuse.so.2
./rootfs/sbin/mount.exfat-fuse
Check Steps can be referenced by the steps presented on internet.
NOTE: The directory name "/home/alanz/i.MX..." should be revised per your self development environment.