老旧笔记本修改系统为Centos7.9 并安装博通无线网卡bcm43288驱动

近来无事,翻箱倒柜找出了尘封已久的一个笔记本,想着放着也是放着,直接拿出来做家庭服务器用。将系统重装...

近来无事,翻箱倒柜找出了尘封已久的一个笔记本,想着放着也是放着,直接拿出来做家庭服务器用。

将系统重装为Centos7.9后发现无法连接互联网,网上找了很多方案,现综合总结如下:

查看当前笔记本网卡驱动

lspci | grep 802

image.png

当前网卡为bcm43288

该网卡为博通无线网卡,算是特别老旧的一种,因此在centos系统下,需要自行编译获得驱动

下载博通该网卡驱动

直接编译该驱动会报错,需要安装centos官方的补丁

由于centos官网对于老旧文章进行了搬迁,原地址已经全部404无法访问,因此只能通过某些渠道获取历史文件,目前共需要6个补丁文件

image.png

总结命令如下:

# 创建指定目录
mkdir -p /usr/local/src/hybrid-wl
cd /usr/local/src/hybrid-wl
# 上传驱动包、补丁包
# 解压驱动包
tar xvfz /usr/local/src/hybrid-wl/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
# 修改文件权限
chown -R nobody.nobody /usr/local/src/hybrid-wl
# 安装补丁
patch -p1 < ./wl-kmod-01_kernel_4.7_IEEE80211_BAND_to_NL80211_BAND.patch
patch -p1 < ./wl-kmod-02_kernel_4.8_add_cfg80211_scan_info_struct.patch
patch -p1 < ./wl-kmod-03_fix_kernel_warnings.patch
patch -p1 < ./wl-kmod-04_kernel_4.11_remove_last_rx_in_net_device_struct.patch
patch -p1 < ./wl-kmod-05_kernel_4.12_add_cfg80211_roam_info_struct.patch

sed -i 's/ >= KERNEL_VERSION(3, 11, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
sed -i 's/ >= KERNEL_VERSION(3, 15, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
sed -i 's/ < KERNEL_VERSION(3, 18, 0)/ < KERNEL_VERSION(3, 9, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
sed -i 's/ >= KERNEL_VERSION(4, 0, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
sed -i 's/ < KERNEL_VERSION(4, 2, 0)/ < KERNEL_VERSION(3, 9, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
sed -i 's/ >= KERNEL_VERSION(4, 7, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
sed -i 's/ >= KERNEL_VERSION(4, 8, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
sed -i 's/ >= KERNEL_VERSION(4, 11, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
sed -i 's/ < KERNEL_VERSION(4, 12, 0)/ < KERNEL_VERSION(3, 9, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
sed -i 's/ >= KERNEL_VERSION(4, 12, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
sed -i 's/ <= KERNEL_VERSION(4, 10, 0)/ < KERNEL_VERSION(3, 9, 0)/' src/wl/sys/wl_linux.c

开始编译

# 开始编译
make -C /lib/modules/`uname -r`/build  M=`pwd`

image.png

当前目录下出现 wl.ko即完成编译


卸载默认模块

modprobe -r bcm43xx
modprobe -r b43
modprobe -r b43legacy
modprobe -r ssb
modprobe -r bcma
modprobe -r brcmsmac
modprobe -r ndiswrapper

以上命令执行即可,可能会报模块不存在;不影响实际效果。

加载安装好的驱动

cp -vi /usr/local/src/hybrid-wl/wl.ko /lib/modules/`uname -r`/extra/

自动检测模块依赖性

depmod $(uname -r)

加载驱动模块

modprobe wl


使用ip addr 查看是否增加了无线网卡

image.png

我的无线网卡名就是wlp4s0

# 启用网卡
ip link set dev wlp4s0 up
# 启用后,ip addr 将会显示网卡状态为:wlp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP>
# 连接指定WiFi
wpa_supplicant -B -i wlp4s0 -c <(wpa_passphrase "yourname" "passwd")
# 自行修改wlp4s0 为对应的网卡名称yourname为WiFi名称  passwd为密码

# 自动分配dhcp地址
dhclient wlp4s0

再次使用ip addr即可查看该驱动的ip地址


检查是否安装了wifi管理模块

rpm -q NetworkManager-wifi

如果没有安装,使用如下命令安装

yum install NetworkManager-wifi

检查附近wifi

nmcli device wifi list

连接指定WiFi

nmcli device wifi connect 'yourname' password 'passwd'

查看连接名称

nmcli con show

将指定名称的连接设置为启动自动连接

nmcli con mod yourname connection.autoconnect yes


评论