Re: [meta-ti][master/wrynose][PATCH v5] initramfs: Add initramfs-module-netsetup recipe for NFS boot
Moteen Shah <[email protected]> Fri, 17 Jul 2026 14:16:23 +0530
| Newsgroups | org.yoctoproject.lists.meta-ti |
|---|---|
| Message-ID | <[email protected]> |
Hey all, On 17/07/26 14:05, Moteen Shah via lists.yoctoproject.org wrote: > Add a standalone initramfs-module-netsetup recipe that installs > 83-netsetup, an initramfs-framework module that configures the network > interface via DHCP before the NFS root mount. The recipe's RDEPENDS > pulls in CPSW and its dependencies, so the kernel modules and DHCP > client are only included when NFS boot support is needed. > > Include initramfs-module-netsetup in packagegroup-ti-core-initramfs > gated on :bsp-next, where AM65_CPSW_NUSS became a loadable module. > TI staging kernels (6.6/6.12/6.18) still have CPSW built-in (=y). > > Signed-off-by: Moteen Shah <[email protected]> > --- > Changes in v5: > - Scope CPSW modules and netsetup inclusion to :k3:bsp-next to avoid > breaking legacy non-K3 platforms building with bsp-next (Denys) > - Restore PACKAGE_ARCH = "${MACHINE_ARCH}" since recipe has > K3-specific RDEPENDS (Denys) > > .../initramfs-module-netsetup/83-netsetup | 54 +++++++++++++++++++ > .../initramfs-module-netsetup_1.0.bb | 32 +++++++++++ > .../packagegroup-ti-core-initramfs.bb | 2 + > 3 files changed, 88 insertions(+) > create mode 100644 meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup/83-netsetup > create mode 100644 meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup_1.0.bb > > diff --git a/meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup/83-netsetup b/meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup/83-netsetup > new file mode 100644 > index 00000000..8e76bac4 > --- /dev/null > +++ b/meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup/83-netsetup > @@ -0,0 +1,54 @@ > +#!/bin/sh > +# Configure network via DHCP before NFS root mount. Polls for an Ethernet > +# interface with sleep 1 per iteration to allow the Ethernet driver deferred > +# probe chain to settle after udev loads the modules. > + > +netsetup_enabled() { > + [ "${bootparam_root}" = "/dev/nfs" ] || return 1 > + return 0 > +} > + > +netsetup_run() { > + local iface timeout devtype > + > + # Extract interface from ip= kernel param (format: client:server:gw:mask:host:device:autoconf) > + iface="" > + case "${bootparam_ip}" in > + dhcp|on|any|"") > + ;; > + *) > + iface=$(echo "${bootparam_ip}" | cut -d: -f6) > + ;; > + esac > + > + udevadm trigger --action=add --subsystem-match=net > + udevadm settle --timeout=10 > + > + # Poll up to 60 seconds for an Ethernet interface (ARPHRD_ETHER = type 1). > + msg "netsetup: waiting for ethernet interface..." > + timeout=60 > + while [ "${timeout}" -gt 0 ]; do > + if [ -n "${iface}" ] && [ -d "/sys/class/net/${iface}" ]; then > + break > + fi > + for dev in /sys/class/net/*; do > + [ -f "${dev}/type" ] || continue > + devtype=$(cat "${dev}/type") > + [ "${devtype}" = "1" ] || continue > + iface=$(basename "${dev}") > + break > + done > + [ -n "${iface}" ] && [ -d "/sys/class/net/${iface}" ] && break > + sleep 1 > + timeout=$((timeout - 1)) > + done > + > + if [ -z "${iface}" ] || [ ! -d "/sys/class/net/${iface}" ]; then > + msg "netsetup: no ethernet interface found after 60s, skipping DHCP" > + return > + fi > + > + msg "netsetup: configuring ${iface} via DHCP" > + > + udhcpc -q -i "${iface}" > +} > diff --git a/meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup_1.0.bb b/meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup_1.0.bb > new file mode 100644 > index 00000000..03925497 > --- /dev/null > +++ b/meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup_1.0.bb > @@ -0,0 +1,32 @@ > +SUMMARY = "initramfs support for DHCP network configuration before NFS root mount" > + > +LICENSE = "MIT" > +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" > + > +SRC_URI = "file://83-netsetup" > + > +S = "${UNPACKDIR}" > + > +do_install() { > + install -d ${D}/init.d > + install -m 0755 ${UNPACKDIR}/83-netsetup ${D}/init.d/83-netsetup > +} > + > +FILES:${PN} = "/init.d/83-netsetup" > + > +RDEPENDS:${PN} = "\ > + initramfs-framework-base \ > +" > + > +RDEPENDS:${PN}:append:k3:bsp-next = " \ > + kernel-module-ti-am65-cpsw-nuss \ > + kernel-module-k3-cppi-desc-pool \ > + kernel-module-davinci-mdio \ > + kernel-module-ti-cpsw-ale \ > + kernel-module-ti-cpsw-sl \ > + kernel-module-phylink \ > + kernel-module-mdio-bitbang \ > + kernel-module-phy-gmii-sel \ > +" > + > +PACKAGE_ARCH = "${MACHINE_ARCH}" > diff --git a/meta-ti-bsp/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bb b/meta-ti-bsp/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bb > index a9eff847..537d1f5a 100644 > --- a/meta-ti-bsp/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bb > +++ b/meta-ti-bsp/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bb > @@ -23,3 +23,5 @@ RDEPENDS:${PN} += "\ > initramfs-module-nfsrootfs \ > nfs-utils-mount \ > " > + > +RDEPENDS:${PN}:append:k3:bsp-next = " initramfs-module-netsetup" > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#20155): https://lists.yoctoproject.org/g/meta-ti/message/20155 > Mute This Topic: https://lists.yoctoproject.org/mt/120311910/9997635 > Group Owner: [email protected] > Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [[email protected]] > -=-=-=-=-=-=-=-=-=-=-=- > Please ignore this patch as the previous version is already merged. Regards, Moteen