Short: NFSv3 client filesystem (filesysbox) Author: renaud.schweingruber@protonmail.com (Renaud Schweingruber) Uploader: renaud schweingruber protonmail com (Renaud Schweingruber) Type: comm/net Version: 1.0 Requires: filesysbox.library 54.3+ (util/libs/filesysbox), a TCP/IP stack Architecture: m68k-amigaos >= 3.0 Distribution: Aminet nfs-handler mounts a directory exported over NFSv3 by a Linux machine or a NAS (TrueNAS, Synology, OpenMediaVault...) as an ordinary Amiga volume: Workbench icon, device and volume name, accented filenames, clean dismount. Mount SYS:Storage/DOSDrivers/NFS0 List NFS0: FbxDismount NFS0: The NFSv3-over-TCP client layer comes from AmiNFSv3 by creep-ltx (MIT). The AmigaDOS side is handled by filesysbox.library (the same framework as smb2fs), which takes care of the DOS list, Workbench disk-change events, dismounting, UTF-8 name conversion, ExamineAll, notifications and 64-bit file sizes. FEATURES - NFSv3 over TCP against a stock Linux nfsd, TrueNAS, Synology - Read and write; UNSTABLE writes with COMMIT at close and write verifier checking (a server restart mid-file fails the close instead of losing data silently) - Pipelined transfers (DEPTH=1..8) with safe fallback - Filenames converted between the server's UTF-8 and the Amiga charset; case-insensitive lookups, accented letters included - Timestamps in local time via locale.library - Files beyond 4 GB - Clean dismount with FbxDismount, remount on next access REQUIREMENTS - AmigaOS 3.0+ - filesysbox.library 54.3 or newer in LIBS: - bsdsocket.library V4 (Roadshow, AmiTCP, Miami, Emu68 lwIP, WinUAE bsdsocket emulation) - an NFSv3 server exporting with "insecure" (TrueNAS: "Allow non-root mount"): Amiga stacks do not use privileged ports INSTALLATION Run the Install script: it checks filesysbox.library, asks for your CPU (68000/010, 68020/030, 68040, 68060, 68080 Apollo), copies the matching binary to L:nfs-handler. By hand: Copy bin/nfs-handler.020 L:nfs-handler (or .000/.040/.060/.080) Copy NFS0 SYS:Storage/DOSDrivers/ Edit the Startup line of NFS0: Startup = "192.168.1.2 /mnt/pool/share VOLUME=Share UID=1000 GID=1000" Template: HOST/A,EXPORT,VOLUME/K,UID/K/N,GID/K/N,RSIZE/K/N,WSIZE/K/N,DEPTH/K/N,TZ/K,READONLY/S HOST is a dotted-quad address; "host:/export" as one word (AmiNFSv3 / NFS-GUI style) is accepted too, so an existing DOSDriver works unchanged - set its StackSize to 65536. UID/GID default to 1000/1000. RSIZE/WSIZE are the transfer chunks (4096..131072), DEPTH the number of requests in flight for large transfers (default 1). TZ (hours east of UTC) is normally unnecessary. READONLY mounts read-only. Dismount with FbxDismount NFS0: (part of filesysbox). SERVER Linux /etc/exports: /srv/amiga 192.168.1.0/24(rw,insecure,no_subtree_check,all_squash,anonuid=1000,anongid=1000) TrueNAS: enable NFSv3 under Services > NFS and tick "Allow non-root mount" on the share. Open TCP 111, 2049 and the mountd port on any host firewall. HISTORY 1.0 First release. Binaries for 68000, 68020, 68040, 68060 and 68080 (Apollo); Installer script;