fuse-exfat

Rating: 
5
Your rating: None Average: 5 (3 votes)

It looks like SailfishOS 3 has included auto-mounting of exfat partitions (?).

fuse-exfat is a read and write driver implementing the extended file allocation table as a filesystem in userspace. A mounthelper is provided under the name mount.exfat-fuse
Source code homepage: https://github.com/relan/exfat/

I, olebr, just added a rpm-spec-file, and made it compile on my Sailfish X.

Category:

Application versions: 
AttachmentSizeDate
File fuse-exfat-1.2.7-1.armv7hl.rpm23.21 KB15/01/2018 - 14:01
File fuse-exfat-1.3.0-1.armv7hl.rpm27.58 KB05/05/2020 - 01:08
Changelog: 

- Added .spec-file to build rpm-package
- (For source code changelog check fuse-exfat-1.3.0 on github)

Comments

pakman's picture

This no longer seems to work with SFOS 3.2 or 3.3: I get a message in the Storage part of Settings that "The file system is incompatible. Formatting is needed". The volume's label does appear, and the devices /dev/sda and /dev/sda1 are created. I have no problems mounting the same SDXC card on a computer running openSUSE Linux. Perhaps a rebuild of this package and of exfat-utils is needed?

Screenshot of Storage settings window

olebr's picture

Have now updated the rpm-packages for both fuse-exfat and exfat-utils.
But in SOFS 3.2+ it looks like the exfat support is built in... ?
(I tested by connecting my Panasonic cam by USB, and it is auto-mounted as exfat with and without the fuse-exfat package installed).
So mayby You need to manually mount with use of the fuse-exfat-1.3.0, by doing:
#$  mount -t exfat-fuse /dev/sda1 /mnt/exfat

levone1's picture

Do you know which file(s) in Jolla system are responsible for auto-mounting exfat? I may have inadvertently removed them while messing around with this. I am still able to mount manually using mount.exfat command from your package, but would like to get auto mount back.
My story is here - https://forum.sailfishos.org/t/usb-otg-help-xperia-x/1474/4

pakman's picture

Thanks for trying, but it still doesn't work. It is a bit wierd: both 'mount -t exfat-fuse' and 'mount -t exfat' error out with 'unknown filesystem exfat-fuse/exfat', but using 'mount.exfat' does work, and 'mount -l' shows that it is mounted with type 'fuseblk' which is the same as on my linux laptop. 'lsblk -f' recognises the filesystem as 'exfat'. If I mount it under /run/media/nemo/<somedir> then Gallery picks up the pictures on the card, but the storage manager still looks like it did in my screenshot.

I have tried both using a generic SD card reader, and by connecting my (Sony) camera directly, with the same results. I'll need to do a bit more investigation when I have some time, and I will probably take it up on TJC if I need input from any experts.

ntninja's picture

After spending way too much time anaylzing this today, I realized that the issue is not in udisks2 (as I originally assumed), but in util-linux (the package containing the mount command among other things). Had I read pakman's comment more carefully I would have probably realized this earlier… Anyways, after realizing this I took a quick look at the source and decided to use the venerable strace to get some runtime behaviour data. Turns out mount doesn't actually look in /usr/sbin/ for the mount.exfat helper binary (anymore?), only in /sbin/, /sbin/fs/ & /sbin/fs.d/ (the later two paths don't actually exists). Weird but OK…

TL;DR:

  • As a user you can workaround this issue, by enabling dev-mode and running devel-su ln -s /usr/sbin/mount.exfat /sbin/ in the Terminal app.
  • As for the author of this package, please push a new version that puts mount.exfat into /sbin/ rather then /usr/sbin/. Thanks!

Note: Settings app will show the SDCard as incompatible and suggest formatting it, but it will be mounted and displayed as SDCard everywhere regardless.

ferlanero's picture

If someone want to add automount support to Sailfish olebr exFat implementation, just follow this steps: https://openrepos.net/content/ferlanero/usb-stick-utils-automount-exfat-support