diff --git a/recipes-core/initrdscripts/tegra-minimal-init/init-boot.sh b/recipes-core/initrdscripts/tegra-minimal-init/init-boot.sh index 0e50ec7d..cccaa6d5 100644 --- a/recipes-core/initrdscripts/tegra-minimal-init/init-boot.sh +++ b/recipes-core/initrdscripts/tegra-minimal-init/init-boot.sh @@ -1,8 +1,9 @@ #!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin -mount -t proc proc /proc -mount -t devtmpfs none /dev -mount -t sysfs sysfs /sys +mount -t proc proc -o nosuid,nodev,noexec /proc +mount -t devtmpfs none -o nosuid /dev +mount -t sysfs sysfs -o nosuid,nodev,noexec /sys +mount -t efivarfs efivarfs -o nosuid,nodev,noexec /sys/firmware/efi/efivars rootdev="" opt="rw" diff --git a/recipes-core/initrdscripts/tegra-minimal-init/platform-preboot.sh b/recipes-core/initrdscripts/tegra-minimal-init/platform-preboot.sh index d8d1cd11..92dc6a7d 100644 --- a/recipes-core/initrdscripts/tegra-minimal-init/platform-preboot.sh +++ b/recipes-core/initrdscripts/tegra-minimal-init/platform-preboot.sh @@ -1,13 +1,22 @@ slotsfx="" mayberoot="" +foundslotsfx="no" for bootarg in `cat /proc/cmdline`; do case "$bootarg" in - boot.slot_suffix=*) slotsfx="${bootarg##boot.slot_suffix=}" ;; + boot.slot_suffix=*) slotsfx="${bootarg##boot.slot_suffix=}"; foundslotsfx="yes" ;; root=*) mayberoot="${bootarg##root=}" ;; ro) opt="ro" ;; rootwait) wait="yes" ;; esac done +if [ "$foundslotsfx" != "yes" ]; then + # This variable file contains a type (should be 6) followed by the value (should be 0 or 1) + bcdata=$(echo $(hexdump -n 8 -e '2/4 " %u"' /sys/firmware/efi/efivars/BootChainFwCurrent-781e084c-a330-417c-b678-38e696380cb9 2>/dev/null)) + if [ "$(echo "$bcdata" | cut -d' ' -f1)" = "6" ]; then + slotnum=$(echo "$bcdata" | cut -d' ' -f2) + [ "$slotnum" != "1" ] || slotsfx="_b" + fi +fi rootdev=`blkid -l -t PARTLABEL=APP$slotsfx | cut -d: -f1` if [ -z "$rootdev" ]; then if [ -n "$mayberoot" ]; then