diff options
author | Richard Maw <richard.maw@codethink.co.uk> | 2012-05-22 12:43:02 +0000 |
---|---|---|
committer | Super user <root@baserock.(none)> | 2012-09-17 13:11:39 +0000 |
commit | 1399e97fe81ef234c67b45d004f1e46cf4887529 (patch) | |
tree | b47847680ebb194e048f5631d89355d9729f36e3 | |
parent | b474f626cae092f14c440d4311fc64061397494f (diff) | |
download | busybox-1399e97fe81ef234c67b45d004f1e46cf4887529.tar.gz |
busybox: add systemd and udev rules
ifup@.service will run busybox's ifup to bring a network interface up.
The udev rules will cause this to happen for every network interface
it detects.
The udev rules also have a rule for serial ttys to start a getty.
-rw-r--r-- | busybox.morph | 5 | ||||
-rw-r--r-- | systemd-units/ifup@.service.in | 8 | ||||
-rw-r--r-- | udev-rules/100-baserock.rules | 7 |
3 files changed, 20 insertions, 0 deletions
diff --git a/busybox.morph b/busybox.morph index 1fc3847c8..3eb13dd7b 100644 --- a/busybox.morph +++ b/busybox.morph @@ -45,10 +45,15 @@ "sed -e 's/.*CONFIG_AWK=.*/# CONFIG_AWK is not set/' -i .config" ], "build-commands": [ + "for f in systemd-units/ifup@.service; do sed -e 's|@rootprefix@||g' \"$f.in\" >\"$f\"; done", "make" ], "install-commands": [ "if [ \"$PREFIX\" = /usr ]; then PREFIX=; fi && make CONFIG_PREFIX=\"$DESTDIR$PREFIX\" install && chmod 6755 \"$DESTDIR$PREFIX\"/bin/busybox", + "mkdir -p \"$DESTDIR/lib/systemd/system/\"", + "for f in systemd-units/ifup@.service; do install -m 644 \"$f\" \"$DESTDIR/lib/systemd/system\"; done", + "mkdir -p \"$DESTDIR$PREFIX/libexec/udev/rules.d\"", + "for f in udev-rules/100-baserock.rules; do install -m 644 \"$f\" \"$DESTDIR$PREFIX/libexec/udev/rules.d\"; done", "mkdir -p \"$DESTDIR$PREFIX\"/share/udhcpc", "cp examples/udhcp/simple.script \"$DESTDIR$PREFIX\"/share/udhcpc/default.script" ] diff --git a/systemd-units/ifup@.service.in b/systemd-units/ifup@.service.in new file mode 100644 index 000000000..72313bba9 --- /dev/null +++ b/systemd-units/ifup@.service.in @@ -0,0 +1,8 @@ +[Unit] +Description=ifup for %I +After=local-fs.target + +[Service] +ExecStart=@rootprefix@/sbin/ifup %I +ExecStop=@rootprefix@/sbin/ifdown %I +RemainAfterExit=true diff --git a/udev-rules/100-baserock.rules b/udev-rules/100-baserock.rules new file mode 100644 index 000000000..c620f8a04 --- /dev/null +++ b/udev-rules/100-baserock.rules @@ -0,0 +1,7 @@ +ACTION=="remove", GOTO="baserock_end" +# start a serial getty for every serial tty detected +SUBSYSTEM=="tty", KERNEL=="ttyS*", ENV{SYSTEMD_WANTS}="serial-getty@%k.service" +# run ifup for every network device detected +SUBSYSTEM=="net", KERNEL!="lo", ENV{SYSTEMD_WANTS}="ifup@%k.service" + +LABEL="systemd_end" |