无法与 QEMU MacOS(Arch Linux 主机)一起使用 USB 直通

无法与 QEMU MacOS(Arch Linux 主机)一起使用 USB 直通

我正在用这个回购在我的 Arch Linux 上运行 MacOS High Sierra。一切都很好,但是似乎无法让 USB 直通适用于我的 Lego NXT(当前的 Lego Mindstorms 软件不支持 NXT 2.0)或任何其他 USB 直通。

这是我basic.sh从上面的仓库修改的

#!/bin/bash

OSK="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
VMDIR=$PWD
OVMF=$VMDIR/firmware
#export QEMU_AUDIO_DRV=pa
#QEMU_AUDIO_DRV=pa

qemu-system-x86_64 \
    -enable-kvm \
    -m 2G \
    -machine q35,accel=kvm \
    -smp 4,cores=2 \
    -cpu Penryn,vendor=GenuineIntel,kvm=on,+sse3,+sse4.2,+aes,+xsave,+avx,+xsaveopt,avx2,+bmi2,+smep,+bmi1,+fma,+movbe,+invtsc \
    -device isa-applesmc,osk="$OSK" \
    -smbios type=2 \
    -drive if=pflash,format=raw,readonly,file="$OVMF/OVMF_CODE.fd" \
    -drive if=pflash,format=raw,file="$OVMF/OVMF_VARS-1024x768.fd" \
    -vga qxl \
    -device ich9-intel-hda -device hda-output \
    -usb -device usb-kbd -device usb-mouse \
    -netdev user,id=net0 \
    -device e1000-82545em,netdev=net0,id=net0,mac=52:54:00:c9:18:27 \
    -device ich9-ahci,id=sata \
    -drive id=ESP,if=none,format=qcow2,file=ESP.qcow2 \
    -device ide-hd,bus=sata.2,drive=ESP \
    -drive id=InstallMedia,format=raw,if=none,file=BaseSystem.img \
    -device ide-hd,bus=sata.3,drive=InstallMedia \
    -drive id=SystemDisk,if=none,file=osx-hs.qcow2 \
    -device ide-hd,bus=sata.4,drive=SystemDisk \
    -device qemu-xhci,id=xhci -device usb-host,bus=xhci.0,hostbus=1,hostaddr=11 \

我尝试过遵循拱门维基页面,通过显式传递设备本身,同时也传递 USB 端口的总线/地址,如上所述。似乎对 MacOS VM 中列出的 USB 端口没有任何影响。

我还尝试过 vfio-pci 来直通 USB 控制器,但我的主机系统是 Macbook Air 2015,因此 USB 端口都在同一总线上。因此,当我尝试modprobe将驱动程序切换到 vfio 时,Arch 从 i3 注销到终端,并且键盘停止工作(大概 kb 位于同一 USB 总线上)。我从 USB 运行 Arch Linux,不知道这是否重要...我认为做 USB 设备或端口直通应该相当简单...

有任何想法吗?使用 Windows 10 KVM 会取得更好的成功吗?

答案1

我刚刚让它工作,尽管 MacOS 不是问题。我运行 qemu 的用户无法访问我试图通过的 USB 设备,例如

$ ll /dev/bus/usb/003/014
$ crw-rw-r-- 1 root root 189, 269 Sep 29 21:55 /dev/bus/usb/003/014

有一次我做了一个

sudo chown $(whoami) /dev/bus/usb/003/014

直通工作没有问题。

相关内容