Skip to content

Commit c5958a7

Browse files
committed
feat: Enable ACPI by default for LoongArch virt machines
Add ACPI default enable for LoongArch64 virt machines to fix black screen issue after GRUB boot. LoongArch virt requires ACPI for proper display initialization - without ACPI, the guest DRM driver cannot initialize the display controller. The patch modifies qemuDomainDefAddDefaultDevices() to set FEATURE_ACPI to VIR_TRISTATE_SWITCH_ON for LoongArch virt machines. This aligns with how libvirt 10.7.0 handles LoongArch display support. Log: Enable ACPI by default for LoongArch virt to fix display initialization Influence: 1. Test LoongArch64 VM display works correctly after GRUB boot 2. Verify ACPI is enabled in QEMU command line for LoongArch virt 3. Check display controller initialization in guest dmesg logs 4. Validate no regression on other architectures (x86, ARM, RISC-V) 5. Test virt-manager can create and run LoongArch64 VMs with display feat: 为 LoongArch virt 机器默认启用 ACPI 为 LoongArch64 virt 机器添加 ACPI 默认启用,修复 GRUB 启动后黑屏问题。 LoongArch virt 需要 ACPI 来正确初始化显示 - 没有 ACPI,客 DRM 驱动 无法初始化显示控制器。 该补丁修改 qemuDomainDefAddDefaultDevices() 为 LoongArch virt 机器 设置 FEATURE_ACPI 为 VIR_TRISTATE_SWITCH_ON。 这与 libvirt 10.7.0 处理 LoongArch 显示支持的方式一致。 Log: 为 LoongArch virt 默认启用 ACPI 以修复显示初始化 Influence: 1. 测试 LoongArch64 虚拟机显示在 GRUB 启动后正常工作 2. 验证 ACPI 在 LoongArch virt 的 QEMU 命令行中已启用 3. 在客 dmesg 日志中检查显示控制器初始化 4. 验证其他架构无回归(x86, ARM, RISC-V) 5. 测试 virt-manager 可以创建并运行带显示的 LoongArch64 虚拟机 repo: libvirt #master
1 parent 872f4bd commit c5958a7

3 files changed

Lines changed: 33 additions & 0 deletions

File tree

debian/changelog

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
libvirt (10.7.0+really9.10.0-1deepin16) unstable; urgency=medium
2+
3+
* Enable ACPI by default for LoongArch virt machines
4+
- Fixes black screen issue after GRUB boot on LoongArch virt machines
5+
- LoongArch virt requires ACPI for proper display initialization
6+
- Without ACPI, guest DRM driver cannot initialize display controller
7+
8+
-- lichenggang <lichenggang@uniontech.com> Fri, 15 May 2026 10:30:00 +0800
9+
110
libvirt (10.7.0+really9.10.0-1deepin15) unstable; urgency=medium
211

312
* Fix virtio-iommu test expected output for LoongArch support
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
--- libvirt-10.7.0+really9.10.0.orig/src/qemu/qemu_domain.c
3+
+++ libvirt-10.7.0+really9.10.0/src/qemu/qemu_domain.c
4+
@@ -4161,11 +4161,14 @@ qemuDomainDefAddDefaultDevices(virQEMUDr
5+
break;
6+
7+
case VIR_ARCH_LOONGARCH64:
8+
- addPCIeRoot = true;
9+
- if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_QEMU_XHCI))
10+
- usbModel = VIR_DOMAIN_CONTROLLER_MODEL_USB_QEMU_XHCI;
11+
- else
12+
- addDefaultUSB = false;
13+
+ addDefaultUSB = false;
14+
+ if (qemuDomainIsLoongArchVirt(def)) {
15+
+ addPCIeRoot = virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_GPEX);
16+
+ /* LoongArch virt requires ACPI for proper display initialization */
17+
+ def->features[VIR_DOMAIN_FEATURE_ACPI] = VIR_TRISTATE_SWITCH_ON;
18+
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_QEMU_XHCI))
19+
+ usbModel = VIR_DOMAIN_CONTROLLER_MODEL_USB_QEMU_XHCI;
20+
+ }
21+
break;
22+
23+
case VIR_ARCH_ARMV6L:

debian/patches/series

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ backport/0003-src-Add-ARM-CCA-support-in-domain-schema.patch
1414
fix-firmware-descriptor-parsing.patch
1515
add-loongarch64-arch-support.patch
1616
fix-virtio-iommu-test-expected-output.patch
17+
enable-acpi-for-loongarch-virt.patch

0 commit comments

Comments
 (0)