Broadcom BCM4312 (简体中文)

From ArchWiki

Jump to: navigation, search
i18n
English
简体中文

Contents

简介

Template:提示:

Broadcom终于放出了大部分无线网卡的Linux驱动.请看 Ubuntu forumsDebian forums. 看上去适用于所有Broadcom 43xx,例如通过ndiswrapper 所支持的4328无线网卡. Broadcom无线网卡通常用于Dell等笔记本平台.

不幸的是,本驱动不能工作于隐藏的ESSID下.(笔者注:本人用这个驱动+gnome的networkmanager前端,可以连入隐藏essid的无线路由)

请确保您的无线网卡在如下列表中

下表为可以使用此驱动的无线网卡芯片,

14e4:432b "Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller"
14e4:4329 "Broadcom Corporation BCM43XG"
14e4:4328 "Broadcom Corporation BCM4328 802.11a/b/g/n"
14e4:4315 "Broadcom Corporation BCM4312 802.11b/g"
14e4:4313 "Broadcom Corporation BCM4310 Ethernet Controller"
14e4:4312 "Broadcom Corporation BCM4312 802.11a/b/g"
14e4:4311 "Broadcom Corporation BCM4311 802.11b/g WLAN"
14e4:432d
14e4:432c
14e4:432a

在终端输入 (小心输入哦)

lspci | grep BCM43

如果有其它的Broadcom模块出现,可以试试 b43 驱动.

驱动安装

获得驱动

这儿有PKGBUILD文件 AUR. 或者可以从 这里 下载驱动,目录下会有一个 README 文件.

加载内核模块

在加载模块之前, 移除 b43, 或者其它用于无线网卡的内核模块:

# rmmod b43

加载模块:

# modprobe lib80211_crypt_tkip
# modprobe wl
# insmod /lib/modules/2.6.30-ARCH/kernel/drivers/net/wireless/wl.ko

您可能还需要通过以下命令重新生成modules.dep:

# depmod -a

现在您可以在/etc/rc.conf中模块部分加入使之永久生效 .

MODULES=(lib80211_crypt_tkip, ...

如果您是通过AUR安装本驱动包,仅需要:

# rmmod b43 # (or any other module you are using for your wireless card)
# modprobe wl

现在使用iwconfig命令,应该能看到一个无线设备(例如 eth1或者wlan0). 您可能需要重启电脑才能在iwconfig中看到无线设备.

要让模块每次开机自动加载,请在 rc.conf中加入:

MODULES=(lib80211_crypt_tkip wl !b43 !ssb ...

通过把 'b43' and 'ssb' 模块加入黑名单, 可以预防内核加载错误的驱动模块.

加载多Broadcom网卡的内核驱动模块

在我的Dell Inspiron笔记本上, 拥有BCM4401有线网卡和BCM4328无线网卡.如果我仅仅是移除b43模块,我能加载wl无线驱动,但是没有无线网卡显示.然而,如果我先移除有线网卡的b44(和ssb)驱动模块,然后加载wl无线驱动,则会有一个eth0无线网卡设备出现.之后,再重新加载b44驱动,这样就同时能有一个eth1的有线网卡出现.

短文版:

  • Put "lib80211_crypt_tkip" and "wl" at the BEFORE b44 (if you have it) position in MODULES= 在 /etc/rc.conf 模块部分,b44(如果你需要这个驱动的话)之前加入lib80211_crypt_tkip wl
  • 不要忘记把 b43 模块加入黑名单
  • 您的无线网卡设备为eth0
  • 您的有线网卡设备为eth1
  • 两者能同是正常工作


故障解决

网卡设备界面总是互换

这个本驱动的常见问题.而我根据 udev post来设定我的BCM4312网卡:

创建一个/etc/udev/rules.d/10-network.rules文件并根据网卡的MAC地址来命名网卡设备名.

SUBSYSTEM=="net", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="eth0"
SUBSYSTEM=="net", ATTR{address}=="ff:ee:dd:cc:bb:aa", NAME="eth1"

语法说明:

  • NAME="eth0" 是你想要的设备名称,例如"eth0". 你也可以使用其它的来代替,如"lan0"来代替eth0或者"wlan0"代替eth1.
  • 可以通过如下命令查看网卡MAC地址: udevadm info -a -p /sys/class/net/<yourdevice> | grep address

但是首先你要知道eth0不是eth1,反之亦然, 当然你可以扫描下设备: iwlist scan 如果eth0变成了eth1,那么现在eth1的MAC地址,就是之前eth0的MAC地址.

别忘记更新 /etc/rc.conf 和其它要用到ethX的配置文件!

wl模块在内核更新后无法工作

这是因为驱动是为当前内核所编译,当你每次更新完内核后都需要重新编译驱动.

Personal tools