This commit is contained in:
2026-03-20 10:03:00 +01:00
parent d6ea38db14
commit 998339d2b5
5 changed files with 112 additions and 12 deletions

View File

@@ -8,17 +8,33 @@
. /etc/rc.conf
DAEMON="/usr/sbin/dhcpcd"
PIDFILE="/run/dhcpcd-${NETWORK_INTERFACE}.pid"
# Auto-detect network interface if configured one doesn't exist
IFACE="${NETWORK_INTERFACE}"
if [ ! -d "/sys/class/net/${IFACE}" ] || [ "${IFACE}" = "lo" ]; then
# Find first non-loopback ethernet interface
for d in /sys/class/net/*; do
name=$(basename "$d")
[ "$name" = "lo" ] && continue
# Skip wireless (has wireless/ subdir)
[ -d "$d/wireless" ] && continue
IFACE="$name"
echo " NOTE: ${NETWORK_INTERFACE} not found, using ${IFACE}"
break
done
fi
PIDFILE="/run/dhcpcd-${IFACE}.pid"
case "$1" in
start)
echo " Starting dhcpcd on ${NETWORK_INTERFACE}..."
echo " Starting dhcpcd on ${IFACE}..."
if [ "${NETWORK_DHCP}" = "yes" ]; then
${DAEMON} -q "${NETWORK_INTERFACE}" && echo " dhcpcd started"
${DAEMON} -q "${IFACE}" && echo " dhcpcd started"
else
# Static IP configuration
ip addr add "${NETWORK_IP}/${NETWORK_MASK}" dev "${NETWORK_INTERFACE}"
ip link set "${NETWORK_INTERFACE}" up
ip addr add "${NETWORK_IP}/${NETWORK_MASK}" dev "${IFACE}"
ip link set "${IFACE}" up
ip route add default via "${NETWORK_GATEWAY}"
if [ -n "${NETWORK_DNS}" ]; then
echo "# Generated by rc.d/dhcpcd" > /etc/resolv.conf
@@ -32,7 +48,7 @@ case "$1" in
stop)
echo " Stopping dhcpcd..."
if [ -f "${PIDFILE}" ]; then
${DAEMON} -x "${NETWORK_INTERFACE}" 2>/dev/null
${DAEMON} -x "${IFACE}" 2>/dev/null
fi
echo " dhcpcd stopped"
;;