On Mon, 5 Feb 2024 at 19:31, Antony Pavlov <antonynpavlov@xxxxxxxxx> wrote: > > On Wed, 31 Jan 2024 22:37:50 +0100 > Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> wrote: > > Hi all! > > > Hello Dan, > > > > On 31.01.24 22:03, Dan Shelton wrote: > > > Hello! > > > > > > Does barebox support booting from a NFSv4 filesystem, e.g. boot from > > > NFSv4 filesystem into a Linux NFSv4 netroot (diskless machine)? > > > > The barebox network stack only does UDP/IP. There have been attempts to > > bring a TCP stack into barebox, but none have so far succeeded to > > make it mainline. This is a hard requirement before we can consider > > supporting NFSv4. I hope that lwIP could fill this gap in the future, > > but no one is actively continuing this work as far as I am aware[1]. > > > > > We need NFSv4, because it does not need rpcbind, and combines > > > filesystem, lockd and other stuff all in one TCP port (2049). Site > > > policy also does not allow NFSv2/NFSv3, but allows NFSv4. > > > > Please note that this only concerns barebox and that kernel nfsroot is > > unaffected. You can load kernel and device tree over TFTP and supply a > > suitable command line argument to the kernel to use a NFS root. > > > > The standard net boot target does just that: > > https://elixir.bootlin.com/barebox/v2024.01.0/source/defaultenv/defaultenv-2-base/boot/net > > > > It specifies TCP, but hardcodes v3 currently. I guess we could drop the v3 and let > > the kernel decide on its own what version it will use? If that doesn't work, you can > > override the file locally in your environment, e.g. via CONFIG_DEFAULT_ENVIRONMENT > > pointing at a directory that contains a boot/net file with the appropriate > > changes (or just call your boot target something else like boot/nfsv4). > > > > Hope this helps. > > > > [1]: Some attempts I am aware of: > > https://github.com/a3f/barebox/tree/lwip > > It looks like lwip is BSD-3-clause-licensed. Can we use the BSD-3-clause code in barebox? I think yes Dan -- Dan Shelton - Cluster Specialist Win/Lin/Bsd