安装 opensuse 几天以后,发现它比 windows 上网还要慢,找了一些相关文档来看,发现 opensuse 自带的驱动不支持我的无线网卡(4313),只好自己去官方网站拿了编译安装。如果你的源里面有官方的驱动,可以直接安装,毕竟自己编译是很麻烦的,为了解决各种半路冒出来的问题我鼓捣了一个上午。
首先去 broadcom 官网下载相应的驱动包,看得懂英文的朋友可以把说明文档一块下载。(网址: broadcom.com/support/802.11/linux_sta.php )
** 1. 安装开发包 **
正式编译之前需要安装 kernel-devel 软件包,你可以到 计算机 - 安装 / 移除软件 那搜索。
** 2. 编译 **
驱动下载好后,进入驱动压缩包所在目录,打开终端(默认快捷键 f4), 在终端输入以下命令:
mkdir hybrid_wl
cp 你的驱动压缩包 hybrid_wl
cd hybrid_wl
tar xzf 你的驱动压缩包
如果提示你需要超级用户权限可以提前输入 su。
当然也可以不用命令行,直接解压安装包重命名就行。
然后在终端输入:
make clean (可选的,你之前没有编译过东西就不用清理)
make
编译过程中几乎一定会出现如下提示:asm/system.h: No such file or directory
你可以去找它需要的旧内核源文件,不过这里推荐一个国外朋友的方法:
进入 hybrid_wl/src/wl/sys,找到 wl_linux.c,打开,删除第 43 行的
include <asm/system.h>
代码,然后搜索
.ndo_set_multicast_list
并替换为
.ndo_set_rx_mode
。然后再重新回到 hybrid_wl 目录 make clean 及 make。
(出处: blog.sina.com.cn/s/blog_7fcb1aef0100y786.html )
** 3. 删除旧的驱动 **
如果你没有安装过无线网卡驱动可以跳过这步。
在终端输入以下下命令
lsmod | grep "b43|ssb|bcma|wl"
删除 b43、 ssb、 bcma 、wl 模块
rmmod b43
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
重启计算机
现在你不能上网了,如果你没有保存我的帖子就悲剧了,哈哈。
** 4 安装并设置开机启动 **
进入 hybrid_wl,打开终端,输入:
cp wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
depmod -a
echo modeprobe wl >> /etc/rc.local
重启计算机,记得打开你的无线物理开关。
注:Linux 内核默认自带的驱动支持 4313,可以到: wireless.kernel.org/en/users/Drivers/brcm80211 下载。
仅限 braodcom 家族无线网卡,部分内容参考官方说明文档。
希望版主还是要设置精华贴和帖子自定义排序。这样新手才不用在板块里瞎找。