We have moved to a new Sailfish OS Forum. Please start new discussions there.

# Xperia X missing NFS support?

Tracked by Jolla (In release)

Hossa still lacks NFS[3|4] support :-(

As far as I understand, Sony provides all the code & tools to compile (and replace) a custom kernel which can be used for Sailfish X (Hossa). Unfortunately, I'm the BSD guy and don't have Linux/SDK running and no time to setup/read through.

If somebody contributes a public solution, I'll pay US$/€50-100. Serious – quick money if you're having the environment handy. But reproduction steps must be posted, especially if it's still true that we can't load it as kernel module (thus, need to replace the whole kernel :-( Blame on Jolla. Such a big regression completely ignored. This is one of the major issues why I still can't use my Xperia X and still need to hope my Jolla 1 will keep alive... Asked on Apr. 10th 2018: Purchased SailfishX and to my big suprise, mounting NFS shares isn't possible anymore. Can't be true, jolla removed NFS support from the kernel, can be? Update: Questions to JP1-2.1.4.* users: Can anybody confirm that this is a problem with SailfishX only, not with SailfishOX >2.0.?.* (which is what I still run)? Thanks in advance. P.S.: I'm a bit surprised that my initial question was censored. To much truth? Of course, it's out of scope of that single problem which my question referes to, but I don't have a _single_ problem with SailfishX... edit retag close delete ## Comments 2 you mean mount -t cifs does not work? also arent there userspace nfs clients available? ( 2018-04-08 16:25:52 +0300 )edit 3 AFAIK its not available in the kernel. Didn't tested it since the last update, but believe it's still broken, which is a big step back. Especially in this linux friendly community. Hope we can get a update soon, with all fixes for the crippled hardware under XPERIA. ( 2018-04-08 19:36:37 +0300 )edit 4 I don't really care if "mount -t cifs" doesn't work, otherwise my question was CIFS/SMB related, not NFS. But neither "-t nfs" nor "-t nfs4" work with SailfishX, hence my question. This is a simple linux kernel configuration issue - nothing related to hardware or jolla code at all! Of course, userland tools (like FishNetMount) cannot work if the kernel lacks support for the functions to be controlled. Theoretically it was possible to implement it by utilizing fuse (and provide the corresponding fuefs-modules with the userland app), but that was plain silly. Just konfigure the kernel to be compiled with the same NFS features as it was for JP1 - the kernel size enlarging of less than 0.001 GB won't hurt _anybody_ - no sympathy for people in charge for such decisions here! ( 2018-04-09 11:52:16 +0300 )edit 3 I have the feeling SailfishX is using the kernel Sony AOSP is providing, it's not a problem of size or configuration. ( 2018-04-09 12:09:15 +0300 )edit @Sunny: I removed the rant because it was unrelated to the question and would only have attracted negative comments (and this site is not the right place for that anyway). This way you can get an answer to your question. ( 2018-04-09 12:54:44 +0300 )edit ## 4 Answers Sort by » oldest newest most voted answered 2018-04-10 13:51:50 +0300 The kernel (3.10.84) compiled in the current 2.1.4 Sailfish release has NO networked filesystem support compiled in (no NFS, CIFS/SMB, etc.). And modules loading is disabled too. $ uname -a
Linux sailfish 3.10.84 #1 SMP PREEMPT Wed Jan 24 16:53:18 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
$zcat /proc/config.gz | grep NETWORK_FILESYSTEMS # CONFIG_NETWORK_FILESYSTEMS is not set$ zcat /proc/config.gz | grep MODULES
# CONFIG_MODULES is not set


So there's currently no way to enable NFS support.

• Short term solution

FUSE support is compiled in (and is used by optionnal Alien-dalvik, NTFS-3g and exFAT, among others). Maybe some kind of FUSE NFS could work for your usecase ?

• Long term solution

After a lot of users requesting it, Jolla got persuaded to compile BTRFS into 2.1.4 Maybe if enough users ask for NFS, they'll enable it ?

more

Or the third solution (the best so far) ; just compile your own kernel.

( 2018-04-10 15:27:08 +0300 )edit

thats a bit unfair @juiceme. its nothing straightforwardto compile a kernel; not to mention to install it on a phone. the blame the victim approach is not the right one here.

( 2018-04-11 16:32:37 +0300 )edit

no no, you got me wrong; I am not blaming anything or anybody!

Just saying it is the best alternative (in my opinion) as you can pretty much select what you want to include... the SFOSX community kernel is a drop-in replacement to the official SFOSX so no problems there.

( 2018-04-11 18:31:48 +0300 )edit
1

@juiceme

community kernel is a drop-in replacement

Oh, is it ? I didn't knew (didn't test, actually).

And while we're at it : link to the TMO thread about the community firmware. (Where people where discussing about enabling networked filesystems).

( 2018-04-11 18:47:58 +0300 )edit

The reported problem concerns Xperia X, whereas XA2 has the support for NFS.

Output from XA2/3.0.3.9:

$zcat /proc/config.gz | grep NETWORK_FILESYSTEMS CONFIG_NETWORK_FILESYSTEMS=y$ cat /proc/filesystems | grep nfs
nodev    nfs
nodev    nfs4
nodev    functionfs


We will check if the issue can be eliminated from Xperia X.

more

4

Thanks. This is a long awaited answer and we all expect this basic functionality working for the next update.

And while you're at it, please, please add the kernel module for cifs/smb again. It's important in private and business environments having usually cifs network shares. I don't see any reason for not enabling it and we're waiting for this since it got broken in Sailfish 2.x

( 2019-05-10 16:17:12 +0300 )edit

This commit enabled NFS on other devices, and was included on the X:

CONFIG_NETWORK_FILESYSTEMS isn't set on this kernel, which probably contributes. A PR to that branch to fix this would be gratefully received.

more

IMO one usually executes a cat /proc/filesystems to see which filesystems a specific kernel supports.
Doing this, I cannot see NFS support on both, an Xperia X under SFOS 3.0.0 and a Jolla 1 under SFOS 2.2.1!?!

( 2018-11-11 17:48:48 +0300 )edit
4

I have no idea about github branches and who maintains which one, nor which/why Jolla uses foreign default configs. But it's clear that 3.0.3.9 doesn't have any network filesystem support enabled. Manually inspecting "aosp_loire_suzu_defconf " in "android_kernel_sony_msm/arch/arm64/configs/" doesn't show the lines from your commit - but as ancient SVN user I never understood the github web interface... (One can find CONFIG_MODULES=y and CONFIG_MODULE_UNLOAD=y Couldn't find a reference documentation for CONFIG_MODULES to see if additionally CONFIG_MODULES_LOAD exists – which CONFIG_MODULE_UNLOAD brought to my mind…) Obviously, as far as I understand your comment correctly, CONFIG_NFS_V4=y doesn't really enable kernel support for NFS4, but CONFIG_NETWORK_FILESYSTEMS=y must be set in addition – wherever this might be documented and how ever this makes sense (I could imagine the use of CONFIG_EXCLUDE_NETWORK_FILESYSTEMS, but that's why I stay with BSD...) For me, all the different source repositories/branches and the lack of a centralized authoritative documentation makes it impossible to file a PR. What should I write? Doesn't work and I don't have time to wrestle with Linux mess? That wouldn't really help. If someone made a wrong commit and gets notice that the intention of the commit is still not achieved, why does anybody else have to take care about that mistake?!?! Will never get that philosophy... I already reported NFS regression more than a year ago and others also asked for bringing back network filesystem support. Please Jolla, take over the responsibility to bring back sensible network filesystem support for a Linux based mobile operating system – which is at least NFS3+NFS4 (and not NFS2). And taking real-world IT into account, also CIFS should be enabled if mainstream Linux distros also enable that – meaning doesn't compromise kernel's stability/security/cost(performance). Thanks in advance.

( 2019-05-10 13:04:56 +0300 )edit

Svn or not, you can get the running kernel config from your device via /proc/config.gz Enabling more modules is a long work.

( 2020-01-17 08:09:00 +0300 )edit
1

NFS etc was enabled on some earlier kernels, but as it wasn't an officially supported feature it wasn't insisted on by the kernel config checker. This got merged to that last year, so future kernels should support that, CIFS, BTRFS, F2FS, UDF and even ISO9660:

https://github.com/mer-hybris/mer-kernel-check/pull/19

( 2020-02-18 22:56:09 +0300 )edit