Fedora21下配置安装无线网卡驱动(BCM43142)

1:查看自己无线网卡型号
# lspci -n|grep 14e4
2:然后到官网下载linux 32-bit/64-bit驱动
http://www.broadcom.com/support/802.11/linux_sta.php
3:解压驱动程序
# mkdir hybrid_wl
# cd hybrid_wl
# tar xzvf ../hybrid-v35_64-nodebug-pcoem-6_30_223_248.tar.gz
4:更新系统内核和完成新内核启动
#yum update kernel
# yum install kernel-headers kernel-devel gcc
5:查看内核版本
#uname -r
6:进行/lib/modules/`uname -r`/build的软链接
ln -sf /usr/src/kernels/3.18.3-201.fc21.x86_64 /lib/modules/3.18.3-201.fc21.x86_64/build
7:make clean
8:make API=WEXT
9:
这个错误是因为编译选项开启了-Werror
解决:
修改/lib/modules/`uname -r`/build/Makefile
#gedit /lib/modules/`uname -r`/build/Makefile
查找-Werror 去掉下面4段文本

-Werror-implicit-function-declaration \
,-Werror=implicit-int

,-Werror=strict-prototypes
,-Werror=date-time
10:
这个错误说“alloc_netdev”需要 4 个参数,但只给出了 3 个,所以要给他加一个参数
解决:
#gedit /home/yns/bcm/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);
11:
这个错误说提供给函数‘cfg80211_ibss_joined’的实参太少,要给他加一个参数
解决:
#gedit /home/yns/bcm/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);
12:
make install
13:
禁用任何其他Broadcom的无线设备驱动程序(翻译自驱动readme)
查找有安装的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
14:
载入驱动模块
# modprobe lib80211
# modprobe cfg80211
# insmod wl.ko
现在可以菜单里可以看到wifi了
14:
# cp wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
# depmod -a

posted @ 2015-01-31 14:00  闹闹荼荼  阅读(721)  评论(0)    收藏  举报