近来无事,翻箱倒柜找出了尘封已久的一个笔记本,想着放着也是放着,直接拿出来做家庭服务器用。将系统重装...
近来无事,翻箱倒柜找出了尘封已久的一个笔记本,想着放着也是放着,直接拿出来做家庭服务器用。
将系统重装为Centos7.9后发现无法连接互联网,网上找了很多方案,现综合总结如下:
查看当前笔记本网卡驱动
lspci | grep 802
当前网卡为bcm43288
该网卡为博通无线网卡,算是特别老旧的一种,因此在centos系统下,需要自行编译获得驱动
直接编译该驱动会报错,需要安装centos官方的补丁
由于centos官网对于老旧文章进行了搬迁,原地址已经全部404无法访问,因此只能通过某些渠道获取历史文件,目前共需要6个补丁文件
总结命令如下:
# 创建指定目录 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`
当前目录下出现 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 查看是否增加了无线网卡
我的无线网卡名就是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