summaryrefslogtreecommitdiffstats
path: root/projectroot/usr
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2017-01-11 11:43:18 +0100
committerMichael Olbrich <m.olbrich@pengutronix.de>2017-04-11 11:19:58 +0200
commitd27127994b1cb7e5291780ce4bfc07e665011dcc (patch)
tree62fd46eb97394144ca8594ad0e1b64094dad2eda /projectroot/usr
parent001dd1deeda1051e94ccfd6ae726746bc370413f (diff)
downloadptxdist-d27127994b1cb7e5291780ce4bfc07e665011dcc.tar.gz
ptxdist-d27127994b1cb7e5291780ce4bfc07e665011dcc.tar.xz
networkmanager: /usr merge
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Diffstat (limited to 'projectroot/usr')
-rw-r--r--projectroot/usr/lib/init/nm-unmanage.sh29
-rw-r--r--projectroot/usr/lib/systemd/system/NetworkManager-unmanage.service11
-rw-r--r--projectroot/usr/lib/systemd/system/NetworkManager.service22
3 files changed, 62 insertions, 0 deletions
diff --git a/projectroot/usr/lib/init/nm-unmanage.sh b/projectroot/usr/lib/init/nm-unmanage.sh
new file mode 100644
index 000000000..c9944108d
--- /dev/null
+++ b/projectroot/usr/lib/init/nm-unmanage.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+# configure NM to regard already configured interfaces as unmanaged (for NFS root)
+
+CONFFILE=/var/run/NetworkManager.conf
+
+if [ ! -e /run/resolv.conf -a -e /proc/net/pnp ]; then
+ cp /proc/net/pnp /run/resolv.conf
+fi
+
+if [ ! -f $CONFFILE ]; then
+ # set previously enabled interfaces to unmanaged
+ cat /etc/NetworkManager/NetworkManager.conf > $CONFFILE
+
+ UNMANAGED=""
+ for IF in $(ls /sys/class/net); do
+ IF_FLAGS="$(cat /sys/class/net/$IF/flags)"
+ if [ "$((IF_FLAGS&1))" = "1" -a "$IF" != "lo" ]; then
+ IF_ADDR="$(cat /sys/class/net/$IF/address)"
+ UNMANAGED="$UNMANAGED;mac:$IF_ADDR"
+ fi
+ done
+
+ echo "" >> $CONFFILE
+ echo "[keyfile]" >> $CONFFILE
+ echo "# unmanaged-devices added by $0" >> $CONFFILE
+ echo "unmanaged-devices=${UNMANAGED:1}" >> $CONFFILE
+fi
+
diff --git a/projectroot/usr/lib/systemd/system/NetworkManager-unmanage.service b/projectroot/usr/lib/systemd/system/NetworkManager-unmanage.service
new file mode 100644
index 000000000..9e41dc562
--- /dev/null
+++ b/projectroot/usr/lib/systemd/system/NetworkManager-unmanage.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Network Manager configuration (ignore kernel activated network interfaces)
+Before=NetworkManager.service
+ConditionPathExists=!/var/run/NetworkManager.conf
+
+[Service]
+Type=oneshot
+ExecStart=/lib/init/nm-unmanage.sh
+
+[Install]
+WantedBy=NetworkManager.service
diff --git a/projectroot/usr/lib/systemd/system/NetworkManager.service b/projectroot/usr/lib/systemd/system/NetworkManager.service
new file mode 100644
index 000000000..f41c8b4bc
--- /dev/null
+++ b/projectroot/usr/lib/systemd/system/NetworkManager.service
@@ -0,0 +1,22 @@
+[Unit]
+Description=Network Manager
+After=syslog.target
+Wants=network.target
+Before=network.target
+
+[Service]
+Type=dbus
+BusName=org.freedesktop.NetworkManager
+ExecStart=/usr/sbin/NetworkManager --no-daemon --config=/var/run/NetworkManager.conf --state-file=/var/run/NetworkManager.state
+# Suppress stderr to eliminate duplicated messages in syslog. NM calls openlog()
+# with LOG_PERROR when run in foreground. But systemd redirects stderr to
+# syslog by default, which results in logging each message twice.
+StandardError=null
+# NM doesn't want systemd to kill its children for it
+KillMode=process
+
+[Install]
+WantedBy=multi-user.target
+Alias=dbus-org.freedesktop.NetworkManager.service
+Also=NetworkManager-wait-online.service
+