Centos&Redhat下bcm43142博通無線網卡linux驅動

最近要使用linux系統,安裝linux後發現沒有無線網絡,猜想是因爲該linux系統沒有支持的驅動,遂準備自己編譯安裝驅動,撰寫此文予以記錄。


更新:雖然這種方法成功實現驅動bcm43142,但是內核版本的不一致可能會導致其他問題,我暫時發現的是,電腦背光調整失靈,猜想也是因爲某些驅動版本與內核版本不一致引發。


1.查看無線網卡型號**

 [root@king ~]# lspci|grep Network       #列出pci設備並過濾關鍵字Network
 03:00.0 Network controller: Broadcom Corporation BCM43142 802.11b/g/n (rev 01)

發現無線網卡型號爲BCM43142,支持802.11b/g/n協議

2.下載驅動包

hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
點我下載 密cmet
下載拷貝進u盤,將源碼包拷貝至/usr

3.安裝gcc編譯器

可直接通過yum命令安裝yum install -y gcc,看到Complete!即可。
提醒:yum命令安裝軟件時雖然可以解決依賴性問題,但是也不可避免影響到移除軟件時的依賴性問題,特別是不要安裝高於你係統版本的軟件包,否則由於依賴性會造成一系列的麻煩。

4.安裝與kernel版本一致的kernel-headers,kerner-devel 工具

可先查看yum源中的包與內核版本是否一致,由於我安裝的是redhat7.2,但是我的yum源掛載的是redhat7.0的鏡像,所以kernel版本與kernel-headers,kerner-devel 不一致是自然而然的,查看方法如下:

 [root@king ~]# yum list|egrep "kernel-headers|kernel-devel"
 kernel-devel.x86_64                      3.10.0-123.el7            @httpd_iso   
 kernel-headers.x86_64                    3.10.0-123.el7            @httpd_iso  
 [root@king ~]# uname -r
 3.10.0-327.el7.x86_64

當yum源中kernel-headers,kerner-devel版本與kernel版本不一致,有兩種解決辦法,一是自己去下載和內核版本一致的kernel-headers,kerner-devel rpm包並安裝,當然過程中提示需要安裝各種依賴性的包,又要去下載對應包進行安裝,顯然太麻煩,所以我採用第二種方法,安裝此yum源中的kernel並從此kernel啓動,再通過yum安裝kernel-headers,kerner-devel

查看yum源中kernel版本

 [root@king ~]# yum list|grep kernel.x86_64
 kernel.x86_64                            3.10.0-327.el7            @httpd_iso 

安裝kernel,直接yum install -y kernel,看到Complete!後輸入reboot重啓,選擇從新安裝的內核版本啓動,開機後打開終端並輸入

 [root@king ~]# yum install -y kernel-headers kernel-devel

看到Complete!後輸入

 [root@king ~]# yum list installed |egrep "kernel*"
 kernel.x86_64                           3.10.0-123.el7             @httpd_iso   
 kernel-devel.x86_64                     3.10.0-123.el7             @httpd_iso   
 kernel-headers.x86_64                   3.10.0-123.el7             @httpd_iso  

發現版本一致,可以進行下一步

5.解壓驅動源碼包並進行編譯安裝

拷貝源碼包並解壓

 [root@king ~]# mkdir /usr/local/wireless
 [root@king ~]# cp /usr/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz /usr/local/wireless
 [root@king ~]# cd /usr/local/wireless
 [root@king ~]# tar zxf hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
 [root@king wireless]# ls
 hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz  lib  Makefile  src

編譯

 [root@king wireless]# make API=CFG80211
 KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
 make[1]: Entering directory `/usr/src/kernels/3.10.0-123.el7.x86_64'
 CFG80211 API specified in command line
 Using CFG80211 API
  LD      /usr/local/wireless/built-in.o
  CC [M]  /usr/local/wireless/src/shared/linux_osl.o
  CC [M]  /usr/local/wireless/src/wl/sys/wl_linux.o
  CC [M]  /usr/local/wireless/src/wl/sys/wl_iw.o
  CC [M]  /usr/local/wireless/src/wl/sys/wl_cfg80211_hybrid.o
  LD [M]  /usr/local/wireless/wl.o
  Building modules, stage 2.
 CFG80211 API specified in command line
 Using CFG80211 API
  MODPOST 1 modules
  CC      /usr/local/wireless/wl.mod.o
  LD [M]  /usr/local/wireless/wl.ko
 make[1]: Leaving directory `/usr/src/kernels/3.10.0-123.el7.x86_64'

沒有報錯

 [root@king wireless]# ls
 built-in.o                                       modules.order   wl.mod.c
 hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz  Module.symvers  wl.mod.o
 lib                                              src             wl.o
 Makefile                                         wl.ko

生成wl.ko文件,此文件就是我們需要的驅動文件

驅動文件安裝

 [root@king wireless]# make install
 install -D -m 755 wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless

6.加載運行驅動

執行以下語句,去除已加載的模塊

 [root@king wireless]# modprobe -r b43
 [root@king wireless]# modprobe -r bcma
 [root@king wireless]# modprobe -r ssb
 [root@king wireless]# modprobe -r bcm

然後編輯配置文件

 [root@king wireless]# vim /etc/modprobe.d/blacklist.conf 
 blacklist b43
 blacklist ssb
 blacklist bcma
 blacklist bcm

加載新的驅動

 [root@king wireless]# modprobe cfg80211
 [root@king wireless]# modprobe lib80211
 [root@king wireless]# insmod wl.ko
 [root@king wireless]# modprobe wl

輸入reboot重啓系統,然後執行以下語句

 [root@king ~]# lsmod|grep wl
 wl                   6441478  0 
 cfg80211              482668  1 wl

發現驅動已經加載,右上角出現wifi選項,可以連接wifi啦,Enjoying it!

參考:
1
2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章