source "package/ifplugd/Config.in"
source "package/iftop/Config.in"
source "package/ifupdown/Config.in"
+ source "package/ifupdown-scripts/Config.in"
source "package/igd2-for-linux/Config.in"
source "package/igh-ethercat/Config.in"
source "package/igmpproxy/Config.in"
--- /dev/null
+config BR2_PACKAGE_IFUPDOWN_SCRIPTS
+ bool
+ depends on BR2_ROOTFS_SKELETON_DEFAULT
+ depends on !BR2_PACKAGE_SYSTEMD_NETWORKD
+ default y
+ help
+ Set of scripts used by ifupdown (either the standalone one, or the
+ busybox one) to bring network up, or tear it down.
--- /dev/null
+#!/bin/sh
+#
+# Start the network....
+#
+
+# Debian ifupdown needs the /run/network lock directory
+mkdir -p /run/network
+
+case "$1" in
+ start)
+ printf "Starting network: "
+ /sbin/ifup -a
+ [ $? = 0 ] && echo "OK" || echo "FAIL"
+ ;;
+ stop)
+ printf "Stopping network: "
+ /sbin/ifdown -a
+ [ $? = 0 ] && echo "OK" || echo "FAIL"
+ ;;
+ restart|reload)
+ "$0" stop
+ "$0" start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+esac
+
+exit $?
+
--- /dev/null
+################################################################################
+#
+# ifupdown-scripts
+#
+################################################################################
+
+define IFUPDOWN_SCRIPTS_LOCALHOST
+ ( \
+ echo "# interface file auto-generated by buildroot"; \
+ echo ; \
+ echo "auto lo"; \
+ echo "iface lo inet loopback"; \
+ ) > $(TARGET_DIR)/etc/network/interfaces
+endef
+
+IFUPDOWN_SCRIPTS_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP))
+
+ifneq ($(IFUPDOWN_SCRIPTS_DHCP_IFACE),)
+define IFUPDOWN_SCRIPTS_DHCP
+ ( \
+ echo ; \
+ echo "auto $(IFUPDOWN_SCRIPTS_DHCP_IFACE)"; \
+ echo "iface $(IFUPDOWN_SCRIPTS_DHCP_IFACE) inet dhcp"; \
+ echo " pre-up /etc/network/nfs_check"; \
+ echo " wait-delay 15"; \
+ ) >> $(TARGET_DIR)/etc/network/interfaces
+ $(INSTALL) -m 0755 -D $(IFUPDOWN_SCRIPTS_PKGDIR)/nfs_check \
+ $(TARGET_DIR)/etc/network/nfs_check
+endef
+endif
+
+define IFUPDOWN_SCRIPTS_INSTALL_TARGET_CMDS
+ mkdir -p $(TARGET_DIR)/etc/network
+ cp -a $(IFUPDOWN_SCRIPTS_PKGDIR)/network/* $(TARGET_DIR)/etc/network
+ $(IFUPDOWN_SCRIPTS_LOCALHOST)
+ $(IFUPDOWN_SCRIPTS_DHCP)
+endef
+
+define IFUPDOWN_SCRIPTS_INSTALL_INIT_SYSV
+ $(INSTALL) -D -m 0755 $(IFUPDOWN_SCRIPTS_PKGDIR)/S40network \
+ $(TARGET_DIR)/etc/init.d/S40network
+endef
+
+# ifupdown-scripts can not be selected when systemd-networkd is
+# enabled, so if we are enabled with systemd, we must install our
+# own service file.
+define IFUPDOWN_SCRIPTS_INSTALL_INIT_SYSTEMD
+ $(INSTALL) -D -m 644 $(IFUPDOWN_SCRIPTS_PKGDIR)/network.service \
+ $(TARGET_DIR)/etc/systemd/system/network.service
+ mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
+ ln -fs ../network.service \
+ $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/network.service
+endef
+
+$(eval $(generic-package))
--- /dev/null
+[Unit]
+Description=Network Connectivity
+Wants=network.target
+Before=network.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+
+# lo is brought up earlier, which will cause the upcoming "ifup -a" to fail
+# with exit code 1, due to an "ip: RTNETLINK answers: File exists" error during
+# its "ip addr add ..." command, subsequently causing this unit to fail even
+# though it is a benign error. Flushing the lo address with the command below
+# before ifup prevents this failure.
+ExecStart=/sbin/ip addr flush dev lo
+
+ExecStart=/sbin/ifup -a
+ExecStop=/sbin/ifdown -a
+
+[Install]
+WantedBy=multi-user.target
--- /dev/null
+#!/bin/sh
+
+# In case we have a slow-to-appear interface (e.g. eth-over-USB),
+# and we need to configure it, wait until it appears, but not too
+# long either. IF_WAIT_DELAY is in seconds.
+
+if [ "${IF_WAIT_DELAY}" -a ! -e "/sys/class/net/${IFACE}" ]; then
+ printf "Waiting for interface %s to appear" "${IFACE}"
+ while [ ${IF_WAIT_DELAY} -gt 0 ]; do
+ if [ -e "/sys/class/net/${IFACE}" ]; then
+ printf "\n"
+ exit 0
+ fi
+ sleep 1
+ printf "."
+ : $((IF_WAIT_DELAY -= 1))
+ done
+ printf " timeout!\n"
+ exit 1
+fi
+
--- /dev/null
+#!/bin/sh
+
+# This allows NFS booting to work while also being able to configure
+# the network interface via DHCP when not NFS booting. Otherwise, a
+# NFS booted system will likely hang during DHCP configuration.
+
+# Attempting to configure the network interface used for NFS will
+# initially bring that network down. Since the root filesystem is
+# accessed over this network, the system hangs.
+
+# This script is run by ifup and will attempt to detect if a NFS root
+# mount uses the interface to be configured (IFACE), and if so does
+# not configure it. This should allow the same build to be disk/flash
+# booted or NFS booted.
+
+nfsip=`sed -n '/^[^ ]*:.* \/ nfs.*[ ,]addr=\([0-9.]\+\).*/s//\1/p' /proc/mounts`
+if [ -n "$nfsip" ] && ip route get to "$nfsip" | grep -q "dev $IFACE"; then
+ echo Skipping $IFACE, used for NFS from $nfsip
+ exit 1
+fi
+++ /dev/null
-#!/bin/sh
-#
-# Start the network....
-#
-
-# Debian ifupdown needs the /run/network lock directory
-mkdir -p /run/network
-
-case "$1" in
- start)
- printf "Starting network: "
- /sbin/ifup -a
- [ $? = 0 ] && echo "OK" || echo "FAIL"
- ;;
- stop)
- printf "Stopping network: "
- /sbin/ifdown -a
- [ $? = 0 ] && echo "OK" || echo "FAIL"
- ;;
- restart|reload)
- "$0" stop
- "$0" start
- ;;
- *)
- echo "Usage: $0 {start|stop|restart}"
- exit 1
-esac
-
-exit $?
-
+++ /dev/null
-#!/bin/sh
-
-# This allows NFS booting to work while also being able to configure
-# the network interface via DHCP when not NFS booting. Otherwise, a
-# NFS booted system will likely hang during DHCP configuration.
-
-# Attempting to configure the network interface used for NFS will
-# initially bring that network down. Since the root filesystem is
-# accessed over this network, the system hangs.
-
-# This script is run by ifup and will attempt to detect if a NFS root
-# mount uses the interface to be configured (IFACE), and if so does
-# not configure it. This should allow the same build to be disk/flash
-# booted or NFS booted.
-
-nfsip=`sed -n '/^[^ ]*:.* \/ nfs.*[ ,]addr=\([0-9.]\+\).*/s//\1/p' /proc/mounts`
-if [ -n "$nfsip" ] && ip route get to "$nfsip" | grep -q "dev $IFACE"; then
- echo Skipping $IFACE, used for NFS from $nfsip
- exit 1
-fi
TARGET_FINALIZE_HOOKS += SKELETON_SET_ISSUE
endif
-define SKELETON_SET_NETWORK_LOCALHOST
- ( \
- echo "# interface file auto-generated by buildroot"; \
- echo ; \
- echo "auto lo"; \
- echo "iface lo inet loopback"; \
- ) > $(TARGET_DIR)/etc/network/interfaces
-endef
-
-SKELETON_NETWORK_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP))
-
-ifneq ($(SKELETON_NETWORK_DHCP_IFACE),)
-define SKELETON_SET_NETWORK_DHCP
- ( \
- echo ; \
- echo "auto $(SKELETON_NETWORK_DHCP_IFACE)"; \
- echo "iface $(SKELETON_NETWORK_DHCP_IFACE) inet dhcp"; \
- echo " pre-up /etc/network/nfs_check"; \
- echo " wait-delay 15"; \
- ) >> $(TARGET_DIR)/etc/network/interfaces
- $(INSTALL) -m 0755 -D $(SKELETON_PKGDIR)/nfs_check \
- $(TARGET_DIR)/etc/network/nfs_check
-endef
-endif
-
-define SKELETON_SET_NETWORK
- mkdir -p $(TARGET_DIR)/etc/network/
- $(SKELETON_SET_NETWORK_LOCALHOST)
- $(SKELETON_SET_NETWORK_DHCP)
-endef
-
-TARGET_FINALIZE_HOOKS += SKELETON_SET_NETWORK
-
ifeq ($(BR2_TARGET_ENABLE_ROOT_LOGIN),y)
ifeq ($(SKELETON_TARGET_GENERIC_ROOT_PASSWD),)
SKELETON_ROOT_PASSWORD =
+++ /dev/null
-[Unit]
-Description=Network Connectivity
-Wants=network.target
-Before=network.target
-
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-
-# lo is brought up earlier, which will cause the upcoming "ifup -a" to fail
-# with exit code 1, due to an "ip: RTNETLINK answers: File exists" error during
-# its "ip addr add ..." command, subsequently causing this unit to fail even
-# though it is a benign error. Flushing the lo address with the command below
-# before ifup prevents this failure.
-ExecStart=/sbin/ip addr flush dev lo
-
-ExecStart=/sbin/ifup -a
-ExecStop=/sbin/ifdown -a
-
-[Install]
-WantedBy=multi-user.target
endif
else
SYSTEMD_CONF_OPTS += --disable-networkd
-define SYSTEMD_INSTALL_SERVICE_NETWORK
- $(INSTALL) -D -m 644 package/systemd/network.service \
- $(TARGET_DIR)/etc/systemd/system/network.service
- mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
- ln -fs ../network.service \
- $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/network.service
-endef
endif
ifeq ($(BR2_PACKAGE_SYSTEMD_RESOLVED),y)
define SYSTEMD_INSTALL_INIT_SYSTEMD
$(SYSTEMD_DISABLE_SERVICE_TTY1)
$(SYSTEMD_INSTALL_SERVICE_TTY)
- $(SYSTEMD_INSTALL_SERVICE_NETWORK)
$(SYSTEMD_INSTALL_SERVICE_TIMESYNC)
$(SYSTEMD_INSTALL_NETWORK_CONFS)
endef
+++ /dev/null
-#!/bin/sh
-
-# In case we have a slow-to-appear interface (e.g. eth-over-USB),
-# and we need to configure it, wait until it appears, but not too
-# long either. IF_WAIT_DELAY is in seconds.
-
-if [ "${IF_WAIT_DELAY}" -a ! -e "/sys/class/net/${IFACE}" ]; then
- printf "Waiting for interface %s to appear" "${IFACE}"
- while [ ${IF_WAIT_DELAY} -gt 0 ]; do
- if [ -e "/sys/class/net/${IFACE}" ]; then
- printf "\n"
- exit 0
- fi
- sleep 1
- printf "."
- : $((IF_WAIT_DELAY -= 1))
- done
- printf " timeout!\n"
- exit 1
-fi
-