LXC核心显卡直通,需要使用 PVE 宿主机的命令行修改 LXC 容器的配置文件。
添加核心显卡直通
使用 nano 编辑容器对应的配置文件,容器ID 104对应的文件是 104.conf,路径是 /etc/pve/lxc/
nano /etc/pve/lxc/104.conf打开后默认的配置如下:
arch: amd64
cores: 2
hostname: frigate
memory: 2048
net0: name=eth0,bridge=vmbr0,firewall=1,hwaddr=A6:43:11:F3:EE:78,ip=dhcp,type=veth
ostype: ubuntu
rootfs: local-lvm:vm-104-disk-0,size=8G
swap: 512需要添加以下内容
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file这些配置参数是针对 Linux 容器(通常是 LXC 容器)的一些安全和资源控制设置,用于限制容器内部的行为和访问。以下是每个配置项的作用解释:
- lxc.apparmor.profile: unconfined:该配置指定了 AppArmor(应用程序安全性配置框架)的配置文件名称,这里设置为 “unconfined”,用于允许容器内的进程具有更高的系统权限
- lxc.cgroup.devices.allow: a: 允许容器内的进程访问所有的 cgroup 设备。
- lxc.cap.drop: 此配置项为空,容器内的进程将继承主机系统的默认能力设置。
- lxc.cgroup2.devices.allow: c 226:0 rwm 和 lxc.cgroup2.devices.allow: c 226:128 rwm: 允许容器内的进程对设备号为 226:0 和 226:128 的字符设备节点拥有读、写和映射(rwm)的权限。用于允许容器内的进程访问特定的设备,如图形加速设备。
- lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file 和 lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file:将主机系统上的两个设备节点 /dev/dri/card0 和 /dev/dri/renderD128 挂载到容器内的相同位置,用于允许容器内的应用程序访问图形硬件加速功能,以便执行图形相关的任务
修改完成后保存,启动 LXC 容器
检查核显
等容器启动成功后,进入容器,使用命令行检查 /dev/dri 路径下挂载的文件,card0和 renderD128 都正常
ls /dev/dri/
card0 renderD128查看 PCI 也能看到核心显卡,说明挂载成功
lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation JasperLake [UHD Graphics] (rev 01)
评论