On Tue, Jun 02, 2026 at 09:59:15AM -0500, Ryan Eatmon wrote: > > > On 6/2/2026 8:47 AM, Denys Dmytriyenko wrote: > >On Tue, Jun 02, 2026 at 04:18:10PM +0530, Moteen Shah via > >lists.yoctoproject.org wrote: > >>Add 83-netsetup, an initramfs-framework module that configures the > >>network interface via DHCP before the NFS root mount. Needed when the > >>Ethernet driver is a loadable module and the deferred probe chain > >>requires time to settle after udev loads the modules. Also add dhcpcd > >>to packagegroup-ti-core-initramfs to support DHCP configuration. > >> > >>Signed-off-by: Moteen Shah <[email protected]> > >>--- > >> .../initramfs-framework/83-netsetup | 54 +++++++++++++++++++ > >> .../initramfs-framework_%.bbappend | 15 ++++++ > >> .../packagegroup-ti-core-initramfs.bb | 2 + > >> 3 files changed, 71 insertions(+) > >> create mode 100644 > >> meta-ti-bsp/recipes-core/initramfs-scripts/initramfs-framework/83-netsetup > >> create mode 100644 > >> meta-ti-bsp/recipes-core/initramfs-scripts/initramfs-framework_%.bbappend > >> > >>diff --git > >>a/meta-ti-bsp/recipes-core/initramfs-scripts/initramfs-framework/83-netsetup > >> > >>b/meta-ti-bsp/recipes-core/initramfs-scripts/initramfs-framework/83-netsetup > >>new file mode 100644 > >>index 00000000..b71bc3b3 > >>--- /dev/null > >>+++ > >>b/meta-ti-bsp/recipes-core/initramfs-scripts/initramfs-framework/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" > >>+ > >>+ dhcpcd --waitip "${iface}" > >>+} > >>diff --git > >>a/meta-ti-bsp/recipes-core/initramfs-scripts/initramfs-framework_%.bbappend > >>b/meta-ti-bsp/recipes-core/initramfs-scripts/initramfs-framework_%.bbappend > >>new file mode 100644 > >>index 00000000..c8955689 > >>--- /dev/null > >>+++ > >>b/meta-ti-bsp/recipes-core/initramfs-scripts/initramfs-framework_%.bbappend > >>@@ -0,0 +1,15 @@ > >>+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" > >>+ > >>+SUMMARY:initramfs-module-netsetup = "initramfs support for DHCP network > >>setup before NFS root mount" > > > >This should probably be a standalone initramfs-module* recipe, instead of a > >bbappend. > > Agreed. It's a little confusing to add a subpackage like that. We > should create a new recipe and depend on that name to pull in this > one file. The name you chose was fine, just move it out of the > bbappend.
There are numerous examples of existing initramfs-module-* recipes that extend initramfs-framework functionality, e.g.: https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb And don't forget about our own such recipe for LUKS with fTPM: https://git.yoctoproject.org/meta-ti/tree/meta-ti-bsp/dynamic-layers/tpm-layer/recipes-ti/initramfs/initramfs-module-luks-ftpm_1.0.bb > >>+SRC_URI:append = " file://83-netsetup" > >>+ > >>+PACKAGES =+ "initramfs-module-netsetup" > >>+ > >>+RDEPENDS:initramfs-module-netsetup = "${PN}-base" > >>+ > >>+FILES:initramfs-module-netsetup = "/init.d/83-netsetup" > >>+ > >>+do_install:append() { > >>+ install -m 0755 ${UNPACKDIR}/83-netsetup ${D}/init.d/83-netsetup > >>+} > >>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..ede0639d 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 > >>@@ -18,6 +18,8 @@ RDEPENDS:${PN} += "\ > >> netbase \ > >> base-files \ > >> base-passwd \ > >>+ dhcpcd \ > >>+ initramfs-module-netsetup \ > >> initramfs-framework-base \ > >> initramfs-module-udev \ > >> initramfs-module-nfsrootfs \ > >>-- > >>2.34.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#19951): https://lists.yoctoproject.org/g/meta-ti/message/19951 Mute This Topic: https://lists.yoctoproject.org/mt/119608901/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
