绕过 IOMMU 分组:配置 PVE ARM 无线网卡直通
PVE 在 X86 架构下实现 PCIe 设备直通轻而易举,在 ARM 架构下几经波折
一、前言
PVE ARM 无线网卡直通 一直都是比较困难的,如果希望使用 ARM 设备搭建 ALL IN ONE 主机的话,OpenWrt 只能作为一个有线路由,而不能为手机、平板等设备提供路由服务。本文将重点介绍通过 LXC 直通技术解决这一难题。
倘若退而求其次,使用 USB 无线网卡提供 WIFI ,也会因为 USB 无线网卡的散热性能羸弱,导致无线网卡温度过高而丢包,故必须找到一个工具直通 PCIe 无线网卡,LXC 便是解决之道
二、构建 OpenWrt 固件
在配置 LXC 容器之前,首先需要构建适合自己的 OpenWrt 固件,将自己网卡(WAN 口网卡和无线网卡)的驱动打包进固件中,我们可以通过以下命令查看驱动:
sudo ethtool -i enx6c1ff721bebe
driver: r8152
version: v1.12.13
firmware-version: rtl8156b-2 v3 10/20/23
expansion-rom-version:
bus-info: usb-xhci-hcd.12.auto-1
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
例如我的 WAN 口(enx6c1ff721bebe)驱动是 r8152,请将 enx6c1ff721bebe 替换为自己设备的实际网卡名进行查看,并执行百度驱动的 ipk 包名
然后我们就可以进行构建了,我使用的是 ImmortalWrt 镜像,在 ImmortalWrt Firmware Selector 构建自定义镜像,也可以在 / targets / armsr / armv8 目录下下载 rootfs 的预构建镜像
如果是使用 ImmortalWrt Firmware Selector 构建的自定义镜像,默认是打包为 img 格式的文件,因此我们需要进行格式转换
sudo apt update && sudo apt install squashfs-tools -y
gunzip generic-squashfs-rootfs.img.gz && sudo unsquashfs generic-squashfs-rootfs.img
sudo tar zcf generic-squashfs-rootfs.tar.gz ./squashfs-root/*
最后在你的存储池里上传 CT 模板即可
三、配置 LXC 容器
- 点击右上角创建一个 LXC 容器。注意:必须创建为特权容器

- 网络请将所有需要用到的 LAN 口添加到 LXC 容器中,其余配置保持默认即可

注意:网络配置中不要把 IPv4 和 IPv6 配置为 DHCP,请保持默认,DHCP 将在 OpenWrt 中配置
- 此时切记不要启动 LXC 容器,先使用 SSH 连接宿主机,然后执行:
# 将 <CT-ID> 替换为实际容器 ID
sudo nano /etc/pve/lxc/<CT-ID>.conf
- 在文件末尾添加以下内容:
lxc.net.2.type: phys
lxc.net.2.link: enP4p65s0 # 设置为实际的 WAN 口有线网卡名称
lxc.net.2.name: eth0 # LXC 容器中的网卡名
lxc.net.2.flags: up
lxc.net.3.type: phys
lxc.net.3.link: wlP2p33s0 # 设置为实际的无线网卡名称
lxc.net.3.name: wlan # LXC 容器中的网卡名
lxc.net.3.flags: up
lxc.mount.entry: /dev/ppp dev/ppp none bind,create=file 0 0
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file 0 0
lxc.cgroup2.devices.allow: a
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
配置完成后,便可以正常启动容器了。容器启动完成后,宿主机将找不到被直通的设备,若需要在宿主机使用被直通的设备,只需重启宿主机即可
四、配置 OpenWrt 无线网络
进入 Luci 后台界面,按照正常流程配置拨号上网即可,无线网络接口模式需要设置为 接入点 AP 才可以正常使用 WIFI 功能

如果需要将后台管理界面暴露到公网上的话,切记要配置好防火墙,由于使用的是特权容器,若被侵入则可能影响宿主机
五、结语
尽管配置好了 PVE ARM 无线网卡直通 ,但是由于驱动的不稳定性,会导致重启后无线网卡无法正常启动,可以尝试手动重启进行修复。