2020-11-11 centos7博通无线网卡bcm43288驱动安装

broadcom bcm43**为比较老的无线网卡了,在centos7.7上默认是驱动不起来的。需要手动编译安装。按照centos官方的说法很多网卡都需要重新编译驱动后才能正常运行。包括:

Broadcom Corporation BCM4311, BCM4312, BCM4313, BCM4321, BCM4322, BCM43224, BCM43225, BCM43227 and BCM43228 Based Wireless NICs。

在安装过程中参考了几位大神的文章(文章链接附后)在执行make过程遇到各种个这样的问题,就是执行不下去,总结起来有两点:一是大神门的文章没有细看,二是,官方补丁更新、步骤也有所更新,三是,基于针对报错选择方案。

以下过程结合了几位大神文章和官方文档,写下来供后来的同道中人参考。

1.识别网卡的型号

执行lspci | grep 802

02:00.0 Network controller: Broadcom Inc. and subsidiaries BCM43228 802.11a/b/g/n

2.确认kernel-headers kernel-devel gcc是否已经安装

rpm -qa kernel-headers kernel-devel gcc 或 yum list kernel-headers kernel-devel gcc

kernel-headers kernel-devel gcc一般在安装完整版操作系统时都安装了,若没有挂载操作系统镜像直接安装即可。

3.下载broadcom驱动

https://www.broadcom.com/site-search?filters[pages][Content_Type][type]=and&filters[pages][Content_Type][values][]=Downloads&page=1&per_page=10&q=BCM4312

 注意要与操作系统版本匹配,笔者选择的是LINUX STA 64-bit driver


4.解压文件

官方:

[root@host ~]#mkdir-p /usr/local/src/hybrid-wl

[root@host hybrid-wl]# cd /usr/local/src/hybrid-wl

[root@host hybrid-wl]#tarxvzf /path/to/the/tarball/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz

[root@host hybrid-wl]#chown-R  nobody.nobody /usr/local/src/hybrid-wl

在编译过程中会生成相关被内核调用的文件,也会在你解压的目录下,因此解压的文件要放到可以长久访问的位置,笔者按照官方文档进行的,其中someuser替换成系统的共享用户,笔者参考了大神的文档,使用的nobody.

5.编译文件

官方

[user@host hybrid-wl]$make -C /lib/modules/`uname-r`/build/ M=`pwd`

 关键点来了,注意了

此处直接使用make就行,官方安装包已经集成了这些内容。

此处大部分会出错,笔者就这这里卡壳了。

正确的步骤是:

1)先安装官方补丁,详见第6步

2)再执行sed修改操作,详见第7步

3)最后执行make,第5步

6.安装官方补丁包

下载官方提供补丁包

