macOS: current Lilu/VirtualSMC/WhateverGreen/RestrictEvents, no isa-applesmc
The OSX-KVM ESP ships Lilu 1.6.8 / VirtualSMC 1.3.3 / WhateverGreen 1.6.7,
which disable themselves on macOS 26; Apple's SMC driver then runs on QEMU's
isa-applesmc stub and the restart path panics (SMCWDT smcWriteKey
kSMCBadCommand → nested panic after MACH Reboot). Overlay pinned current
releases (upstream.json opencore.kexts) and drop isa-applesmc: with the stub
present VirtualSMC steps aside ("multiple devices present"); alone it carries
the OSK and reboots work (PE restart test: 10 s, clean). RestrictEvents with
revpatch=memtab silences MacPro7,1's "Memory Modules Misconfigured".
- makeOpenCore: kext overlay + Kernel.Add entries for overlaid kexts,
--memory-mb (4 DIMMs), bootArgs default revpatch=memtab
- qemu.nix: deviceArgsFor { appleSmc } (default false); cli: --applesmc for
images built before this change
- vm-driver: reboot-death detection (reset 60 s after a guest reboot request
that never comes back), panics wait for XNU's own auto-reboot, debug dir
works across nixbld users
- generalize: QEMU USB keyboard declared ANSI (no Keyboard Setup Assistant)
- README: architecture, reliability handling, debugging
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XsESshRCoBoUVWV9qKURUF
This commit is contained in:
parent
8dc8f4265d
commit
22daf7720c
8 changed files with 97 additions and 15 deletions
5
cli.nix
5
cli.nix
|
|
@ -33,7 +33,8 @@ pkgs.writeShellScriptBin "vmix" ''
|
|||
echo " --to-remote-disk SSH:DEV Stream to remote disk via SSH and expand partitions"
|
||||
echo " e.g. root@10.10.10.100:/dev/sda"
|
||||
echo " --ahci Use AHCI storage for vmix run (for laptop images)"
|
||||
echo " --macos macOS image for vmix run (OpenCore/AppleSMC flags, AHCI)"
|
||||
echo " --macos macOS image for vmix run (OpenCore/VirtualSMC flags, AHCI)"
|
||||
echo " --applesmc with --macos: add QEMU's isa-applesmc (images built before 2026-09-09)"
|
||||
echo " --vnc DISPLAY VNC instead of SDL for vmix run, e.g. :10 (port 5910) or 0.0.0.0:10"
|
||||
echo " --mac ADDR NIC MAC for vmix run (macOS: read from the image's ESP by default)"
|
||||
echo " -y, --yes Skip disk write confirmation"
|
||||
|
|
@ -100,6 +101,7 @@ pkgs.writeShellScriptBin "vmix" ''
|
|||
--smp) RUN_SMP="$2"; shift 2 ;;
|
||||
--ahci) RUN_AHCI=true; shift ;;
|
||||
--macos) RUN_MACOS=true; shift ;;
|
||||
--applesmc) RUN_APPLESMC=true; shift ;;
|
||||
--vnc) RUN_VNC="$2"; shift 2 ;;
|
||||
--mac) RUN_MAC="$2"; shift 2 ;;
|
||||
*) echo "Unknown option: $1"; exit 1 ;;
|
||||
|
|
@ -138,6 +140,7 @@ pkgs.writeShellScriptBin "vmix" ''
|
|||
exec ${pkgs.qemu}/bin/qemu-system-x86_64 \
|
||||
$VMIX_DISPLAY \
|
||||
${macosQemu.deviceArgs} ${macosQemu.vgaArgs} \
|
||||
$([[ "$RUN_APPLESMC" == true ]] && echo '-device isa-applesmc,osk="${macosQemu.osk}"') \
|
||||
-accel kvm \
|
||||
-machine type=q35 \
|
||||
-cpu ${macosQemu.defaultCpu} \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue