-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Context
This is a follow-up to the issue regarding NFSv3 support (Reference: #146 ).
While adding the nfs_version parameter in v1.3.0 was a step in the right direction, it is insufficient for connecting to macOS-based NFS servers (and likely other BSD variants).
The Problem
Even with nfs_version="3" set in replay.cfg, the connection fails with a "Connection Refused" error in the UI. After some debugging, we identified that the root cause is File Locking (NLM). macOS's native NFS server does not play well with the Linux client's default locking mechanism, causing the rpc.lockd service on the Pi to fail registration, which aborts the mount process.
Logs & Evidence
When attempting to connect via the native UI configuration, dmesg reports the following fatal error regarding RPC service registration:
[ 16.361406] svc: failed to register lockdv1 RPC service (errno 111).
[ 16.361447] lockd_up: makesock failed, error=-111
...
[ERROR] [SYSTEM] Failed to mount NFS share: Connection refused
The Solution (Verified)
We performed a manual mount via SSH stopping the frontend first. The connection works instantly and perfectly only when the nolock option is explicitly passed to the mount command.
Fails: mount -t nfs -o nfsvers=3 ... (Default behavior)
Success: mount -v -t nfs -o nfsvers=3,nolock,tcp,rw 192.168.1.55:/Volumes/4TB/ReplayOS/roms /media/sd/roms
Steps to Reproduce
Server: Mac Mini (macOS) exporting a NFS share with -insecure (to allow high ports).
Client: RePlayOS NFS client configured via replay.cfg with correct IP and Path.
Result: "Failed to mount NFS".
Manual Fix: Run mount -o nolock ... -> Mounts successfully and roms are visible.
Current Limitation
It appears that replay.cfg does not currently support a generic nfs_options parameter, or the internal mounter ignores extra flags. Adding nfs_options="nolock" to the config file manually has no effect after reboot.
Feature Request / Fix
Please implement one of the following solutions to allow macOS users to use their native NFS servers:
Expose Mount Options: Allow reading an nfs_options string from replay.cfg and append it to the -o flag of the mount command.
Smart Defaults: If nfs_version is set to "3", automatically append nolock (since file locking is rarely needed for ROM reading and causes significant compatibility issues).
Thanks in advance.