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"
如出现
表示安装成功。
浙公网安备 33010602011771号