summaryrefslogtreecommitdiffstats
path: root/package/systemd
diff options
context:
space:
mode:
authorIvan Sergeev <vsergeev@kumunetworks.com>2014-06-13 17:35:35 +0200
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2014-06-14 18:41:08 +0200
commiteb981cf80be9dae210e940847e291f4cdcfa636f (patch)
tree6d732b0001a223455deaab18e75b760f7979c359 /package/systemd
parent91fc913510c493b133c8b02987684e365e33b09b (diff)
downloadbuildroot-eb981cf80be9dae210e940847e291f4cdcfa636f.tar.gz
buildroot-eb981cf80be9dae210e940847e291f4cdcfa636f.zip
systemd: add network unit file
Add and enable a systemd unit file to bring up or down network with ifup / ifdown, analogous to the skeleton/etc/init.d/S40network init script. Signed-off-by: Ivan Sergeev <vsergeev@kumunetworks.com> [eric.le.bihan.dev@free.fr: - rebase - install service only if systemd-networkd is not selected] Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'package/systemd')
-rw-r--r--package/systemd/network.service21
-rw-r--r--package/systemd/systemd.mk12
2 files changed, 33 insertions, 0 deletions
diff --git a/package/systemd/network.service b/package/systemd/network.service
new file mode 100644
index 0000000000..0d77bb824a
--- /dev/null
+++ b/package/systemd/network.service
@@ -0,0 +1,21 @@
+[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
diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
index 6de78872dd..f3874dbfc5 100644
--- a/package/systemd/systemd.mk
+++ b/package/systemd/systemd.mk
@@ -145,12 +145,24 @@ define SYSTEMD_SANITIZE_PATH_IN_UNITS
-exec $(SED) 's,$(HOST_DIR),,g' {} \;
endef
+define SYSTEMD_INSTALL_NETWORK_HOOK
+ $(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
+
SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
SYSTEMD_INSTALL_INIT_HOOK \
SYSTEMD_INSTALL_TTY_HOOK \
SYSTEMD_INSTALL_MACHINEID_HOOK \
SYSTEMD_SANITIZE_PATH_IN_UNITS
+ifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),)
+SYSTEMD_POST_INSTALL_TARGET_HOOKS += SYSTEMD_INSTALL_NETWORK_HOOK
+endif
+
define SYSTEMD_USERS
systemd-journal -1 systemd-journal -1 * /var/log/journal - - Journal
systemd-journal-gateway -1 systemd-journal-gateway -1 * /var/log/journal - - Journal Gateway
OpenPOWER on IntegriCloud