13代 intel 核显 pve 下开启 sr-iov 并直通给 linux 虚拟机使用的详细教程

13代 intel 核显 pve 下开启 sr-iov 并直通给 linux 虚拟机使用的详细教程

canoziia
2024-07-22 / 0 评论 / 178 阅读 / 正在检测是否收录...

虽然可能并不是很详细。

首先是 https://github.com/moetayuko/intel-gpu-i915-backports 这个是宿主机的模块仓库,按照说明安装。6.8内核是可用的

然后有一些内核命令行参数比如 i915.enable_guc=3 i915.max_vfs=7 ,这些都是网上已经有详细说明如何设置的。还有用sysfs-utils创建vf,网上都有教程。

然后虚拟机的话,目前发现换pve内核最简单。

添加一个pve源,以及gpg密钥

wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

然后 apt install proxmox-kernel-6.8 apt install proxmox-headers-6.8
apt install ./intel-i915-dkms_1.24.1.19.240119.1.nodrm+i3-1_all.deb

再移除老内核apt remove linux-image-amd64 等等

这样就可以了。虚拟机配置选q35+ovmf实测可以出/dev/dri/renderD128。如果有问题一般是内核头版本不对之类的。

然后有个小坑,pve内核用portainer_agent,需要这样:

name: portainer_agent
services:
  agent:
    image: portainer/agent:latest
    container_name: portainer_agent
    restart: always
    security_opt:
      - apparmor:unconfined
    ports:
      - "192.168.2.215:9001:9001"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes

apparmor:unconfined 是为了防止docker.sock没权限。

另外还有一些其他的,比如使用docker的同时如果要保持iptables和ip6tables的forward是accept,需要先把sysctl这边转发开启来,然后daemon.json不要开ip6tables,使用ipv6nat。主要是docker自己操作ip6tables似乎会把规则变drop,而且不容易改回来。

{
 "ipv6": true,
 "ip6tables": false,
 "fixed-cidr-v6": "fd00:aaaa:0000:0000::/64",
 "default-address-pools": [
     {"base": "172.17.0.0/16", "size": 24},
     {"base": "fd00:aaaa:0000:1::/64", "size": 80}
 ]
}
0

评论 (0)

取消