Bug 217485
Summary: | kernel >= v6.2 no longer boots on Apple's Virtualization.framework (x86_64); mix of ACPICA regression and EFISTUB regression | ||
---|---|---|---|
Product: | EFI | Reporter: | Akihiro Suda (suda.kyoto) |
Component: | Boot | Assignee: | acpi_acpica-core (acpi_acpica-core) |
Status: | RESOLVED CODE_FIX | ||
Severity: | blocking | CC: | bagasdotme, chenhuacai, r.smith, rjw, suda.kyoto |
Priority: | P3 | ||
Hardware: | Intel | ||
OS: | Linux | ||
URL: | https://github.com/lima-vm/lima/issues/1577 | ||
Kernel Version: | v6.2 | Subsystem: | |
Regression: | Yes | Bisected commit-id: | 5c62d5aab8752e5ee7bfbe75ed6060db1c787f98 (ACPICA) AND e346bebbd36b1576a3335331fed61bb48c6d8823 (EFISTUB) |
Attachments: |
initrd-example.txt
dmesg-v6.1.txt |
Description
Akihiro Suda
2023-05-25 11:19:41 UTC
(In reply to Akihiro Suda from comment #0) > ## Reproduction > - Checkout the kernel repo, and run `make defconfig bzImage`. > But where is your kernel .config? What distro are you running? What is your hardware setup? > - Create an initrd (see the attached `initrd-example.txt`) > You generate initrd by installing busybox on it? > - Transfer the bzImage and initrd to an Intel Mac. > > - On Mac, download `RunningLinuxInAVirtualMachine.zip` from > https://developer.apple.com/documentation/virtualization/ > running_linux_in_a_virtual_machine , and build the `LinuxVirtualMachine` > binary with Xcode. > Building this binary with Xcode requires logging in to Apple. > If you do not like logging in, a third party equivalent such as > https://github.com/Code-Hex/vz/blob/v3.0.6/example/linux/main.go can be used. > > - Run `LinuxVirtualMachine /tmp/bzImage /tmp/initrd.img`. > v6.1 successfully boots into the busybox shell. > v6.2 just hangs before printing something in the console. > What hypervisor? KVM/qemu? Or Virtualbox/vmware? (In reply to Bagas Sanjaya from comment #1) > But where is your kernel .config? defconfig. > What distro are you running? Just bare vmlinuz with busybox-only initrd. > What is your hardware setup? Apple's Virtualization.framework on macOS 13.4 on MacBookPro 2020 (Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz) > You generate initrd by installing busybox on it? Yes. But the initrd doesn't really matter here, as the kernel hangs before running init. > What hypervisor? KVM/qemu? Or Virtualbox/vmware? Apple's Virtualization.framework. Can you provide dmesg? (In reply to Bagas Sanjaya from comment #3) > Can you provide dmesg? Unfortunately no, as it just hangs before printing something in the console Created attachment 304323 [details]
dmesg-v6.1.txt
dmesg output from v6.1. This version works fine.
I'm unable to get the dmesg output from v6.2, as it just hangs before printing something.
Turned out that this is a mixture of an ACPICA issue and an EFISTUB issue. Kernel v6.2 can boot by reverting the *both* of the following two commits: - 5c62d5aab8752e5ee7bfbe75ed6060db1c787f98 "ACPICA: Events: Support fixed PCIe wake event" - e346bebbd36b1576a3335331fed61bb48c6d8823 "efi: libstub: Always enable initrd command line loader and bump version" Kernel v6.3 can boot by just reverting e346bebb, as 5c62d5a has been already reverted in 8e41e0a575664d26bb87e012c39435c4c3914ed9. The situation is same for v6.4-rc3 too. Note that in my test I let Virtualization.framework directly load bzImage without GRUB (akin to `qemu-system-x86_64 -kernel bzImage`). Apparently, reverting e346bebb is not necessary for loading bzImage via GRUB. ( So, Lima can just boot unmodified v6.3 and v6.4-rc3: https://github.com/lima-vm/lima/issues/1577#issuecomment-1562649337 ) Fixed in 36e4fc57fc1619f462e669e939209c45763bc8f5 |