问题标签 [vfio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
32 浏览

docker - 无法以非 root 用户身份在 docker 容器中打开 vfio 设备

我在 BIOS 中启用了虚拟化,并在内核命令行 (intel_iommu=on) 上启用了 IOMMU。

我将 solarflare NIC 绑定到 vfio-pci 设备并添加了 udev 规则以确保我的非 root 用户可以访问 vfio 设备(例如,/etc/udev/rules.d/10-vfio-docker-users.rules ):

我已经启动了我的容器-u 1000并映射了 /dev ( -v /dev:/dev)。在容器中的交互式 shell 中运行,我能够验证设备是否存在,并且具有我的 udev 规则设置的权限:

但是,如果我尝试打开它(例如,python -c "open('/dev/vfio/35', 'rb')"我得到IOError: [Errno 1] Operation not permitted: '/dev/vfio/35'了 . 但是,相同的命令在容器外与用户 ID 为 1000 的普通非 root 用户一样工作!

似乎有其他安全措施不允许我访问容器内的 vfio 设备。我错过了什么?

0 投票
0 回答
11 浏览

vfio - 如何使用 mkinitcpio 在 ahci 驱动程序之前加载 vfio 驱动程序?

大家早上好,

我想在 manjaro os(内核 5.16.7)中启动我的辅助 sata 控制器时附加到 vfio 驱动程序。通常,我在 /etc/modprobe.d/vfio.conf 中添加设备,例如:

在此示例中,有 gpu 音频和视频 (10de)、sata 控制器 (1b4b)、infiniband 卡 ​​(15b3) 和火线 (1106)。

然后,我在 /etc/mkinitcpio.conf 中添加模块:

确保 modconf 在 HOOKS 中:

最后我生成initramfs:

一切都很好,设备连接到 vfio,除了 sata 控制器,它连接到 ahci 驱动程序(如果某些 vm 不使用)。如果我使用设置为通过的 sata 控制器启动 kvm vm,vfio 驱动程序会附加到它,但这不是我想要的:目标是在启动时将该 sata 控制器附加到 vfio(而不是附加到 vfio “在飞行中”)。

我找到了其他 oses 的一些说明,例如这里: https ://gist.github.com/kiler129/4f765e8fdc41e1709f1f34f7f8f41706

该操作解释说 ahci 驱动程序在 vfio 之前加载,但 manjaro 使用 mkinitcpio,我的问题是我不明白如何为我的操作系统调整/翻译这些指令。