From f1128cf616390be5e73a9a7ec27ac8c06ed2d90d Mon Sep 17 00:00:00 2001 From: Jeffrey Alan Scudder Date: Tue, 31 Mar 2026 00:15:48 -0700 Subject: [PATCH] =?UTF-8?q?fix:=20remove=20nomodeset=20from=20built-in=20c?= =?UTF-8?q?mdline=20=E2=80=94=20restore=20Yoga=2011e=20boot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sunlit-butte (last working Yoga 11e build) did not have nomodeset or efi=noruntime in the kernel cmdline. These were added later for Mac support but break modesetting on the Yoga 11e (garbled display). Move nomodeset+efi=noruntime to systemd-boot config (Mac-only path). Also add BOOTIA32.EFI for 32-bit UEFI firmware support, and enhanced boot diagnostics (dmesg dump to USB). Co-Authored-By: Claude Opus 4.6 (1M context) --- fedac/native/initramfs/init | 6 ++++++ fedac/native/kernel/config-minimal | 2 +- fedac/native/scripts/flash-helper-runner.sh | 2 +- fedac/native/scripts/media-layout.sh | 7 +++++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/fedac/native/initramfs/init b/fedac/native/initramfs/init index 72ff867878..439067c08d 100755 --- a/fedac/native/initramfs/init +++ b/fedac/native/initramfs/init @@ -122,6 +122,12 @@ ls -la /dev/dri/ >> $LOG 2>&1 ls -la /dev/fb* >> $LOG 2>&1 echo "block devs:" >> $LOG ls /dev/sd* /dev/nvme* >> $LOG 2>&1 +echo "=== DMESG ===" >> $LOG +dmesg >> $LOG 2>&1 +echo "=== CPUINFO ===" >> $LOG +head -30 /proc/cpuinfo >> $LOG 2>&1 +echo "=== CMDLINE ===" >> $LOG +cat /proc/cmdline >> $LOG 2>&1 sync echo "[init] GPU: $(ls /dev/dri/ 2>/dev/null || echo NONE) USB=$USB_MOUNTED" > /dev/tty0 2>/dev/null diff --git a/fedac/native/kernel/config-minimal b/fedac/native/kernel/config-minimal index b2f9eefda5..d2fafad348 100644 --- a/fedac/native/kernel/config-minimal +++ b/fedac/native/kernel/config-minimal @@ -424,7 +424,7 @@ CONFIG_HOTPLUG_CPU=y CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="console=tty0 quiet loglevel=3 vt.global_cursor_default=0 init=/init mitigations=off snd_intel_dspcfg.dsp_driver=0 snd_hda_intel.power_save=0 nmi_watchdog=0 tsc=reliable no_timer_check acpi_backlight=native thinkpad_acpi.brightness_enable=1 i8042.reset i8042.nomux nomodeset efi=noruntime" +CONFIG_CMDLINE="console=tty0 quiet loglevel=3 vt.global_cursor_default=0 init=/init mitigations=off snd_intel_dspcfg.dsp_driver=0 snd_hda_intel.power_save=0 nmi_watchdog=0 tsc=reliable no_timer_check acpi_backlight=native thinkpad_acpi.brightness_enable=1 i8042.reset i8042.nomux" # CONFIG_CMDLINE_OVERRIDE is not set CONFIG_MODIFY_LDT_SYSCALL=y # CONFIG_STRICT_SIGALTSTACK_SIZE is not set diff --git a/fedac/native/scripts/flash-helper-runner.sh b/fedac/native/scripts/flash-helper-runner.sh index df620c3b8f..3068bac1d3 100644 --- a/fedac/native/scripts/flash-helper-runner.sh +++ b/fedac/native/scripts/flash-helper-runner.sh @@ -112,7 +112,7 @@ copy_boot_tree_to_vfat() { title AC Native OS linux /EFI/BOOT/KERNEL.EFI initrd /${initrd_file} -options console=tty0 quiet loglevel=3 vt.global_cursor_default=0 init=/init efi=noruntime +options console=tty0 quiet loglevel=3 vt.global_cursor_default=0 init=/init nomodeset efi=noruntime SDBOOT_EOF ;; *) diff --git a/fedac/native/scripts/media-layout.sh b/fedac/native/scripts/media-layout.sh index d9646fb95e..8d2df36a68 100644 --- a/fedac/native/scripts/media-layout.sh +++ b/fedac/native/scripts/media-layout.sh @@ -115,6 +115,9 @@ ac_media_stage_boot_tree() { cp "${bootloader_path}" "${stage_root}/EFI/BOOT/BOOTX64.EFI" cp "${kernel_path}" "${stage_root}/EFI/BOOT/KERNEL.EFI" + # 32-bit UEFI fallback: kernel's EFI stub with EFI_MIXED=y can boot + # directly from 32-bit firmware (handles 32→64 mode switch internally). + cp "${kernel_path}" "${stage_root}/EFI/BOOT/BOOTIA32.EFI" cp "${config_path}" "${stage_root}/config.json" # Stage slim kernel + initramfs for universal boot (systemd-boot mode) @@ -158,6 +161,10 @@ ac_media_create_fat_image() { fi mcopy -o -i "${image_path}" "${stage_root}/EFI/BOOT/BOOTX64.EFI" ::EFI/BOOT/BOOTX64.EFI mcopy -o -i "${image_path}" "${stage_root}/EFI/BOOT/KERNEL.EFI" ::EFI/BOOT/KERNEL.EFI + # 32-bit UEFI fallback (kernel with EFI_MIXED=y) + if [ -f "${stage_root}/EFI/BOOT/BOOTIA32.EFI" ]; then + mcopy -o -i "${image_path}" "${stage_root}/EFI/BOOT/BOOTIA32.EFI" ::EFI/BOOT/BOOTIA32.EFI + fi } ac_create_fat_boot_image() { -- 2.51.2