%EA%B0%80%20%ED%8A%B9%EC%A0%95%20USB%20%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC(PCIe%20%EC%B9%B4%EB%93%9C)%EC%97%90%20%EB%A1%9C%EB%93%9C%EB%90%98%EB%8A%94%20%EA%B2%83%EC%9D%84%20%EB%B0%A9%EC%A7%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
저는 Debian 10.8과 Linux 커널 4.19.0-14를 사용하고 있습니다.
IOMMU를 사용하여 전체 USB 컨트롤러(PCI Express 카드)를 전달하려고 하는데 문제가 있습니다. 커널이 ohci_pci 및 ehci_pci 드라이버를 로드하고 있는데 이를 중지하거나 바인딩을 해제할 수 없는 것 같습니다.
제거를 시도했지만(echo 1 > /sys/bus/pci/devices/...) 시스템이 정지되었습니다. (커널은 스택 트레이스 등을 통해 커널 BUG를 표시합니다.)
따라서 커널이 ohci 및 ehci 드라이버를 바인딩하지 못하도록 하여 VFIO가 먼저 바인딩을 해제하지 않고도 사용할 수 있도록 노력하고 있습니다.
나는 몇 가지를 시도했습니다:
- GRUB 커널 명령줄에 pci-stub.ids vfio-pci.ids를 추가합니다.
- PCI 장치를 가상 드라이버로 별칭 지정(/etc/modprobe.d/vfio-pci.conf)
- 블랙리스트 ohci_pci 및 ehci_pci (/etc/modprobe.d/blacklist.conf)
- /sys/bus/pci/devices/.../unbind를 사용하여 드라이버 바인딩을 해제합니다(그러나 이렇게 하면 시스템이 정지됩니다).
커널이 내장된 ohci/ehci 드라이버(모듈이 아닌)를 사용하고 있다고 생각하는데, 어쩌면 pci-stub 또는 vfio 블록 이전에 해당 드라이버를 로드할 수도 있습니까?