linux无线网卡驱动编译

 

分类: LINUX

若要安装以 Broadcom BCM4311、BCM4312、BCM4313、BCM4321 或 BCM4322 为基础的无线网络卡,请遵照以下的步骤:
第 1 步:辨认无线网络芯片及安装时依赖的组件

首先,请确定你是位「拥有 Broadcom BCM43xx 无线网络卡的幸运儿」:
[user@host ~]$ /sbin/lspci | grep Broadcom
0b:00.0 Network controller: Broadcom Corporation BCM4312 802.11a/b/g (rev 01)
辨认完无线网络芯片型号之后,请确定你不会欠缺编译及安装时所需的组件:
[root@host]# yum install kernel-headers kernel-devel gcc
当然,假若你要为 Xen 内核(kernel-xen)编译驱动程序,你必须安装 kernel-xen-devel 而不是 kernel-devel。
第 2 步:下载并解压 Broadcom 驱动程序的压缩档
请从  Broadcom 的官方网站下载 Broadcom BCM43xx 的 linux 驱动程序压缩档到你的机器并将它解压到 /usr/local/src/hybrid-wl,请随你所需将这个目录的拥有者改为无特权的用户:
[root@host ~]# mkdir -p /usr/local/src/hybrid-wl
[root@host hybrid-wl]# cd /usr/local/src/hybrid-wl
[root@host hybrid-wl]# tar xvfz /path/to/the/tarball/hybrid-portsrc-x86_64-v5.10.91.9.3.tar.gz(下载档的名称)
[root@host hybrid-wl]# chown -R someuser.somegroup /usr/local/src/hybrid-wl
注:为什么不随便将它解压到一个位置并保留缺省的拥有者?
原因是上面的做法会把驱动模块的源代码保留在系统上 —— 在你放置它们的位置 —— 好让你可以随时按需要创建驱动程序(譬如:你将内核升了级 —— 因为驱动模块永远根据某个内核来编译),还有,就是你可以用无特权的用户来编译!
第 3 步:编译 Broadcom 驱动模块

驱动模块可以这样编译:
[user@host hybrid-wl]$ make -C /lib/modules/`uname -r`/build/ M=`pwd`
请留意引号(也就反引号)。
现在你很可能会获得一个错误信息,而不是一个编译好的驱动模块(实际上,本作者仍未遇过这个信息以外的情况)。这则信息的内容大致上是:
make: Entering directory `/usr/src/kernels/2.6.18-164.el5-x86_64'
LD /tmp/hybrid/hybrid/hybrid/built-in.o
CC [M] /tmp/hybrid/hybrid/hybrid/src/wl/sys/wl_linux.o
In file included from /tmp/hybrid/hybrid/hybrid/src/wl/sys/wl_linux.c:20:
/tmp/hybrid/hybrid/hybrid/src/include/typedefs.h:70: error: conflicting types for ‘bool’
include/linux/types.h:36: error: previous declaration of ‘bool’ was here
make[1]: *** [/tmp/hybrid/hybrid/hybrid/src/wl/sys/wl_linux.o] Error 1
make: *** [_module_/tmp/hybrid/hybrid/hybrid] Error 2
make: Leaving directory `/usr/src/kernels/2.6.18-164.el5-x86_64'
正如你所见, typedefs.h 这个文件的第 70 行出了一个问题。要解决它,请将第 70 行的代码改为注释,好让它变成:
/*
#ifndef TYPEDEF_BOOL
typedef unsigned char bool;
#endif
*/
你亦可以通过在标头档加入以下内容(勿论这一行是否已经存在)来简单地解决这个问题:
#define TYPEDEF_BOOL
现在,请尝试再次编译驱动模块:
[user@host hybrid-wl]$ make -C /lib/modules/`uname -r`/build/ M=`pwd`
编译器的输出大致上是这样:
make: Entering directory `/usr/src/kernels/2.6.18-164.el5-x86_64'
CC [M] /tmp/hybrid/hybrid/hybrid/src/wl/sys/wl_linux.o
CC [M] /tmp/hybrid/hybrid/hybrid/src/wl/sys/wl_iw.o
CC [M] /tmp/hybrid/hybrid/hybrid/src/shared/linux_osl.o
LD [M] /tmp/hybrid/hybrid/hybrid/wl.o
Building modules, stage 2.
MODPOST
CC /tmp/hybrid/hybrid/hybrid/wl.mod.o
LD [M] /tmp/hybrid/hybrid/hybrid/wl.ko
make: Leaving directory `/usr/src/kernels/2.6.18-164.el5-x86_64'
一旦这个模块被建成,你便可以删除不必要的符号:
[user@host hybrid-wl]$ strip --strip-debug wl.ko
你会发现驱动模块的文件尺寸会明显地缩小(由 2.2MB 降至 1.5MB)。而且,你的驱动模块仍能正常运作  ;)
第 4 步上:将驱动模块装入内核中
当你成功地编译了驱动模块后,你便可以将它装入内核中,并设置在开机时自动装入这个驱动程序(要这样做,你必须利用 root 的权限)。当然,做这一切之先,你必须从内核删除现在的无线驱动模块(假如有的话):
[root@host ~]# rmmod bcm43xx
[root@host ~]# rmmod b43
[root@host ~]# rmmod b43legacy
[root@host ~]# rmmod ndiswrapper
现在我们装入驱动模块:
[root@host hybrid-wl]# modprobe wl.ko
你也可采用:
[root@host hybrid-wl]# insmod wl.ko
假如你在无线驱动程序以外没有应用 ndiswrapper 这个内核模块,你可以删除它,但这并非必需的。
第 4 步下:在开机时将驱动模块装入内核中
首先,请将驱动模块的文件复制到一个可以让内核找到它的地方:
[root@host hybrid-wl]# cp -vi /usr/local/src/hybrid-wl/wl.ko /lib/modules/`uname -r`/extra/
这样做是为了与其它已经/将会从 kmod 组件安装的外置模块(例如:fuse、ntfs-3g、等)保持一贯性。
按着,请执行:
[root@host ~]# depmod $(uname -r)
以便能创建一个模块的互赖性清单。
编译  /etc/modprobe.d/blacklist 这个文件并加入以下内容:
blacklist bcm43xx
blacklist ndiswrapper
blacklist b43
blacklist b43legacy
通过这样做,你可以避免这些模块在开机时被装入内核中。此外,假如你在  /etc/modprobe.conf 内有一行是指定无线界面的驱动程序,例如:
alias eth1 bcm43xx

