QEMU MacOS(Arch Linux 호스트)에서는 USB 패스스루를 사용할 수 없습니다.

QEMU MacOS(Arch Linux 호스트)에서는 USB 패스스루를 사용할 수 없습니다.

나는 이것을 사용하고 있습니다환매내 Arch Linux에서 MacOS High Sierra를 실행합니다. 모든 것이 양호하지만 LEGO NXT(현재 Lego Mindstorms 소프트웨어는 NXT 2.0을 지원하지 않음) 또는 다른 USB 패스스루와 작동하기 위해 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 포트에는 아무런 영향이 없는 것 같습니다.

USB 컨트롤러를 통과하기 위해 vfio-pci도 시도했지만 호스트 시스템은 Macbook Air 2015이므로 USB 포트가 모두 동일한 버스에 있습니다. 따라서 드라이버를 vfio로 전환하려고 하면 modprobeArch가 i3에서 터미널로 로그아웃되고 키보드가 작동을 멈춥니다(아마도 동일한 USB 버스의 kb). 저는 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

Thru는 문제없이 작동합니다.

관련 정보