问题描述
友善NanoPi R5C(RK3568)板载RTL8822CE无线网卡,刷入第三方固件(如KWRT、iStoreOS等)后,在"网络-无线"页面中,无线网卡显示为 "Generic UNKNOWN 未激活" 或 "禁用",无法正常使用WiFi功能。
问题原因
-
第三方固件可能未包含RTL8822CE网卡所需的完整固件文件。
-
固件文件版本不匹配或文件缺失。
-
无线配置文件未正确生成。
解决步骤
第一步:确认网卡驱动已加载
SSH登录路由器,执行:
bash
dmesg | grep -i rtw | tail -20
正常情况下应看到类似输出:
text
rtw88_8822ce 0000:01:00.0: enabling device (0000 -> 0003)
rtw88_8822ce 0000:01:00.0: Firmware version 9.9.15, H2C version 15
rtw88_8822ce 0000:01:00.0: WOW Firmware version 9.9.4, H2C version 15
如果看到 firmware load failed 或没有相关输出,说明固件缺失。
第二步:下载并安装无线网卡固件
RTL8822CE需要两个固件文件:
-
rtw8822c_fw.bin(核心固件) -
rtw8822c_wow_fw.bin(唤醒功能固件)
这两个文件可以从Linux内核官方固件仓库下载:
bash
# 创建固件目录
mkdir -p /lib/firmware/rtw88
# 下载核心固件
wget -O /lib/firmware/rtw88/rtw8822c_fw.bin \
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/rtw88/rtw8822c_fw.bin
# 下载WOW固件
wget -O /lib/firmware/rtw88/rtw8822c_wow_fw.bin \
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/rtw88/rtw8822c_wow_fw.bin
验证文件是否正确下载:
bash
ls -lh /lib/firmware/rtw88/rtw8822c*
正常输出:
text
-rw-r--r-- 1 root root 195.0K rtw8822c_fw.bin
-rw-r--r-- 1 root root 141.7K rtw8822c_wow_fw.bin
注意: 如果有名为
rtw8822c_wowlan.bin且大小为0的错误文件,请删除:bash
rm -f /lib/firmware/rtw88/rtw8822c_wowlan.bin
第三步:重新加载驱动
bash
# 卸载旧驱动模块
rmmod rtw88_8822ce 2>/dev/null
rmmod rtw88_8822c 2>/dev/null
rmmod rtw88_pci 2>/dev/null
rmmod rtw88_core 2>/dev/null
# 重新加载驱动模块
modprobe rtw88_core
modprobe rtw88_pci
modprobe rtw88_8822c
modprobe rtw88_8822ce
验证驱动是否成功加载:
bash
dmesg | grep -i rtw | tail -10
第四步:生成无线配置文件
bash
# 删除旧配置(如果存在)
rm -f /etc/config/wireless
# 重新生成无线配置
wifi detect > /etc/config/wireless
# 确保配置中无线未被禁用
sed -i "s/option disabled '1'/option disabled '0'/g" /etc/config/wireless
检查配置文件:
bash
cat /etc/config/wireless
确认有类似以下内容:
text
config wifi-device 'radio0'
option type 'mac80211'
option channel 'auto'
option hwmode '11n'
option disabled '0'
第五步:重启路由器
bash
reboot
第六步:验证
重启后登录管理界面,进入 网络 -> 无线 ,无线网卡应显示为 Generic MAC80211 且状态为 启用。
在SSH中也可验证:
bash
iwconfig
应能看到 wlan0 接口。