上次通过更换内核实现成功编译驱动无线网卡,但是启动到系统原内核下依然没有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 kernel

kernel.x86_64 3.10.0-327.el7 @anaconda/7.2

kernel-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]# ls

hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz lib Makefile src

编译

[root@king wireless7_2]# make

KBUILD_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 && make

KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd` clean

make[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 kernel

CLEAN /usr/local/other/wireless7_2/.tmp_versions

CLEAN /usr/local/other/wireless7_2/Module.symvers

make[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 version

Using CFG80211 API

LD /usr/local/other/wireless7_2/built-in.o

CC [M] /usr/local/other/wireless7_2/src/shared/linux_osl.o

CC [M] /usr/local/other/wireless7_2/src/wl/sys/wl_linux.o

CC [M] /usr/local/other/wireless7_2/src/wl/sys/wl_iw.o

CC [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 here

cfg80211_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 here

void 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.c

1460 // 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 && make

KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd` clean

make[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 kernel

CLEAN /usr/local/other/wireless7_2/.tmp_versions

CLEAN /usr/local/other/wireless7_2/Module.symvers

make[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 version

Using CFG80211 API

LD /usr/local/other/wireless7_2/built-in.o

CC [M] /usr/local/other/wireless7_2/src/shared/linux_osl.o

CC [M] /usr/local/other/wireless7_2/src/wl/sys/wl_linux.o

CC [M] /usr/local/other/wireless7_2/src/wl/sys/wl_iw.o

CC [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.o

Building modules, stage 2.

CFG80211 API is prefered for this kernel version

Using CFG80211 API

MODPOST 1 modules

CC /usr/local/other/wireless7_2/wl.mod.o

LD [M] /usr/local/other/wireless7_2/wl.ko

make[1]: Leaving directory `/usr/src/kernels/3.10.0-327.el7.x86_64'

没有报错

[root@king wireless7_2]# 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 wireless7_2]# make install

install -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 wl

wl 6445574 0

cfg80211 572836 1 wl

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

参考

1

2

bcm43142 linux 驱动下载,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. 三星 linux 电视软件下载中心,三星 SF-565P 多功能一体机驱动下载(ver.1.0.156) 版For Linux...

    三星 SF-565P 多功能一体机驱动下载(ver.1.0.156) 版For Linux (2012-07-11 16:09:05) 标签: 12.04 ubuntu 三星 打印机 驱动 it 这是 ...

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

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

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

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

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

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

  9. gts250 linux驱动下载,全面支持GTS250 GeForce 182.08版驱动下载

    作者: 陈晨 2009-03-04/15:15 [驱动中国 新闻]驱动频道 3月4日 近日,NVIDIA官方网站放出了其3月份的首款GeForce显卡驱动182.08版,而这款驱动的放出也意味着其最新 ...

  10. linux 商业游戏,Ubuntu下安装试玩原生Linux版商业游戏Braid

    这款原生Linux版商业游戏Braid国外出售价大约在80美元左右.每年在Linux平台上发布的原生商业游戏是屈指可数,而且这些游戏的质量也是参差不齐. 不过这款原生Linux版商业游戏Braid还是 ...

最新文章

  1. 正在搜索需要的文件_装机必备!分享4个电脑软件,3分钟搞定文件管理难题!...
  2. java wav 波形_java读取wav文件(波形文件)并绘制波形图的方法
  3. VTK:合并选择用法实战
  4. 安装mysql8.019命令符_MySQL 8.0.19安装教程(windows 64位)
  5. linux菜单系统,Linux修改grub菜单
  6. 奥特曼系列服务器芝庞顿,奥特曼:黑田笔下的怪兽,芝庞顿引人注目,五帝王造型诠释霸气...
  7. 2019 互联网月饼大赏!阿里开动物园,腾讯秀表情包,网易游戏最会玩!
  8. 迟来的2013年总结及算法工程师/研究员找工作总结
  9. 作业帮冯雪胡不归问题_作业帮学习平台微信服务号关注
  10. 聚宽 get_price 多个股票数据_上证指数(000001)股票历史数据,下载上证指数(000001历史数据_股票股市历史数据下载股票数据网...
  11. 最新STM32G0系列选型表1
  12. matlab只加盐噪声,我用matlab中的imnoise函数给图像加椒盐噪声为什么产生的噪声不是黑白的?...
  13. 使用SAXReader以XML方式解析excel
  14. 午夜分享女人的绝对隐私
  15. Spring中关于IOC的详解
  16. Python爬取某宝商品数据案例:100页的价格、购买人数等数据
  17. 商品的价格术语(外贸知识三)
  18. 青玉案·元夕 【宋代】辛弃疾
  19. 2022-4-7 基于单片机的篮球记分器(LCD1602)(公众号:风吹摇铃 奔赴星海)
  20. 小程序+云开发---基础篇

热门文章

  1. jQuery图片播放插件ColorBox使用方法
  2. SVN更新操作提示需要清理操作,清理操作提示乱码,更新SVN失败【解决方案】
  3. 计算机普通用户禁止修改c盘,win10系统禁止Guest账户访问C盘的设置技巧
  4. oracle发生20001,Oracle10g重建EM 报ORA-20001: SYSMAN already exists
  5. 很好听的曲子《红枣树》,歌词写的很好,摘抄一下
  6. android popWindow组件微信式实现(较完整版)
  7. 如何测试一个串口调试助手软件,串口调试助手(SComAssistant)
  8. Docker-1 Docker简介,CentOS8安装Docker-ce,配置镜像加速器
  9. pytorch 模型微调
  10. PHP知识大全【高级】