Again, esp. if you're running EL 7.3, or one of its kernels, you'll have to apply the following patches wl-kmod-01_kernel_4.7_IEEE80211_BAND_to_NL80211_BAND.patch wl-kmod-02_kernel_4.8_add_cfg80211_scan_info_struct.patch wl-kmod-03_fix_kernel_warnings.patch wl-kmod-04_kernel_4.11_remove_last_rx_in_net_device_struct.patch wl-kmod-05_kernel_4.12_add_cfg80211_roam_info_struct.patch BEFORE you apply the above sed replacement commands (otherwise, compilation won't work). Also, don't forget the patch from step 3a:

 安装补丁包

[user@host hybrid-wl]$patch-p1 < ../wl-kmod-01_kernel_4.7_IEEE80211_BAND_to_NL80211_BAND.patchpatching filesrc/wl/sys/wl_cfg80211_hybrid.c

Hunk #6succeeded at1911(offset3 lines).

Hunk #7succeeded at2040(offset3 lines).

Hunk #8succeeded at2160(offset3 lines).

Hunk #9succeeded at2298(offset3 lines).

Hunk #10succeeded at2941(offset3 lines).

[user@host hybrid-wl]$patch-p1 < ../wl-kmod-02_kernel_4.8_add_cfg80211_scan_info_struct.patchpatching filesrc/wl/sys/wl_cfg80211_hybrid.c

Hunk #1succeeded at2442(offset3 lines).

Hunk #2succeeded at2553(offset3 lines).

Hunk #3succeeded at2989(offset3 lines).

[user@host hybrid-wl]$patch-p1 < ../wl-kmod-03_fix_kernel_warnings.patchpatching filesrc/wl/sys/wl_cfg80211_hybrid.c

Hunk #1succeeded at2008(offset3 lines).

Hunk #2succeeded at2032(offset3 lines).

Hunk #3succeeded at2056(offset3 lines).

Hunk #4succeeded at2071(offset3 lines).

Hunk #5succeeded at2107(offset3 lines).

Hunk #6succeeded at2386(offset3 lines).

Hunk #7succeeded at2401(offset3 lines).

Hunk #8succeeded at2441(offset3 lines).

[user@host hybrid-wl]$patch-p1 < ../wl-kmod-04_kernel_4.11_remove_last_rx_in_net_device_struct.patchpatching filesrc/wl/sys/wl_cfg80211_hybrid.c

patching filesrc/wl/sys/wl_linux.c

Hunk #1succeeded at2911(offset -18 lines).

[user@host hybrid-wl]$patch-p1 < ../wl-kmod-05_kernel_4.12_add_cfg80211_roam_info_struct.patchpatching filesrc/wl/sys/wl_cfg80211_hybrid.c

Hunk #3succeeded at2450(offset3 lines).

Hunk #4succeeded at2466(offset3lines).

7.安装官方补丁包

执行如下sed命令

[user@host hybrid-wl]$sed-i's/ >= KERNEL_VERSION(3, 11, 0)/ >= KERNEL_VERSION(3, 10, 0)/'src/wl/sys/wl_cfg80211_hybrid.c

[user@host hybrid-wl]$sed-i's/ >= KERNEL_VERSION(3, 15, 0)/ >= KERNEL_VERSION(3, 10, 0)/'src/wl/sys/wl_cfg80211_hybrid.c

[user@host hybrid-wl]$sed-i's/ < KERNEL_VERSION(3, 18, 0)/ < KERNEL_VERSION(3, 9, 0)/'src/wl/sys/wl_cfg80211_hybrid.c

[user@host hybrid-wl]$sed-i's/ >= KERNEL_VERSION(4, 0, 0)/ >= KERNEL_VERSION(3, 10, 0)/'src/wl/sys/wl_cfg80211_hybrid.c

[user@host hybrid-wl]$sed-i's/ < KERNEL_VERSION(4,2,0)/ < KERNEL_VERSION(3, 9, 0)/'src/wl/sys/wl_cfg80211_hybrid.c

[user@host hybrid-wl]$sed-i's/ >= KERNEL_VERSION(4, 7, 0)/ >= KERNEL_VERSION(3, 10, 0)/'src/wl/sys/wl_cfg80211_hybrid.c

[user@host hybrid-wl]$sed-i's/ >= KERNEL_VERSION(4, 8, 0)/ >= KERNEL_VERSION(3, 10, 0)/'src/wl/sys/wl_cfg80211_hybrid.c

[user@host hybrid-wl]$sed-i's/ >= KERNEL_VERSION(4, 11, 0)/ >= KERNEL_VERSION(3, 10, 0)/'src/wl/sys/wl_cfg80211_hybrid.c

[user@host hybrid-wl]$sed-i's/ < KERNEL_VERSION(4, 12, 0)/ < KERNEL_VERSION(3, 9, 0)/'src/wl/sys/wl_cfg80211_hybrid.c

[user@host hybrid-wl]$sed-i's/ >= KERNEL_VERSION(4, 12, 0)/ >= KERNEL_VERSION(3, 10, 0)/'src/wl/sys/wl_cfg80211_hybrid.c

[user@host hybrid-wl]$sed-i's/ <= KERNEL_VERSION(4, 10, 0)/ < KERNEL_VERSION(3, 9, 0)/'src/wl/sys/wl_linux.c


7.执行make编译

[user@host hybrid-wl]$make-C /lib/modules/`uname-r`/build/ M=`pwd`

以上过程一定不能跳过,顺序不能错。

至此,编译完成了。接下来开始模块加载、系统模块配置和自动启动工作。

8.卸载系统中默认安装的相关模块,以免出现冲突。

[root@host ~]#modprobe-r bcm43xx

[root@host ~]#modprobe-r b43

[root@host ~]#modprobe-r b43legacy

[root@host ~]#modprobe-r ssb

[root@host ~]#modprobe-r bcma

[root@host ~]#modprobe-r brcmsmac

[root@host ~]#modprobe-r ndiswrapper

 以上步骤执行过程中可能会提示没有发现驱动模块,直接执行就好了。

8.加载安装好的驱动模块wl

copy the driver module file to a location where kernel can find it:

[root@host hybrid-wl]#cp-vi/usr/local/src/hybrid-wl/wl.ko /lib/modules/`uname-r`/extra/

此处会发现,此处命令实际是将在刚刚解压后目录下,通过make生成的模块链接到modules下,这里也就解释了为什么要放着在可长久访问的位置。

9.自动检测模块的依赖性

[root@host ~]# depmod $(uname-r)

Linux depmod命令用于分析可载入模块的相依性。

10.加载模块

[root@host hybrid-wl]#modprobewl

至此,你的无线网卡等应该亮起了,恭喜你,能登陆互联网啦!


前面9、11是手动临时的解决方案,为了永久生效,需要进行相关自动化设置。

11.设置系统自动卸载模块

Couple of more steps are needed to get your module load every time the system boots. First, edit the /etc/modprobe.d/blacklist.conf file adding the lines:

在/etc/modprobe.d/blacklist.conf添加如下内容,若没有此文件就创建。以确保刚刚卸载的系统默认模块在下次不会启动

blacklist bcm43xx

blacklist b43

blacklist b43legacy

blacklist bcma

blacklist brcmsmac

blacklist ssb

blacklist ndiswrapper

12.设置系统自动加载模块

By doing so, you're preventing these modules from being loaded into kernel at boot time and conflicting with the wl module. Second, in order to load the wl module into the kernel on boot time, create/edit the file /etc/sysconfig/modules/kmod-wl.modules and copy-paste the following contents into it:

创建/etc/sysconfig/modules/kmod-wl.modules模块使系统默认加载

#!/bin/bashforMinlib80211 cfg80211 wl;domodprobe$M &>/dev/nulldone


至此,可以踏实用的无线了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 197,737评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,103评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 144,710评论 0 326
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,909评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,794评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,557评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,939评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,572评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,852评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,871评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,692评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,490评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,939评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,114评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,409评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,971评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,176评论 2 339

推荐阅读更多精彩内容