上次通过更换内核实现成功编译驱动无线网卡,但是启动到系统原内核下依然没有bcm43142的驱动,遂准备在原内核下编译驱动,记录一下

ps:更推荐这种方法,避免因更换内核出现其他兼容性问题

1.准备驱动包

hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
点我下载 密cmet
下载拷贝进u盘,将源码包拷贝至/usr

2.安装工具

安装gccyum install -y gcc,如已安装可跳过
安装内核对应版本的kernel-headers,kerner-devel,本次使用当前系统镜像作为yum源,所以版本也是一致的

 [root@king ~]# yum list|grep kernelkernel.x86_64                           3.10.0-327.el7             @anaconda/7.2kernel-devel.x86_64                     3.10.0-327.el7             @rhel7.2_iso kernel-headers.x86_64                   3.10.0-327.el7             @rhel7.2_iso 

3.编译源码与安装驱动

复制源码包并解压

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

编译

 [root@king wireless7_2]# makeKBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`make: *** /lib/modules/3.10.0-327.el7.x86_64/build: No such file or directory.  Stop.make: *** [all] Error 2

报错,分析错误原因,发现/lib/modules/3.10.0-327.el7.x86_64/build软链接失效,重做之

 ln -s /usr/src/kernels/3.10.0-327.el7.x86_64/ /lib/modules/3.10.0-327.el7.x86_64/build  #注意做软链接要写绝对路径

重新编译

 [root@king wireless7_2]# make clean && makeKBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd` cleanmake[1]: Entering directory `/usr/src/kernels/3.10.0-327.el7.x86_64'CFG80211 API is prefered for this kernel version/usr/local/other/wireless7_2/Makefile:85: Neither CFG80211 nor Wireless Extension is enabled in kernelCLEAN   /usr/local/other/wireless7_2/.tmp_versionsCLEAN   /usr/local/other/wireless7_2/Module.symversmake[1]: Leaving directory `/usr/src/kernels/3.10.0-327.el7.x86_64'KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`make[1]: Entering directory `/usr/src/kernels/3.10.0-327.el7.x86_64'CFG80211 API is prefered for this kernel versionUsing CFG80211 APILD      /usr/local/other/wireless7_2/built-in.oCC [M]  /usr/local/other/wireless7_2/src/shared/linux_osl.oCC [M]  /usr/local/other/wireless7_2/src/wl/sys/wl_linux.oCC [M]  /usr/local/other/wireless7_2/src/wl/sys/wl_iw.oCC [M]  /usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.o/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_cfg80211_get_station’:/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:1460:20: error: ‘STATION_INFO_TX_BITRATE’ undeclared (first use in this function)sinfo->filled |= STATION_INFO_TX_BITRATE;^/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:1460:20: note: each undeclared identifier is reported only once for each function it appears in/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:1477:20: error: ‘STATION_INFO_SIGNAL’ undeclared (first use in this function)sinfo->filled |= STATION_INFO_SIGNAL;^/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c: At top level:/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:1799:2: warning: initialization from incompatible pointer type [enabled by default].get_station = wl_cfg80211_get_station,^/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:1799:2: warning: (near initialization for ‘wl_cfg80211_ops.get_station’) [enabled by default]/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_alloc_wdev’:/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:1894:22: error: incompatible types when assigning to type ‘const struct wiphy_wowlan_support *’ from type ‘struct wiphy_wowlan_support’wdev->wiphy->wowlan = wl_wowlan_support;^/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_inform_single_bss’:/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:2037:3: error: incompatible type for argument 3 of ‘cfg80211_inform_bss’(const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);^
