diff options
Diffstat (limited to 'recipes/slugos-init/files/boot/network')
-rw-r--r-- | recipes/slugos-init/files/boot/network | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/recipes/slugos-init/files/boot/network b/recipes/slugos-init/files/boot/network new file mode 100644 index 0000000000..b8054a0056 --- /dev/null +++ b/recipes/slugos-init/files/boot/network @@ -0,0 +1,41 @@ +#!/bin/sh +# bring up the network before boot, used to allow +# netconsole logging and NFS boot. This runs out +# of flash, but that's ok because the script doesn't +# leave any process running. + +# NOTE: /etc/default/functions defines ifup as a shell +# function! +. /etc/default/functions + +# We may need to load the network driver modules here +. /etc/default/modulefunctions +loadnetmods + +# Now all the information for booting should be in the configuration +# file. Config the loopback and network interfaces. +ifconfig lo 127.0.0.1 up +iface="$(config iface)" +test -z "$iface" && exit 1 + +# Fire up a process in the background to load the firmware if necessary. +# If this system doesn't require the NPE-B firmware, no problem, the +# background process will simply go away in two seconds. If it requires +# some other firmware, then modification will be required. We probably +# should replace this with mdev or some other hotplug-based technique... +sysf="/sys/class/firmware/$iface" +( + # Wait for the firware to be requested, if required + [ -f $sysf/loading ] || sleep 1 + [ -f $sysf/loading ] || sleep 1 + if [ -f $sysf/loading ] ; then + echo "1" >$sysf/loading + cat /lib/firmware/NPE-B >$sysf/data + echo "0" >$sysf/loading + fi +) & +# Trigger the firmware load proactively +ifconfig "$iface" up + +ifup "$iface" +# exit code is true only if the interface config has succeeded |