[PATCH 2/2] defaultenv: boot/net: allow customising NFS port and path
Roland Hieber
rhi at pengutronix.de
Mon Feb 13 03:38:57 PST 2023
On Mon, Feb 13, 2023 at 08:42:11AM +0100, Sascha Hauer wrote:
> On Fri, Feb 10, 2023 at 11:48:31PM +0100, Roland Hieber wrote:
> > There are use cases where the port and mount path of the NFS root need
> > to be changed from the default values, e.g. with the userspace NFS
> > daemon used by 'ptxdist nfsroot', which tells you:
> >
> > Mount rootfs with nfsroot=/root,v3,tcp,port=13049,mountport=13049
> >
> > (The port number can vary of course, depending on how many users on your
> > devel server have already started unfsd at the same time.)
> >
> > Support such use cases by introducing two new variables for the port
> > number and the mount path, which get inserted into the kernel command
> > line. Use the old default mount path as fallback when the new variable
> > is not set.
>
> Does this approach really make you happy with your usecase? The port
> may change with every invocation of 'ptxdist nfsroot'.
>
> With bootloaderspec it should be possible to do this in barebox:
>
> boot nfs://host:13049//root
Ah, I didn't know this! This seems more reasonable to me! :-)
> If that works we might convince Michael to print this line suitable for
> copy-paste along with the output of 'ptxdist nfsroot'.
The message is actually printed by unfsd, but I'll see how this could be
done reasonably in PTXdist.
- Roland
> Sascha
>
> >
> > Signed-off-by: Roland Hieber <rhi at pengutronix.de>
> > ---
> > Documentation/user/networking.rst | 10 ++++++++++
> > defaultenv/defaultenv-2-base/boot/net | 11 ++++++++++-
> > 2 files changed, 20 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/user/networking.rst b/Documentation/user/networking.rst
> > index 6bd16ea8d1bd..e95957c0a26a 100644
> > --- a/Documentation/user/networking.rst
> > +++ b/Documentation/user/networking.rst
> > @@ -53,6 +53,16 @@ device:
> > | global.net.nameserver | ipv4 address | The DNS server used for resolving host names. |
> > | | | May be set by DHCP. |
> > +------------------------------+--------------+-------------------------------------------------------+
> > +| global.net.nfspath | string | If set, determines the mount path of the root |
> > +| | | file system on the NFS server. |
> > +| | | If not set, the default value |
> > +| | | ``/home/${global.user}/nfsroot/${global.hostname}`` |
> > +| | | is used. |
> > ++------------------------------+--------------+-------------------------------------------------------+
> > +| global.net.nfsport | short | If set, determines the port of the NFS server |
> > +| | | (the ``mountport`` and ``port`` arguments of the |
> > +| | | ``nfsroot`` parameter in the kernel command line). |
> > ++------------------------------+--------------+-------------------------------------------------------+
> > | global.net.ifup_force_detect | boolean | Set to true if your network device is not |
> > | | | detected automatically during start (i.e. for |
> > | | | USB network adapters). |
> > diff --git a/defaultenv/defaultenv-2-base/boot/net b/defaultenv/defaultenv-2-base/boot/net
> > index e79432eb277c..236955ef6fed 100644
> > --- a/defaultenv/defaultenv-2-base/boot/net
> > +++ b/defaultenv/defaultenv-2-base/boot/net
> > @@ -22,7 +22,16 @@ initramfs="${path}/${global.user}-initramfs-${global.hostname}"
> > if [ -f "${initramfs}" ]; then
> > global.bootm.initrd="$initramfs"
> > else
> > - nfsroot="${nfsserver}:/home/${global.user}/nfsroot/${global.hostname}"
> > + if [ -z "${global.net.nfspath}" ]; then
> > + nfsroot="${nfsserver}:/home/${global.user}/nfsroot/${global.hostname}"
> > + else
> > + nfsroot="${nfsserver}:${global.net.nfspath}"
> > + fi
> > +
> > + if [ -n "${global.net.nfsport}" ]; then
> > + nfsroot="${nfsroot},port=${global.net.nfsport},mountport=${global.net.nfsport}"
> > + fi
> > +
> > ip_route_get -b ${global.net.server} global.linux.bootargs.dyn.ip
> > global.linux.bootargs.dyn.root="root=/dev/nfs nfsroot=$nfsroot,v3,tcp"
> > fi
> > --
> > 2.30.2
> >
> >
> >
>
> --
> Pengutronix e.K. | |
> Steuerwalder Str. 21 | http://www.pengutronix.de/ |
> 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
> Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
>
--
Roland Hieber, Pengutronix e.K. | r.hieber at pengutronix.de |
Steuerwalder Str. 21 | https://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list