Exfat-linux, a new exFAT driver option

exFAT on Linux

Korean developer Park Ju Hyung, specialized in porting Android firmware for various devices, has introduced a new version of the driver for the exFAT file system:exfat-linux, which is a branch of the "sdFAT" driver developed by Samsung.

Currently, Samsung's exFAT driver has already been added to the interim Kernel branch from Linux, but it is based on the code base of the controller branch above (1.2.9). Currently, Samsung uses a completely different version of the "sdFAT" driver (2.2.0) in its smartphones, one of which was the development of Park Ju Hyung.

In addition to switching to the current codebase, the proposed exfat-linux driver is distinguished by the removal of Samsung-specific modifications, such as the presence of code to work with FAT12 / 16/32 (FS data is supported in Linux by separate drivers) and a built-in defragmenter.

Removing these components allowed us to make the controller portable and adapt it for a normal Linux kernel, and not just kernels used in Samsung Android firmware.

I just realized that these exfat staging drivers are based on Samsung's exFAT 1.x drivers.

I've been working on making Samsung's new driver (now called "sdFAT") better fit general Linux users, and I think it can provide a better foundation for the community to work on (and I hope it better complies with coding main line) standard).

In the future, it is planned to keep the driver updated, transferring the changes from the main Samsung code base and transferring it to new versions of the Kernel.

Currently, the driver has been tested when compiling with kernels starting from 3.4 and ending with 5.3-rc on x86 (i386), x86_64 (amd64), ARM32 (AArch32), and ARM64 (AArch64) platforms.

The author of a new version of the driver suggested that kernel developers consider including a new driver in the interim branch as the basis for a regular exFAT kernel driver, rather than the recently added legacy version.

Performance tests performed showed an increase in speed write operations when using the new driver.

When placing a partition on RAM disk: 2173 MB / s against 1961 MB / s for sequential input / output, 2222 MB / s against 2160 MB / s with random access and when placing a partition in NVMe: 1832 MB / s against 1678 MB 1885 MB / s versus 1827 MB / s.

Read speed increased in the sequential read test on ramdisk (7042 MB / s vs. 6849 MB / s) and random read on NVMe (26 MB / s vs. 24 MB / s).

I encourage core developers to explore this driver base and see if it is worth changing as this is the early days of exfat staging.

More than likely, you can reliably start using exFAT right away by following the link above. It was tested on all major LTS kernels ranging from 3.4 to 4.19 and the ones Canonical uses for Ubuntu.

The developer also did work to simplify the driver installation. Ubuntu users can install it from the PPA repository and for the rest of the distributions, you will simply have to download the code and compile it.

You can also build a controller with the Linux kernel, for example, when preparing firmware for Android.

How to install the exfat-linux driver?

For those who are interested in being able to install this driver on their systems, they can do so by following the instructions we share below.

As mentioned, there is a PPA for those who are Ubuntu users and derivatives of it. To add this repository just open a terminal (you can do it with the key combination Ctrl + Alt + T) and in it we are going to type:

sudo add-apt-repository ppa:arter97/exfat-linux -y

sudo apt update

Now to install the driver just type:

sudo apt install exfat-dkms

While for those who prefer to compile the code, we will only have to type the following in a terminal:

git clone https://github.com/arter97/exfat-linux

cd exfat-linux

make

sudo make install

Finally to test that the controller is working we just type:

sudo modprobe exfat

Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.