diff options
author | Michael Olbrich <m.olbrich@pengutronix.de> | 2017-01-11 11:43:18 +0100 |
---|---|---|
committer | Michael Olbrich <m.olbrich@pengutronix.de> | 2017-04-11 11:19:58 +0200 |
commit | d27127994b1cb7e5291780ce4bfc07e665011dcc (patch) | |
tree | 62fd46eb97394144ca8594ad0e1b64094dad2eda /projectroot/usr | |
parent | 001dd1deeda1051e94ccfd6ae726746bc370413f (diff) | |
download | ptxdist-d27127994b1cb7e5291780ce4bfc07e665011dcc.tar.gz ptxdist-d27127994b1cb7e5291780ce4bfc07e665011dcc.tar.xz |
networkmanager: /usr merge
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Diffstat (limited to 'projectroot/usr')
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 + |