OpenWrt官方固件安装网卡固件开启wifi功能

最近又开始倒腾OpenWrt官方固件 开启wifi的需求了

https://www.right.com.cn/forum/thread-8307497-1-4.html

我的是官方的OpenWrt系统23.05.4版本

安装基本软件列表

netdata

# TTYD终端
ttyd
luci-app-ttyd
luci-i18n-ttyd-zh-cn

# 皮肤主题
luci-theme-argon
luci-app-argon-config
luci-i18n-argon-config-zh-cn

# OpenClash
luci-app-openclash
ipset依赖检查安装
然后重启,出现服务

首先我的无线网卡型号是博通的

Broadcom BCM-BCM943224HMS

首先安装pciutlis

opkg update
opkg install pciutils

安装完成后列出pci设备

lspci

执行结果如下:

root@OpenWrt:~
00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
00:16.0 Communication controller: Intel Corporation 7 Series/C216 Chipset Family MEI Controller 
00:1a.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller 
00:1b.0 Audio device: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 1 (rev c4)
00:1c.1 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 (rev c4)
00:1c.2 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 3 (rev c4)
00:1d.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller 
00:1f.0 ISA bridge: Intel Corporation HM76 Express Chipset LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 7 Series/C216 Chipset Family SMBus Controller (rev 04)
01:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
02:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
03:00.0 Network controller: Broadcom Inc. and subsidiaries BCM43224 802.11a/b/g/n (rev 01)
root@OpenWrt:~

可以看到最后一行,证明BCM43224无线网卡被系统成功识别了

03:00.0 Network controller: Broadcom Inc. and subsidiaries BCM43224 802.11a/b/g/n (rev 01)

但是它依旧没有在luci界面中显示,网络——接口中只有Wan Lan,网络中没有无线配置开关

因为我们没有安装driver驱动 & firmware固件

从软件包中搜索“broadcom”,我们可以看到有共 42条记录

通过匹配筛选,我找到了如下适合的包

kmod-brcmsmac	用于Broadcom IEEE802.11n PCIe 无线网卡的内核模块
kmod-brcmutil	该模块包含 Broadcom Wireless 驱动程序 brcmsmac 和 brcmfmac 所需的一些常见的部分。
brcmsmac-firmware	用于 Broadcom BCM43xx 系列无线网卡的固件(Firmware)
kmod-b43	一个内核模块,用于支持 Broadcom BCM43xx 系列无线网卡。这个模块通常被称为 b43 或者 brcmsmac

还有一个

broadcom-43224-sprom	2023-04-27-d36f7fcb-1	1.16 KiB	BCM43224 Fallback SPROM

broadcom-43224-sprom 包含了用于 BCM43224 无线网卡的Fallback SPROM(串行可编程只读存储器)数据。SPROM 是一种存储设备,通常用于保存设备的基本配置信息,例如 MAC 地址和其他重要的硬件标识符。

如果您遇到了无线网卡无法识别或配置的问题,这个包可以帮助系统识别并配置无线网卡。OpenWrt 会尝试使用这个包中的数据来初始化您的无线网卡。


借助人工智能,把这个驱动的事分析好了,现在我要开始安装了。

确定只需要安装这个kmod-brcmsmac Broadcom IEEE802.11n PCIe 无线网卡的内核模块,因为我的网卡是11n协议的,我曾经尝试测试安装其他的几个会出现只有abg协议,没有n

kmod-brcmsmac

重启后看下效果,出现了无线选项

编辑SSID:点开后,发现无法使用加密模块,需要安装hostapd

安装hostapd重启,再配置好就可以使用了

记得配置国家代码。中国或者澳大利亚优先。

出现了n协议,且设备接入设备正常。

后来,我升级了wifi6的无线网卡,具体型号是MT7921,我的设备插口是MINI PCIE的。

同样,使用lspci查看pcie设备信息(看最后一行)

root@OpenWrt:~

0:1f.3 SMBus: Intel Corporation 7 Series/C216 Chipset Family SMBus Controller (rev 04)
01:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
02:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
03:00.0 Network controller: MEDIATEK Corp. MT7921 802.11ax PCI Express Wireless Network Adapter
root@OpenWrt:~

我后来完全重置了OpenWRT(因为之前安装了kmod-brcmsmac固件,radio中出现了老的radio0和新的radio1),重新安装了新的固件kmod-mt7921e

  • kmod-mt7921e 代表pcie接口;
  • kmod-mt7921u 代表usb接口;
  • kmod-mt7921s 不知道代表什么接口

找到你合适的驱动安装后,(我安装的是 kmod-mt7921e),下面这两个也会被同时安装。

kmod-mt7921-firmware

kmod-mt7921-common

这之后再启动,无线驱动就都起来了。

但是,我发现一个问题,每次重启设备后,我都需要点击“radio0”的“重启”,wifi才正常。

处理方法如下:

1、配置无线,确保每次重启时,无线没有被禁用

vim /etc/config/wireless

在已经配置好的无线配置里,添加这一行option disabled '0'  

config wifi-device 'radio0'
    option type 'mac80211'
    option path 'pci0000:00/0000:00:1c.2/0000:03:00.0'
    option band '5g'
    option htmode 'HE80'
    option country 'CN'
    option cell_density '3'
    option channel '157'
    option txpower '6'
    option disabled '0' 

2、延迟无线网卡的启动

chartGPT告诉我,在/etc/rc.local这个配置文件中增加10s的sleep,就能推迟启动了,我配置后,再重启果然正常了。

root@OpenWrt:~

(sleep 10; wifi) &

exit 0

root@OpenWrt:~

如果: 无线网卡无法发射频射(就是看着所有配置都一切正常,但是你搜不到无线wifi信号)


我的网卡信道暂时只能开149、153、157这几个信道上

下面这部分只做为mark备忘,本次不涉及


安装了其他的设备,会协议只支持abg,是兼容程序,不好

安装驱动

opkg install kmod-brcmsmac kmod-brcmutil kmod-b43

安装固件

opkg install brcmsmac-firmware

重启看

opkg install Kmod-iwlwifi wireless-regdb wireless-tools iwlwifi-firmware-ax210 wireless-tools wpa-supplicant hostapd