summaryrefslogtreecommitdiff
path: root/packages/slugos-init/files/boot
diff options
context:
space:
mode:
Diffstat (limited to 'packages/slugos-init/files/boot')
-rw-r--r--packages/slugos-init/files/boot/disk9
-rw-r--r--packages/slugos-init/files/boot/kexec3
-rw-r--r--packages/slugos-init/files/boot/network12
3 files changed, 15 insertions, 9 deletions
diff --git a/packages/slugos-init/files/boot/disk b/packages/slugos-init/files/boot/disk
index d47be54c37..63370ce340 100644
--- a/packages/slugos-init/files/boot/disk
+++ b/packages/slugos-init/files/boot/disk
@@ -38,12 +38,13 @@ then
# is attempted.
if test -n "$UUID" &&
mount "$@" UUID="$UUID" /mnt ||
- mount "$@" -U "$UUID" /mnt ||
mount "$@" "$device" /mnt
then
- # checkmount checks for sh, chroot, init
- # and /mnt (i.e. /mnt/mnt in this case)
- if checkmount /mnt
+ # checkmount checks for sh, chroot, init, /dev
+ # and /mnt (i.e. /mnt/mnt in this case).
+ # minimaldevnodes checks (and creates if required)
+ # a few mandatory /dev nodes we may need.
+ if checkmount /mnt && minimaldevnodes /mnt
then
# pivot to /initrd if available, else /mnt
cd /
diff --git a/packages/slugos-init/files/boot/kexec b/packages/slugos-init/files/boot/kexec
index dd757fd771..a60be03142 100644
--- a/packages/slugos-init/files/boot/kexec
+++ b/packages/slugos-init/files/boot/kexec
@@ -91,7 +91,6 @@ if [ -n "$1" -a -n "$2" ] ; then
t=`basename "$kpath"`
kexec_image="/mnt/$t"
fi
- umount /sys
fi
;;
@@ -105,7 +104,6 @@ if [ -n "$1" -a -n "$2" ] ; then
t=`basename "$kpath"`
kexec_image="/mnt/$t"
fi
- umount /sys
fi
;;
@@ -143,7 +141,6 @@ if [ -n "$1" -a -n "$2" ] ; then
echo "Loading kexec kernel using tftp \"$kpath\"..."
tftp -g -l "$kexec_image" -r "${kpath#*:}" "${kpath%%:*}"
fi
- umount /sys
fi
;;
diff --git a/packages/slugos-init/files/boot/network b/packages/slugos-init/files/boot/network
index 8124f19ab2..48aa9dd7d5 100644
--- a/packages/slugos-init/files/boot/network
+++ b/packages/slugos-init/files/boot/network
@@ -24,8 +24,12 @@ 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
-sysf="/sys/class/firmware/firmware-$iface"
+# 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
@@ -39,5 +43,9 @@ sysf="/sys/class/firmware/firmware-$iface"
# 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