From 04cff37feb95c70fb5933186c8b719776d269fe5 Mon Sep 17 00:00:00 2001 From: Jeffrey Alan Scudder Date: Wed, 25 Mar 2026 22:58:16 -0700 Subject: [PATCH] fix: add udhcpc busybox symlink + default.script to initramfs udhcpc was missing from busybox symlinks, causing dhclient fallback loop. Now creates /sbin/udhcpc + /usr/share/udhcpc/default.script that configures IP, routes, and DNS after lease. Co-Authored-By: Claude Opus 4.6 (1M context) --- fedac/native/docker-build.sh | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/fedac/native/docker-build.sh b/fedac/native/docker-build.sh index ca8dae9401..98b4831875 100644 --- a/fedac/native/docker-build.sh +++ b/fedac/native/docker-build.sh @@ -124,9 +124,31 @@ for cmd in sh sleep mkdir mount umount cat echo ls cp mv rm ln chmod chown \ mktemp printf seq stat basename dirname env expr true false readlink \ realpath rmdir uniq yes tar gzip gunzip hostname id ip modprobe \ mkswap swapon vi df du diff xargs nohup pgrep killall cut whoami awk \ - sync poweroff reboot halt mknod; do + sync poweroff reboot halt mknod udhcpc; do ln -s busybox "$IROOT/bin/$cmd" done +# udhcpc also expected at /sbin/ by wifi.c +ln -sf ../bin/busybox "$IROOT/sbin/udhcpc" 2>/dev/null || true +# Minimal udhcpc script to configure interface after getting lease +mkdir -p "$IROOT/usr/share/udhcpc" +cat > "$IROOT/usr/share/udhcpc/default.script" << 'UDHCPC_SCRIPT' +#!/bin/sh +case "$1" in + bound|renew) + ip addr flush dev "$interface" + ip addr add "$ip/${mask:-24}" dev "$interface" + [ -n "$router" ] && ip route add default via "$router" dev "$interface" + [ -n "$dns" ] && { + : > /etc/resolv.conf + for d in $dns; do echo "nameserver $d" >> /etc/resolv.conf; done + } + ;; + deconfig) + ip addr flush dev "$interface" + ;; +esac +UDHCPC_SCRIPT +chmod +x "$IROOT/usr/share/udhcpc/default.script" # ── 2b: Init script ── cp "$NATIVE/initramfs/init" "$IROOT/init" -- 2.51.2