Proxmox-Port/packages/qemu-server/patches/006-add-qemu-xhci.patch
2024-10-18 15:49:49 +08:00

39 lines
1.3 KiB
Diff

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index b26da505..fc8ca388 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -1370,7 +1375,7 @@ sub print_tabletdevice_full {
# we use uhci for old VMs because tablet driver was buggy in older qemu
my $usbbus;
if ($q35 || $arch eq 'aarch64') {
- $usbbus = 'ehci';
+ $usbbus = 'qemu-xhci';
} else {
$usbbus = 'uhci';
}
@@ -1383,7 +1388,7 @@ sub print_keyboarddevice_full {
return if $arch ne 'aarch64';
- return "usb-kbd,id=keyboard,bus=ehci.0,port=2";
+ return "usb-kbd,id=keyboard,bus=qemu-xhci.0,port=2";
}
my sub get_drive_id {
diff --git a/PVE/QemuServer/USB.pm b/PVE/QemuServer/USB.pm
index 49957444..c7b5033f 100644
--- a/PVE/QemuServer/USB.pm
+++ b/PVE/QemuServer/USB.pm
@@ -134,8 +134,8 @@ sub get_usb_controllers {
my $is_q35 = PVE::QemuServer::Machine::machine_type_is_q35($conf);
if ($arch eq 'aarch64') {
- $pciaddr = print_pci_addr('ehci', $bridges, $arch, $machine);
- push @$devices, '-device', "usb-ehci,id=ehci$pciaddr";
+ $pciaddr = print_pci_addr('qemu-xhci', $bridges, $arch, $machine);
+ push @$devices, '-device', "qemu-xhci,id=qemu-xhci";
} elsif (!$is_q35) {
$pciaddr = print_pci_addr("piix3", $bridges, $arch, $machine);
push @$devices, '-device', "piix3-usb-uhci,id=uhci$pciaddr.0x2";