In file included from /usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:4029:1: note: expected ‘enum cfg80211_bss_frame_type’ but argument is of type ‘const u8 *’cfg80211_inform_bss(struct wiphy *wiphy,^/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:2037:3: warning: passing argument 7 of ‘cfg80211_inform_bss’ makes integer from pointer without a cast [enabled by default](const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);^
In file included from /usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:4029:1: note: expected ‘u16’ but argument is of type ‘const u8 *’cfg80211_inform_bss(struct wiphy *wiphy,^/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:2037:3: warning: passing argument 8 of ‘cfg80211_inform_bss’ makes pointer from integer without a cast [enabled by default](const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);^
In file included from /usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:4029:1: note: expected ‘const u8 *’ but argument is of type ‘size_t’cfg80211_inform_bss(struct wiphy *wiphy,^/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:2037:3: error: too few arguments to function ‘cfg80211_inform_bss’(const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);^
In file included from /usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:4029:1: note: declared herecfg80211_inform_bss(struct wiphy *wiphy,^/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_notify_connect_status’:/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:2124:4: warning: passing argument 3 of ‘cfg80211_ibss_joined’ makes pointer from integer without a cast [enabled by default]cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);^
In file included from /usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:4219:6: note: expected ‘struct ieee80211_channel *’ but argument is of type ‘unsigned int’void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,^/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:2124:4: error: too few arguments to function ‘cfg80211_ibss_joined’cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);^
In file included from /usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:4219:6: note: declared herevoid cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,^
make[2]: *** [/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.o] Error 1
make[1]: *** [_module_/usr/local/other/wireless7_2] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.10.0-327.el7.x86_64'
make: *** [all] Error 2

发现报错,依次排错
由报错信息知wl_cfg80211_hybrid.c文件第1460,1477,1894,2037,2124行有错,做出如下更改

 [root@king wireless7_2]# vim src/wl/sys/wl_cfg80211_hybrid.c1460 //              sinfo->filled |= STATION_INFO_TX_BITRATE;1477 //              sinfo->filled |= STATION_INFO_SIGNAL;1894         wdev->wiphy->wowlan = &wl_wowlan_support;2035         cbss = cfg80211_inform_bss(wiphy, channel, CFG80211_BSS_FTYPE_UNKNOWN, (const u8 *)(bi->BSSID.octet),2036                 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,2037                 (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);2124                         cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, &wl->conf->channel, GFP_KERNEL);

tips:vim里按冒号输入set nu显示行号,冒号后接行号定位到该行

重新编译

 [root@king wireless7_2]# make clean && makeKBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd` cleanmake[1]: Entering directory `/usr/src/kernels/3.10.0-327.el7.x86_64'CFG80211 API is prefered for this kernel version/usr/local/other/wireless7_2/Makefile:85: Neither CFG80211 nor Wireless Extension is enabled in kernelCLEAN   /usr/local/other/wireless7_2/.tmp_versionsCLEAN   /usr/local/other/wireless7_2/Module.symversmake[1]: Leaving directory `/usr/src/kernels/3.10.0-327.el7.x86_64'KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`make[1]: Entering directory `/usr/src/kernels/3.10.0-327.el7.x86_64'CFG80211 API is prefered for this kernel versionUsing CFG80211 APILD      /usr/local/other/wireless7_2/built-in.oCC [M]  /usr/local/other/wireless7_2/src/shared/linux_osl.oCC [M]  /usr/local/other/wireless7_2/src/wl/sys/wl_linux.oCC [M]  /usr/local/other/wireless7_2/src/wl/sys/wl_iw.oCC [M]  /usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.o/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:1799:2: warning: initialization from incompatible pointer type [enabled by default].get_station = wl_cfg80211_get_station,^/usr/local/other/wireless7_2/src/wl/sys/wl_cfg80211_hybrid.c:1799:2: warning: (near initialization for ‘wl_cfg80211_ops.get_station’) [enabled by default]LD [M]  /usr/local/other/wireless7_2/wl.oBuilding modules, stage 2.CFG80211 API is prefered for this kernel versionUsing CFG80211 APIMODPOST 1 modulesCC      /usr/local/other/wireless7_2/wl.mod.oLD [M]  /usr/local/other/wireless7_2/wl.komake[1]: Leaving directory `/usr/src/kernels/3.10.0-327.el7.x86_64'

没有报错

 [root@king wireless7_2]# lsbuilt-in.o                                       modules.order   wl.mod.chybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz  Module.symvers  wl.mod.olib                                              src             wl.oMakefile                                         wl.ko

发现已生成驱动文件wl.ko

安装驱动文件

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

4.驱动文件加载和配置

加载驱动文件

 [root@king wireless7_2]# insmod wl.ko[root@king wireless7_2]# lsmod|grep wlwl                   6445574  0 cfg80211              572836  1 wl

发现右上角出现wifi选项,驱动加载成功,可以连接wifi啦,Enjoying it!

参考
1
2

转载于:https://blog.51cto.com/kking/2096757

CentosRedhat下bcm43142博通无线网卡linux驱动之二相关推荐

  1. CentosRedhat下bcm43142博通无线网卡linux驱动

    最近要使用linux系统,安装linux后发现没有无线网络,猜想是因为该linux系统没有支持的驱动,遂准备自己编译安装驱动,撰写此文予以记录. 更新:虽然这种方法成功实现驱动bcm43142,但是内 ...

  2. Fedora 博通无线网卡 linux 驱动

    最好是在联网的情况下.断网从官网上下载驱动没有这个方法好用. Fedora: ------ su -c 'rpm -Uvh http://download1.rpmfusion.org/free/fe ...

  3. linux bcm43142无线网卡驱动安装,Centos7.7安装bcm43142(博通)无线网卡驱动(示例代码)...

    Centos7.7安装bcm43142(博通)无线网卡驱动 参考链接: 首先安装环境依赖 yum group install 'Development Tools' yum install redha ...

  4. 博通蓝牙驱动linux,基于Android8.1的博通bcm89342蓝牙驱动的驱动移植记录-Go语言中文社区...

    说明 本文档是基于Android 8.1版本的一款博通蓝牙的驱动移植全过程记录.本驱动是通过/dev/ttyS2和蓝牙进行通信.因为较android以前的版本有很大变化尤其是上层关于蓝牙协议栈的部分, ...

  5. 基于Android8.1的博通bcm89342蓝牙驱动的驱动移植记录

    基于Android8.1的博通蓝牙BCM89342的驱动移植记录 说明 一 .软硬件平台 二.蓝牙移植流程 2.1 kernel 对蓝牙的驱动支持配置 2.2 kernel层编写蓝牙电源管理(bt r ...

  6. 笔记本安装Ubuntu 无法使用 Broadcom(博通) 无线网卡实现wifi上网的解决方法

    笔记本安装Ubuntu 无法使用 Broadcom(博通) 无线网卡实现wifi上网的解决方法 参考文章: (1)笔记本安装Ubuntu 无法使用 Broadcom(博通) 无线网卡实现wifi上网的 ...

  7. 嵌入式Linux驱动笔记(二十四)------framebuffer之使用spi-tft屏幕(上)

    你好!这里是风筝的博客, 欢迎和我一起交流. 最近入手了一块spi接口的tft彩屏,想着在我的h3板子上使用framebuffer驱动起来. 我们知道: Linux抽象出FrameBuffer这个设备 ...

  8. 360无线网卡linux驱动下载,如何在Linux下写无线网卡的驱动

    满意答案 如所指的是如何在Linux下载无线网卡的驱动,具体操作步骤如下:(1)先确定无线网卡型号,因驱动安装和型号是密切相关的,不同的型号,安装和下载驱动有所不同,但原理是一样的.图例为无线网卡型号 ...

  9. linux博通2070蓝牙驱动,Broadcom博通BCM 2070/20702系列蓝牙设备驱动怎么样

    20 楼 华军网友 :2017-06-22 发表 之前听同学说这里有Broadcom博通BCM 2070/20702系列蓝牙设备驱动12.0.1.305版下载,还真有,我找Broadcom博通BCM ...

  10. 水星usb无线网卡linux驱动,水星MW150US安装Linux驱动

    水星MW150US安装Linux驱动 2013-4-29 王健宇 Linux 假期前一天,和同事同买的无线网卡到货了,查了一下没有linux驱动,直接崩溃掉:当天晚上查到了这款无线网卡芯片是realt ...

最新文章

  1. LeetCode: 344. Reverse String
  2. SAP QM 采购货物收到第三方仓库,转库回工厂仓库之后质检之处理
  3. 计算机程序设计员_第二届北京大工匠计算机程序设计员、网络与信息安全管理员挑战赛:一场互联网“战场”的巅峰对决...
  4. css 图片居中放大,不同比例图片居中缩放显示的三种方法
  5. java编写十个评委_Java题 在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分...
  6. oracle 11g 大量废连接占满数据库连接问题处理
  7. 深度学习表征的不合理有效性——从头开始构建图像搜索服务(二)
  8. 我如何构建SiriWaveJS库:看一下数学和代码
  9. extjs 获取id的值_Extjs combox获取显示值和ID值
  10. C#利用正则表达式实现字符串搜索
  11. linux使用RAM_DISK根文件系统基本过程
  12. 英语不好,也能让你看懂man手册
  13. 关于类的符号输入过程第三篇
  14. pdf密码忘了怎么解除
  15. 初学模糊逻辑控制(Fuzzy Logic Control)
  16. 军事ar虚拟现实电子沙盘系统的功能
  17. 微信公众号配置网页授权域名报错:无法访问xxx指向的web服务器或虚拟主机的目录
  18. WIN10系统设置默认文件查看方式
  19. 大数据在金融领域主要面临哪些风险,应该怎么解决?
  20. oracle 查看回收站空间,ORACLE 回收站当前状态查询整理

热门文章

  1. Java8与传统的日期和时间类详解
  2. 利用npm命令创建一个Vue项目并安装依赖
  3. MUI Picker选择器 自定义省市地址三级联动
  4. C++中析构函数的作用,
  5. jQuery(非插件)制作商城放大镜效果
  6. centOS 安装远程桌面
  7. 用.NET的File控件上传文件的解决方案
  8. 浏览器,图片格式及特点
  9. 随着浏览器窗口缩小表格出现横向滚动条
  10. Python-flask中数据库连接池DBUtils