Nick_Pan程序员部落格

导航

Fedora无线上网Broadcom驱动安装

Fedora20安装好后,没有无线上网的驱动。经过两个晚上的摸索,终于把它搞定了!参考的资料有:

http://tieba.baidu.com/p/3415973758

http://blog.163.com/njut_wangjian/blog/static/165796425201211523617781/

感谢其作者!下面是启动成功截图。

下面记录下驱动安装过程:

1.准备

1.1更新系统

#yum update

# yum install kernel-headers kernel-devel gcc

完成后重启系统

#yum reboot

1.2准备驱动程序

先查看一下无线网卡

#lspci

看到是我的无线网卡是BCM43142型号的,于是去下载驱动程序http://www.broadcom.com/support/802.11/linux_sta.php

驱动程序压缩包是hybrid-v35_64-nodebug-pcoem-6_30_223_248.tar.gz

2.编译驱动程序

2.1创建一个文件夹准备放置驱动程序,我是放在这里

#mkdir /usr/local/src/hybrid

#mv /home/nick/download/hybrid-v35_64-nodebug-pcoem-6_30_223_248.tar.gz /usr/local/src/hybrid

解压驱动程序

#tar -xvf /usr/local/src/hybrid/hybrid-v35_64-nodebug-pcoem-6_30_223_248.tar.gz

进入驱动程序目录

#cd /usr/local/src/hybrid

2.2开始编译

#make clean

#make API=WEXT

这里遇到编译错误:

错误说“alloc_netdev”需要 4 个参数,但只给出了 3 个,所以要给他加一个参数
解决:
#gedit src/wl/sys/wl_linux.c
查找
dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
加个参数,改成下面这句
dev = alloc_netdev(sizeof(priv_link_t), intf_name,NET_NAME_UNKNOWN, ether_setup);

保存后再次编译,顺利通过。为了获得cfg80211,继续编译

#make API=CFG80211

遇到两个错误:

一个错误说提供给函数‘cfg80211_ibss_joined’的实参太少,要给它加一个参数
解决:
#gedit src/wl/sys/wl_cfg80211_hybrid.c
查找
cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
给它加个参数,改成下面这句
cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid,&wl->conf->channel, GFP_KERNEL);

另一个错误:‘cfg80211_inform_bss’的第 3 个实参类型不兼容

解决:
#gedit src/wl/sys/wl_cfg80211_hybrid.c
查找cfg80211_inform_bss,将

cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet),
        0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
        (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);

改为

cbss = cfg80211_inform_bss(wiphy, channel, CFG80211_BSS_FTYPE_UNKNOWN,(const u8 *)(bi->BSSID.octet),
        0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
        (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);

再次编译

#make API=CFG80211

编译通过,至此获得了驱动文件wl.ko

3安装驱动

3.1禁用任何其他Broadcom的无线设备驱动程序

查找有安装的Broadcom的无线设备驱动程序
# lsmod | grep "brcmsmac\|b43\|ssb\|bcma\|wl"
用下面的命令删除
# rmmod b43
# rmmod brcmsmac
# rmmod ssb
# rmmod bcma
# rmmod wl
用下面的命令加入黑名单
# echo "blacklist ssb" >> /etc/modprobe.d/blacklist.conf
# echo "blacklist bcma" >> /etc/modprobe.d/blacklist.conf
# echo "blacklist b43" >> /etc/modprobe.d/blacklist.conf
# echo "blacklist brcmsmac" >> /etc/modprobe.d/blacklist.conf

3.2载入驱动模块
# modprobe lib80211
# modprobe cfg80211
# insmod wl.ko
现在可以菜单里可以看到wifi了

3.3设置开机自动载入驱动
# cp wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
# depmod -a
# echo modeprobe wl >> /etc/rc.local

3.4检查

#lsmod | grep "b43\|wl\|ssb\|bcma"

如出现

表示安装成功。

posted on 2015-04-16 23:46  Nick.Pan  阅读(810)  评论(0)    收藏  举报