diff options
Diffstat (limited to 'source/installer')
-rw-r--r-- | source/installer/ChangeLog.txt | 12 | ||||
-rwxr-xr-x | source/installer/sources/initrd/sbin/probe | 30 | ||||
-rwxr-xr-x | source/installer/sources/initrd/usr/lib/setup/SeTEFI | 17 |
3 files changed, 44 insertions, 15 deletions
diff --git a/source/installer/ChangeLog.txt b/source/installer/ChangeLog.txt index f44c31041..deb617681 100644 --- a/source/installer/ChangeLog.txt +++ b/source/installer/ChangeLog.txt @@ -1,3 +1,15 @@ +Wed Sep 20 08:08:08 UTC 2023 + Changes for AArch64 architecture: + /sbin/probe: Updated reserved file system labels for Hardware Models with + UEFI firmware. + In 'list_mmc' MMC discovery function, prevent duplication of multi-path + devices. + /usr/lib/setup/SeTEFI: The Slackware Installer image has its own EFI boot + partition named 'SLKins_efi' 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. + Thanks to Stuart Winter. ++--------------------------+ Tue Aug 15 19:15:38 UTC 2023 Don't run rc.font unless a kernel command-line flag RCFONT is provided. Legacy BIOS tends to get a correct sized font without it, as does recent 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 |