summaryrefslogtreecommitdiff
path: root/packages/slugos-init/files/boot/network
blob: 48aa9dd7d59360f49dc9da58b8ba009288ad5279 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/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
#
# /proc is needed for the module loading, and /sys is
# necessary to load firmware (if required).
mount -t proc  proc  /proc
mount -t sysfs sysfs /sys
#
# 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
#
# Unmount /sys and /proc before we leave
umount /sys
umount /proc
#
ifup "$iface"
# exit code is true only if the interface config has succeeded