我正在用这个回购在我的 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
直通工作没有问题。