alias eth1 b43

alias eth1 b43legacy
请将这行注释掉:
#alias eth1 bcm43xx

#alias eth1 b43

#alias eth1 b43legacy
并为你的无线网络卡加入新的驱动程序别名:
alias eth1 wl
这一切都假设你的无线网络界面设备档是 eth1。
现在,请编译  /etc/modprobe.d/modprobe.conf.dist 这个文件并加入以下内容:
alias ieee80211_crypt_tkip ieee80211_crypt_tkip
alias eth1 wl
现在你的驱动应该在每次开机时都会被装入(当然除了在你安装了新内核之后,到时你必须依照以上步骤将它重新编译)。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Linux系统中安装无线网卡驱动,可以按照以下步骤进行操作: 1. 确认无线网卡型号:在终端中输入命令“lspci”或“lsusb”,查看无线网卡的型号。 2. 下载驱动程序:在官方网站或其他可靠的网站上下载适合该型号无线网卡的驱动程序。 3. 解压缩驱动程序:将下载的驱动程序解压缩到指定的目录中。 4. 安装驱动程序:在终端中进入解压缩后的驱动程序目录,输入命令“make”编译驱动程序,然后输入命令“make install”安装驱动程序。 5. 加载驱动程序:输入命令“modprobe”加载驱动程序,使其生效。 6. 配置无线网络:在终端中输入命令“iwconfig”查看无线网卡的状态,然后输入命令“ifconfig”配置无线网络。 以上是安装无线网卡驱动的基本步骤,具体操作可能因不同的Linux发行版而有所不同。 ### 回答2: Linux无线网卡驱动安装通常可以通过以下几个步骤完成。 第一步, 确认无线网卡型号。使用以下命令查看当前系统中的无线网卡型号: `lspci | grep -i wireless` 第二步, 下载对应的无线网卡驱动。根据无线网卡型号,去官网或第三方网站下载对应的驱动程序,一般都是压缩文件。 第三步, 安装编译工具。在安装驱动程序之前,需要先安装编译工具,以便编译无线网卡驱动程序。安装编译工具可以使用以下命令: Ubuntu / Debian: `sudo apt-get update && sudo apt-get install build-essential` CentOS / RHEL: `sudo yum update && sudo yum groupinstall "Development Tools"` 第四步, 解压驱动压缩文件。使用以下命令解压已下载的无线网卡驱动文件,例如: `tar -zxvf ndiswrapper-version.tar.gz` 第五步, 编译和安装驱动程序。进入解压后的文件夹,使用以下命令进行编译和安装: `make && sudo make install` 第六步, 加载驱动。通过以下命令加载无线网卡驱动: `sudo modprobe driver_name` 以上是基础步骤。但是有些无线网卡的驱动可能比较复杂,需要一些额外的配置才能让其正常运行。总之,安装Linux无线网卡驱动需要了解所用硬件的详细信息,并熟悉驱动的安装与配置方法。 ### 回答3: 安装 Linux 无线网卡驱动可能涉及到几个步骤,取决于您的系统和您使用的 Linux 发行版的版本。下面是一些常见的步骤: 1. 检查您的无线网卡品牌和型号。要找到最新的驱动程序,您需要知道要下载的正确驱动程序的品牌和型号。可以在设备管理器中查看这些信息,或者通过使用" lspci "或" lsusb "命令在终端中输入来查看。 2. 下载适当的驱动程序。一旦您找到了您需要的无线网卡的品牌和型号,您可以在互联网上搜索相应的驱动程序。通常,在制造商的网站,或者在Linux社区维护的驱动程序库中可以找到这些驱动程序。 3. 确定您的系统是32位还是64位。根据您所使用的 Linux 发行版和版本以及您的计算机的硬件配置,您可能需要选择适当版本的驱动程序。 4. 安装驱动程序。您可以将驱动程序解压缩并按照提供的说明进行操作。有时,您可能需要在终端中执行命令来安装驱动程序。如果您不知道如何执行该操作,请查看Linux社区中的文档或访问制造商的网站。 5. 验证无线网卡是否工作。一旦驱动程序已正确安装并配置,您就可以使用Linux菜单中的网络工具或终端中的命令来查看是否检测到您的无线网卡。如果无线网卡已成功安装,则可以使用它连接到无线网络。 总之,安装Linux无线网卡驱动程序并不是一项难以完成的任务,但它可能会有点棘手,特别是对于那些对Linux不太熟悉的用户。建议在开始前尽可能了解您的设备和Linux操作系统,并查找与您的系统和硬件兼容的驱动程序。同时,充分利用开放的Linux社区中的学习资源和文档,以便更好地更新和解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值