红联Linux门户
Linux帮助

fedora16下编译无线网卡驱动成功

发布时间:2012-02-24 11:18:08来源:红联作者:火蒸气
大学里不知有多少开源爱好者,在为不同版本的Linux驱动而头疼。特别是像我这里用校园网的情况,有线上网必须要安
装“星空极速”这个垃圾软件拨号才能上网。想用无线,用的fedora又不像ubuntu那样有默认无线网卡驱动,所以还要自己下载编
译安装。本以为下载,编译一下不就行了?可真正做的时候还真没那么容易。鉴于今晚终于将数星期努力付诸实践并取得成功,个
人把安装过程记录一下。一来帮住遇到同样情况的小白们,发扬开源社区精神。二来抒发一下终于能在linux里上网的激动心情。。
(高手莫喷阿。。。。)。
OK,废话完毕,进入正题。
首先说明,我的无线网卡是Broadcom Corporation BCM4313 ,系统是DVD版本Linux fedora 16 3.1.0-7.fc16.i686.PAE完全
安装版。(这里建议最好安装完全版,因为编译环境需要GCC,kernel-headers,kernel-devel. PAE版本的还需要kernel-PAE-
devel。如果安装的是桌面版的或者没有选择安装这些,就需要先手动安装,相当麻烦的)。

命令行下安装驱动应该知道基本的复制,解压,文本编辑命令。(你要是还不知道这些,就请先看看基础命令再来联网吧!)

一:确认无线网卡 [....]# lspci -vnn|grep 14e4
03:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11b/g LP-PHY [14e4:4727] (rev 01)
这是我的无线网卡信息

二:安装编译环境 [....]# yum install kernel-headers kernel-devel gcc
这里要提一下,可能会遇到很尴尬的问题:yum安装是需要联网的,而我们正在做的事就是想让系统连上网。所以我前面说最好安 装完全版的系统,这样编译环境就已经配置好了。再说作为练习机,最好是安装所有的软件。

三:下载驱动,解压到 /usr/local/src/
我的驱动压缩包是从这里下载的http://www.broadcom.com/support/802.11/linux_sta.php

四:编译 进入解压后的目录 ["这里是解压后的目录"]# make
这里应该会出现错误如下
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: 进入目录“/usr/src/kernels/3.1.0-7fc16.i686.PAE”
LD /usr/local/src/hybrid-wl/built-in.o
CC [M] /usr/local/src/hybrid-wl/src/shared/linux_osl.o
CC [M] /usr/local/src/hybrid-wl/src/wl/sys/wl_linux.o
/usr/local/src/hybrid-wl/src/wl/sys/wl_linux.c: 在函数‘wl_attach’中:
/usr/local/src/hybrid-wl/src/wl/sys/wl_linux.c:485:3: 错误:隐式声明函数‘init_MUTEX’ [-Werror=implicit-function-declaration]
cc1:有些警告被当作是错误


make[2]: *** [/usr/local/src/hybrid-wl/src/wl/sys/wl_linux.o] 错误 1
make[1]: *** [_module_/usr/local/src/hybrid-wl] 错误 2
make[1]: 离开目录“/usr/src/kernels/3.1.0-7fc16.i686.PAE”
make: *** [all] 错误 2
解决方法为:[....]# vi /src/wl/sys/wl_linux.c
进入文本编辑,找到init_MUTEX(&wl->sem).....................这个,需要慢慢找,耐心。。。。
改为sema_init(&wl->sem,1)
并在下一行加上 :
#ifndef init_MUTEX
sema_init(&wl->sem,1);
#else
init_MUTEX(&wl->sem);
#endif...............................................................加的这段,有点编程基础的应该明白吧。
保存退出。重新编译。
这样弄完,编译应该没问题了。要是还有问题,那估计是上面那个字符打错了,注意细节!!!

五:后续工作 进入目录 # insmod wl.ko
应该会出现"error insort 'wl.ko'............."这样的错误。
解决方法:目录 # cp wl.ko /lib/modules/3.1.0-7.fc16.i686.PAE/kernel/net/wireless/
之后重复 insmod wl.ko
然后 #depmod -a
#modprobe wl
重启
#echo modprobe wl>>/etc/rc.local

之后。。。。。。。。。。。。。。惊喜!!!!!!!!!!

后记:fedora 15与16有继承关系,在15中应该也行、、、、、、、
文章评论

