启用VFIO noiommu模式后QEMU无法找到/dev/vfio/0的问题求助
QEMU VFIO NoIOMMU模式下找不到/dev/vfio/0的解决办法
问题根源
开启NoIOMMU模式后,VFIO生成的组设备文件是/dev/vfio/noiommu-0,而非常规IOMMU模式下的/dev/vfio/0。QEMU默认会尝试访问常规路径,因此触发“文件不存在”的报错。
解决步骤
修改QEMU启动命令中的vfio-pci设备配置,添加group=/dev/vfio/noiommu-0参数,明确指定使用NoIOMMU模式的组设备:
qemu-system-aarch64 \ -machine virt,gic-version=3 \ --enable-kvm \ -cpu host \ -m 512M \ -smp 2 \ -kernel Image \ -drive file=rootfs2.ext4,id=disk0,if=none,format=raw \ -device virtio-blk-device,drive=disk0 \ -device vfio-pci,host=0000:01:00.0,iommu_platform=off,group=/dev/vfio/noiommu-0 \ -nographic \ -append "clk_ignore_unused earlycon console=ttyAMA0 root=/dev/vda"
额外注意点
- 确认已通过
echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode正确开启NoIOMMU模式 - 检查PCI设备确实绑定到vfio-pci驱动,且
/dev/vfio/noiommu-0存在 iommu_platform=off参数必须保留,NoIOMMU模式下不需要IOMMU平台支持
内容的提问来源于stack exchange,提问作者Kai Xu
相关产品推荐
相关产品推荐

