Up for some exFAT filesystem fun?

A new PPA gives Ubuntu users the opportunity to try an alternative exFAT kernel module based on the latest Samsung code.

You may recall that, back in August, Microsoft announced it would help bring exFAT to the Linux kernel under a permissible license. This move ended years of legal uncertainty and should allow exFAT to be fully supported in the mainline Linux kernel.

But all the effort is a little way off, and the current “staging” exFAT driver is based on some older code.

In the meantime, Ubuntu users interested in using an exFAT filesystem module for Linux kernel based on the sdFAT drivers developed by Samsung (and used in their Android smartphones) now can.

The SFC has more detail about the Samsung sdFAT drivers

The aim of the exfat-linux project, maintained by Android developer Park Ju Hyung, is to “provide the best generic kernel drivers for exFAT” for Linux users. It does this by leveraging “Samsung-specific modifications” and, in some cases omissions that help make the project code more ‘portable’.

The exfat-linux kernel module is pitched as a drop-in alternative to exfat-nofuse, whose maintenance status is apparently a little up in the air.

Additionally, exfat-linux is based on ‘newer’ code, and its maintainer plans to merge upstream changes as and when, and fix any breakages with newer kernels promptly.

Benefits of exfat-linux over the other alternatives:

  • Faster read/write to exFAT file systems
  • Based on ‘newer’ code
  • Supports 64-bit, 32-bit & ARM kernels
  • Variety of mount options

The Samsung-based exFAT driver has been tested and working with all major LTS kernels, as well as the Linux kernels that Canonical uses in Ubuntu, including v5.0, v5.2 and even the 5.3-rc being used in Ubuntu 19.10 daily builds.

How to install Samsung exFat kernel module in Ubuntu

Before you proceed do take stock of your current set-up. If everything’s working fine, or you’re not really sure why you’d want to switch exFAT module, do not follow along; stick with what you’ve got.

If, however, you’re interested in benchmarking performance with alternative non-FUSE based exfat modules, want to access specific features within this new implementation, just follow the following steps that follow, following?

1. Open a new terminal window (ctrl + alt + t) on Ubuntu 16.04 LTS, 18.04 LTS or later (including Linux Mint 19.x) and run this command:

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

2. Enter your password then update your list of software packages:

sudo apt update

3. Install the exfat-linux kernel module package:

sudo apt install exfat-dkms

Once the exfat-linux package has been downloaded, unpacked, built and installed you will need to reboot your machine to ensure the new kernel is loaded successfully.

To unload or remove the kernel module at a later date (and revert to your kernel’s built-in exFAT module) you can either unload the module using modprobe -r or remove the kernel module entirely (recommended) by running this command as root:

sudo apt remove exfat-dkms

If you try exfat-linux out — I’ll admit that at the time of writing I haven’t — do let me (and other readers) know how you get on, any issues you encounter, and so on.

Thanks arter97

exfat kernel kernel modules samsung