共有 32 条评论

  1. dlchengzi 于 2014-05-07 11:27:48发表:

    很好,很强大!

  2. chushihua 于 2014-01-12 21:00:22发表:

    路过!!!
    不发表意见……

  3. asd001897 于 2013-10-16 20:58:34发表:

    好东西mark一下

  4. bennic 于 2013-08-13 16:48:31发表:

    支持一下,我的fedora 19使用USB无线网卡(rtl8187l)信号很好,速度很慢,还老是掉线(驱动是系统自带的)。使用笔记本自带的无线网卡就很好用。哪位高手知道怎么回事还请指点一下。

  5. gky2009514 于 2012-12-07 12:49:16发表:

    新手完成任务,求下书籍~

  6. gxggzsq 于 2012-10-18 10:57:06发表:

    好样的

  7. 寂寞弯刀 于 2012-10-05 00:20:54发表:

    学习感谢楼主!!!

  8. xulihang 于 2012-06-10 17:51:28发表:

    支持lz,不过感觉fedora的无线驱动还是挺新挺全的啊。

  9. 千里楼 于 2012-06-09 13:48:40发表:

    玩linux就是要有折腾的觉悟

  10. 火蒸气 于 2012-05-27 23:03:36发表:

    :0w5ty(1 22# hongzuo2012

  11. 火蒸气 于 2012-05-27 23:02:37发表:

    21# livip2006


    额,,,,我记得我没有配置内核啊??。。我写的就是我的全过程。。要不你先按这个来一遍试试???

  12. hongzuo2012 于 2012-04-30 15:33:35发表:

    dddd

  13. livip2006 于 2012-04-27 19:36:22发表:

    19# 火蒸气
    我已经用yum install kernel-devel gcc 命令安装了
    但是看了很多帖子说内核要再配置一下,再配置的这个过程卡住了
    我是用ln -s /usr/src/kernels/<原版本号> /lib/modules/<新版本号>build来配置的,但是始终有问题
    执行make install命令后显示的是cannot find kernel version<新版本号>
    楼主最好能告知下你怎么配置的内核?

  14. 火蒸气 于 2012-04-27 18:59:31发表:

    17# hezonghang


    这个,,,,没点基础还是别搞这个了。。ubuntu有好好地无线。。。。

  15. 火蒸气 于 2012-04-27 18:57:32发表:

    18# livip2006


    你是kernel-headers 这个还没安装是吧,,,能用有线的话直接yum就行。。没有有线就把安装盘设置成yum源安装。。怎么设置网上都有。。。

  16. livip2006 于 2012-04-26 21:08:16发表:

    1# 火蒸气
    楼主你的第二步能详细说下么,本人使用centos6.2的不太清楚怎么编译内核(已经完成yum install kernel-devel gcc)

  17. hezonghang 于 2012-04-26 09:56:22发表:

    {:3_116:}那我什么都不会,就只想无线上网又想用LINUX的新感学怎办呢,就是WIFI没装吧,该去哪 找呀,找了怎么安装呀?

  18. fate3008 于 2012-03-30 10:40:03发表:

  19. sanshanyu 于 2012-03-28 08:46:45发表:

    谢谢分享:0w5ty(1

  20. yzqt86 于 2012-03-21 22:01:29发表:

    谢谢分享

  21. alick 于 2012-02-26 14:19:15发表:

    [i=s] 本帖最后由 alick 于 2012-2-26 14:25 编辑 [/i]

    赞楼主分享!

    其实,如上面有网页所说,简单的方法是启用rpmfusion的软件源,直接yum安装 kmod-wl 软件包。当然,可能事先网络本身不可用,那需要直接上网把rpm包下载到本机然后yum安装。PAE 内核所对应的软件包名中也含PAE,如kmod-wl-PAE

    另外可以不用 kmod-wl 而用 akmod-wl,二者的区别是前者是预先编译好的二进制内核模块,后者则是每当kernel升级后在本机自动编译新内核模块。

  22. 火蒸气 于 2012-02-25 18:49:04发表:

    10# lyc256


    还好吧,我的fedora 16还没出现过什么差错。。。

  23. Growth兆 于 2012-02-25 09:36:58发表:

    感谢火蒸气的分享,本贴加入到论坛顶置的Linux应用索引贴中

  24. lyc256 于 2012-02-25 09:10:47发表:

    broadcom的官方linux驱动对2.6.38以上的内核支持不好
    可能会出问题:0)1
    我的4321就经常死机
    换了b43的驱动就好了

  25. Buyto 于 2012-02-25 08:58:15发表:

    好样的

  26. lyc256 于 2012-02-25 08:51:03发表:

    引用:
    6# lyc256


    这个kmod-wl是无线网卡驱动?我怎么一搜把博通的驱动给搜出来了?
    火蒸气 发表于 2012-2-24 21:35

    启用rpnfusion源
    yum install kmod-wl-PAE

  27. 火蒸气 于 2012-02-24 21:35:09发表:

    6# lyc256


    这个kmod-wl是无线网卡驱动?我怎么一搜把博通的驱动给搜出来了?

  28. lyc256 于 2012-02-24 19:42:55发表:

    引用:
    大学里不知有多少开源爱好者,在为不同版本的Linux驱动而头疼。特别是像我这里用校园网的情况,有线上网必须要安
    装“星空极速”这个垃圾软件拨号才能上网。想用无线,用的fedora又不像ubuntu那样有默认无线网卡驱动 ...
    火蒸气 发表于 2012-2-24 11:18

    自己下载kmod-wl安装

  29. lyc256 于 2012-02-24 19:42:13发表:

    3# 火蒸气
    sudo yum clean all
    sudo yum update

  30. 于 2012-02-24 19:40:36发表:

    :0)1自己下载安装kmod-wl

  31. 火蒸气 于 2012-02-24 19:04:23发表:

    2# MONND


    我在yum更新系统时,不小心按照系统提示输入了“ yum --enablerepo=updates clean metadata"。。结果yum就不能用了,老是错误。怎么解决啊?重新配置yum源吗?

  32. MONND 于 2012-02-24 14:46:37发表:

    这个得大大的支持