summaryrefslogtreecommitdiffstats
path: root/source/installer/sources
diff options
context:
space:
mode:
Diffstat (limited to 'source/installer/sources')
-rwxr-xr-xsource/installer/sources/initrd/sbin/probe30
-rwxr-xr-xsource/installer/sources/initrd/usr/lib/setup/SeTEFI17
2 files changed, 32 insertions, 15 deletions
diff --git a/source/installer/sources/initrd/sbin/probe b/source/installer/sources/initrd/sbin/probe
index 1500158b0..a0c25ac10 100755
--- a/source/installer/sources/initrd/sbin/probe
+++ b/source/installer/sources/initrd/sbin/probe
@@ -145,7 +145,7 @@ list_mmc() {
# Filter out any partitions on the block device, as we'll use
# fdisk to capture those:
grep -qE 'mmcblk[0-9]' /proc/partitions && {
- lsblk -o name,type -ripnd /dev/mmcblk* | grep -E 'disk$' | awk '{print $1}' | while read device ; do
+ lsblk -o name,type -Mripnd /dev/mmcblk* | grep -E 'disk$' | awk '{print $1}' | while read device ; do
fdisk -l $device >> $TMP/SeTfdisk
done ;}
}
@@ -440,25 +440,31 @@ sed -i -e "s,EFI (FAT-12/16/32),EFI System Partition,g" $TMP/SeTfdisk
# during the installation.
#
# Labels:
+#
+# Used within the OS:
+# -------------------
+# SLKhwm_bw = Hardware Model Bootware - native Bootware for the RPi
+# SLKefi = FAT32 file system, /boot/efi mountpoint within the OS for Hardware Models
+# that use UEFI firmware.
+#
# SLKins = Media (usually a USB stick) containing the Slackware install media
# This FS label isn't required to locate the media, but it's helpful
# as a way to exclude the media from the list of candidates.
# This label is included within the Installation Guide for the USB
# media installation option.
+#
+# Used only within the Slackware Installer environment
+# ----------------------------------------------------
# SLKins_aio-pkgs =
# The label of the partition on the All-In-One Installer that contains the
# Slackware packages.
-# SLKhwm_bw = Hardware Model Bootware - native Bootware for the RPi
-# SLKefi = FAT32 file system, /boot/efi mountpoint within the OS for Hardware Models
+# SLKins_efi = FAT32 file system for the Installer EFI partition, for Hardware Models
# that use UEFI firmware.
-# SLKefi_fw =
-# ext4 file system within the Installer image containing UEFI
-# firmware. The firmware can be offered up for flashing to SPI from
-# within the post installation scripts.
-# This file system is present only within the Installer images (not the OS)
-# for Hardware Models with UEFI firmware (i.e. not RK3399).
-# This is because the Slackware Installer SD card image is not converted
-# into the OS's /boot partition on HWM's that use UEFI.
+# The contents of this are deployed by 'grub-install', which is called from
+# the Hardware Model's 'sdcards.build' plugin.
+# This is not used within the installed OS.
+# SLKins_boot = ext4 file system containing the GRUB configuration to boot the
+# Slackware Installer, for Hardware Models using UEFI firmware.
#
# 'SLKroot' is used to identify the OS root file system on ARM, but we don't
# filter it out because it's *supposed* to appear as a candidate within the
@@ -474,7 +480,7 @@ awk '/^\/dev\// {print $1}' /var/log/setup/tmp/SeTfdisk | while read device; do
# it outputs only the label.
{ ( e2label ${device} 2>/dev/null | tail -n1 | rev \
| awk '{print $1}' | rev | tr -d "'" | \
- grep -Eq "^SLK(${aexc}ins|ins_aio-pkgs|efi|efi_fw|hwm_bw)$" ) && sed -i '\|^'"${device}\s"'|d' $TMP/SeTfdisk ;}
+ grep -Eq "^SLK(${aexc}ins|ins_aio-pkgs|ins_efi|ins_boot|efi|hwm_bw)$" ) && sed -i '\|^'"${device}\s"'|d' $TMP/SeTfdisk ;}
done
# Dump the discovered storage:
diff --git a/source/installer/sources/initrd/usr/lib/setup/SeTEFI b/source/installer/sources/initrd/usr/lib/setup/SeTEFI
index fdf545849..2e1f38eef 100755
--- a/source/installer/sources/initrd/usr/lib/setup/SeTEFI
+++ b/source/installer/sources/initrd/usr/lib/setup/SeTEFI
@@ -1,4 +1,8 @@
#!/bin/sh
+
+# Script: /usr/lib/setup/SeTEFI
+# Called from: /usr/lib/setup/setup
+
TMP=/var/log/setup/tmp
T_PX="`cat $TMP/SeTT_PX`"
if [ ! -d $TMP ]; then
@@ -16,14 +20,21 @@ rm -f $TMP/SeTefipartitions
touch $TMP/SeTefipartitions
# Scan for EFI partitions:
-# The UEFI specification states that an EFI System partition should have
+# The UEFI specification states that an EFI System partition should have
# a GUID of C12A7328-F81F-11D2-BA4B-00A0C93EC93B for a GPT disk layout.
# In case of a MBR disk layout instead, an ESP should have an OS type of
# 0xEF. lsblk writes these values in the same field: PARTTYPE.
+#
+# AArch64 note: Any file systems labeled 'SLKins_efi' are filtered out
+# because on the AArch64 platform, the Slackware Installer image has its
+# own EFI boot partition to support Hardware Models using UEFI firmware.
+# This partition must be filtered out here to avoid it being incorrectly
+# selected as the OS's EFI partition.
ESPGUID=C12A7328-F81F-11D2-BA4B-00A0C93EC93B
OSTYPE=0xEF
-lsblk -l -o parttype,name | \
-grep -i -F -e "$ESPGUID" -e "$OSTYPE" | \
+lsblk -Ml -o parttype,name,label | \
+grep -v 'SLKins_efi$' | \
+grep -iFe "$ESPGUID" -e "$OSTYPE" | \
sed "s,[^ ]*[ ]*,/dev/," > $TMP/SeTefipartitions
if [ ! -s $TMP/SeTefipartitions ]; then # No EFI partitions