ImmortalWrt 25.12 (x86/QEMU) 安装 RTL8812CU/RTL8822CU 无线网卡驱动踩坑实录

发布时间:2026/7/24 11:44:12
ImmortalWrt 25.12 (x86/QEMU) 安装 RTL8812CU/RTL8822CU 无线网卡驱动踩坑实录 前段时间买了个无线网卡windows上可以由驱动飞牛OS里也带有驱动就是immoralWrt中默认没有驱动需要自己折腾要么定制编译要么直接装驱动。一、 背景与环境在虚拟机如 PVE、ESXi、KVM中运行最新版的 ImmortalWrt 25.12 系统由于该版本将传统的包管理器升级为了 apk (Alpine Package Keeper)并且社区对传统的 Realtek 闭源/第三方驱动如 kmod-rtl88x2bu进行了移除或合并导致传统的 opkg 安装方案和在线固件选择器Firmware Selector均会报错提示 Impossible package selection: missing (kmod-rtl88x2bu)。本篇记录如何通过全新的开源现代驱动 rtw88完美激活 RTL8812CU / RTL8822CU 无线网卡硬件 ID 为 0bda:c812。二、 核心避坑要点核心排查思路包管理器变更新版本使用 apk add 代替 opkg install。驱动框架分离新版 ImmortalWrt 将无线驱动分为了通用 USB 框架包如 kmod-rtw88-usb和针对特定芯片的子驱动模块如 kmod-rtw88-8822cu。必须两者同时安装内核 dmesg 才会响应并识别硬件。虚拟机 USB 3.0 透传在 QEMU 宿主机透传 USB 网卡时必须选择 USB 3.0 (XHCI) 控制器否则网卡在 USB 2.0 下会因为供电或协议握手失败导致驱动无法加载。三、 完整安装与激活步骤步骤 1宿主机硬件透传PVE/KVM 侧登录您的虚拟化管理后台以 PVE 为例。进入虚拟机的 硬件 (Hardware) - 添加 - USB 设备。勾选对应的 Realtek 网卡务必确保控制器类型选择为 USB 3.0 (XHCI)。然后在immoralWrt中安装了usbtuils后敲命令lsub:rootImmortalWrt:~# lsusbBus 001 Device 001: ID 1d6b:0002 Linux Foundation2.0root hub Bus 001 Device 002: ID 0bda:c812 Realtek Semiconductor Corp.802.11ac NIC Bus 001 Device 003: ID 0627:0001 Adomax Technology Co., Ltd QEMU Tablet Bus 002 Device 001: ID 1d6b:0003 Linux Foundation3.0root hub0bda:c812就是我的rtl8812cu网卡。如果在immoralWrt中没出现这个设备需要先检查硬件直通设置。步骤 2SSH 登录路由器安装核心驱动组件使用 SSH 登录 ImmortalWrt 后台依次执行以下命令1. 更新新版 apk 软件源apk update2. 安装 USB 支持与工具组件apk add kmod-usb-core kmod-usb3 usbutils3. 安装 rtw88 通用 USB 无线框架驱动apk add kmod-rtw88-usb4. 安装 8822cu/8812cu 核心硬件子驱动模块关键一步不装此包内核不响应apk add kmod-rtw88-8822cu5. 安装无线管理与配置工具apk add wpad-basic-mbedtls iw iwinfo wireless-regdb步骤 3手动补齐无线网卡固件Firmware由于部分固件包在官方 apk 源中可能缺失直接从 Linux Kernel 官方仓库拉取对应的固件二进制文件1. 创建内核 rtw88 驱动专门存放固件的目录mkdir -p /lib/firmware/rtw88/2. 下载芯片所需的两个核心固件文件curl -Lo /lib/firmware/rtw88/rtw8822c_fw.bin https://kernel.orgcurl -Lo /lib/firmware/rtw88/rtw8822c_wow_fw.bin https://kernel.org步骤 4强制系统扫描硬件并生成无线配置即使驱动和固件都加载成功如果不触发配置生成LuCI 网页端也是不会显示无线的。执行以下命令强制生成配置并重启1. 强行让内核重新探测 USB 拓扑并加载对应驱动udevtrigger 2/dev/null || udevadm trigger2. 强制系统扫描新安装的无线硬件并将配置追加写入无线配置文件wifi detect /etc/config/wireless3. 重启整个系统以彻底激活reboot四、 验证成果内核验证重启后进入 SSH 输入 dmesg | grep -E “rtw|8822”如果看到 rtw88_8822cu … MAC address … 且没有 error 报错说明加载完美成功。rootImmortalWrt:~# dmesg | grep -E rtw|8822[6.548792]usbcore: registered new interface driver rtw88_8822bu[6.559900]rtw88_8822cu1-1:1.0: Firmware version9.9.15, H2C version15[6.561584]rtw88_8822cu1-1:1.0: WOW Firmware version9.9.4, H2C version15[7.018428]usbcore: registered new interface driver rtw88_8822cu[10.953257]rtw88_8822cu1-1:1.0 phy0-ap0: entered allmulticast mode[10.954860]rtw88_8822cu1-1:1.0 phy0-ap0: entered promiscuous mode[100.340977]rtw88_8822cu1-1:1.0 phy0-ap0: left allmulticast mode[100.342658]rtw88_8822cu1-1:1.0 phy0-ap0: left promiscuous mode[101.939491]rtw88_8822cu1-1:1.0 phy0-ap0: entered allmulticast mode[101.941103]rtw88_8822cu1-1:1.0 phy0-ap0: entered promiscuous mode[105.939690]rtw88_8822cu1-1:1.0: failed tododpk calibration[137.226270]rtw88_8822cu1-1:1.0 phy0-ap0: left allmulticast mode[137.227786]rtw88_8822cu1-1:1.0 phy0-ap0: left promiscuous modeLuCI 网页端验证刷新 ImmortalWrt 网页后台导航至 网络 - 无线 (Network - Wireless)此时无线控制板正式显现可以正常进行 AP 发射或无线中继配置。这里还有个坑rtl8812cu它是单发单收的同一时间只能在一种状态作为客户端或者AP并不能同时的配置。五、 结语遇到驱动安装成功但“无线页面不显示”的问题时多去查看 dmesg 内核日志。如果发现完全没有输出通常就是漏掉了特定芯片的子驱动模块Sub-module。