Ubuntu 无线网络连接WIFI(b43驱动出现DMA问题的解决)
2015-03-12 15:35
1341 查看
来源:http://blog.csdn.net/yyplc/article/details/7243220
最近碰到了一个很苦恼的问题,无线网络,无法连接到WIFI热点了。虽然能搜索到周围有WIFI热点,但总是连接不上,老提示授权错误,要求输入密码,还好有线网络连接能正常使用。这就纳闷了,前一天还可以用得好好的,现在竟然用不了!虽然以前也碰到过偶尔断线的情况,但是也不至于连接不上。以前用UBUNTU10.10,现在用10.04版本的,笔记本是DELL 1427,物理网卡为Broadcom的b4312,UBUNTU10.04系统内核Linux 2.6.32-33。google,百度了一番,尝试过各种办法,重新卸载,安装无线驱动,卸载又安装network-manager,
真的汗颜network-manager,给我的感觉是问题多多,不稳定。
自从用了UBUNTU做桌面系统,受尽了network-manager各种非人折磨,直到现在,还和network-manager在做革命斗争啊,担心哪天又给我来个绊脚石,浪费我宝贵的时间! 最后无奈重装系统,可是问题依旧! 太可恶了,难道让我抛弃10.04重新回到10.10? 冷静想一下,应该是配置问题,肯定是哪些配置出错了,因为这几天正在折腾UBUNTU和手机Android之间WIFI连接的问题(请见我的另一篇文章),说不定搞坏了系统的网络配置,在卸载和安装的时候又没有做到彻底清除相关配置文件。
网上关于无线网络无法连接的帖子很多,涉及到了方方面面,从应用程序到网卡驱动到LINUX操作系统都有提到,我也基本试过所说的方法,但终究没有解决问题。看来不能瞎折腾,得对症下药,找到关键的地方才行。
无线网卡是能搜索到WIFI网络的,就是连不上,使用dmesg |grep b43 发现下面的现象
看来是网卡BM4312的驱动有问题,我的网卡是:Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)
出现了DMA错误"This device does not support DMA on your system. Please use PIO instead"
说的是本笔记本网卡并不支持DMA传输模式,所以驱动报错了。
如果是DMA模式,由于是直接内存访问,相对PIO模式,网卡速度会快一点,但实际应用中没什么区别,那是因为网络的速度是远远跟不上的。
Broadcom公司的有些网卡设备是不支持DMA模式的(甚至和内核版本也有关),下面有说明:
LP-PHY devices: DMA errors on some machines with kernel 2.6. Problem was fixed in 3.0. Using PIO (module param) can be used as workaround for 2.6.
BCM4318 chipset: AP mode does not work because of packet loss in high transmission rates. Hard to debug & fix.
BCM4321: some cards do not work in DMA mode (PIO is needed).
看来我的本本上的网卡不支持DMA模式,这样只能采用PIO模式了。
于是沿着这条线索找到解决办法:
#更改b43.conf的配置文件
如果不行,重启系统。
可见b43工作正常,终于可以连接上WIFI了,但遗憾的是,过了一段时间之后又不行了,也难怪昨天能用,今天就不能用了,说明网卡驱动还是有问题!
所以选对网卡驱动和正确配置驱动,这才是解决问题的关键!
Broadcom有3种驱动包可共选择:
brcmsmac/brcmfmac
b43
broadcom-wl
其中broadcom-wl对应一下网卡型号:
针对Broadcom公司的网卡,查看对应自己笔记本的网卡
root@wsn-laptop:~# lspci -vnn |grep 14e4
0e:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g [14e4:4315] (rev 01)
知道自己的网卡是[14e4:4315], 所以应该用wl才对(Broadcom STA wireless Driver)。于是可以通过一下方式解决:
首先在内核中去掉b43模块:
sudo rmmod b43
sudo rmmod ssb
#加载wl模块如果系统中没有
可以在硬件驱动那里激活broadcom sta wireless driver或者命令行输入
然后加载wl模块:
sudo insmod wl
最后重启network-mamager或者重启系统即可,
问题最后解决。
总结:其实这个问题的根本原因是驱动和内核版本之间的冲突(驱动也有一些BUG)。所以要么更改驱动,要么升级内核,这样也就不会碰到这种问题了。
解决这个问题花了一天时间,可惜了^``~。
最近碰到了一个很苦恼的问题,无线网络,无法连接到WIFI热点了。虽然能搜索到周围有WIFI热点,但总是连接不上,老提示授权错误,要求输入密码,还好有线网络连接能正常使用。这就纳闷了,前一天还可以用得好好的,现在竟然用不了!虽然以前也碰到过偶尔断线的情况,但是也不至于连接不上。以前用UBUNTU10.10,现在用10.04版本的,笔记本是DELL 1427,物理网卡为Broadcom的b4312,UBUNTU10.04系统内核Linux 2.6.32-33。google,百度了一番,尝试过各种办法,重新卸载,安装无线驱动,卸载又安装network-manager,
真的汗颜network-manager,给我的感觉是问题多多,不稳定。
自从用了UBUNTU做桌面系统,受尽了network-manager各种非人折磨,直到现在,还和network-manager在做革命斗争啊,担心哪天又给我来个绊脚石,浪费我宝贵的时间! 最后无奈重装系统,可是问题依旧! 太可恶了,难道让我抛弃10.04重新回到10.10? 冷静想一下,应该是配置问题,肯定是哪些配置出错了,因为这几天正在折腾UBUNTU和手机Android之间WIFI连接的问题(请见我的另一篇文章),说不定搞坏了系统的网络配置,在卸载和安装的时候又没有做到彻底清除相关配置文件。
网上关于无线网络无法连接的帖子很多,涉及到了方方面面,从应用程序到网卡驱动到LINUX操作系统都有提到,我也基本试过所说的方法,但终究没有解决问题。看来不能瞎折腾,得对症下药,找到关键的地方才行。
无线网卡是能搜索到WIFI网络的,就是连不上,使用dmesg |grep b43 发现下面的现象
wsn@wsn-laptop:~$ dmesg |grep b43 [ 0.895694] b43-pci-bridge 0000:0e:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18 [ 0.895710] b43-pci-bridge 0000:0e:00.0: setting latency timer to 64 [ 10.406437] b43-phy0: Broadcom 4312 WLAN found (core revision 15) [ 10.525988] Registered led device: b43-phy0::tx [ 10.526005] Registered led device: b43-phy0::rx [ 10.526021] Registered led device: b43-phy0::radio [ 15.604244] b43 ssb0:0: firmware: requesting b43/ucode15.fw [ 15.621385] b43 ssb0:0: firmware: requesting b43/lp0initvals15.fw [ 15.626406] b43 ssb0:0: firmware: requesting b43/lp0bsinitvals15.fw [ 15.764983] b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10) [ 21.681154] b43-phy0 ERROR: Fatal DMA error: 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 [ 21.681161] b43-phy0 ERROR: This device does not support DMA on your system. Please use PIO instead. [ 21.681165] b43-phy0: Controller RESET (DMA error) ... [ 21.681173] b43-phy0 ERROR: Fatal DMA error: 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 [ 21.681176] b43-phy0 ERROR: This device does not support DMA on your system. Please use PIO instead. [ 21.681179] b43-phy0: Controller RESET (DMA error) ... [ 21.896278] b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10) [ 27.409095] b43-phy0: Controller restarted [ 82.628135] b43-phy0 ERROR: MAC suspend failed [ 82.948120] b43-phy0 ERROR: MAC suspend failed [ 83.268131] b43-phy0 ERROR: MAC suspend failed
看来是网卡BM4312的驱动有问题,我的网卡是:Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)
出现了DMA错误"This device does not support DMA on your system. Please use PIO instead"
说的是本笔记本网卡并不支持DMA传输模式,所以驱动报错了。
如果是DMA模式,由于是直接内存访问,相对PIO模式,网卡速度会快一点,但实际应用中没什么区别,那是因为网络的速度是远远跟不上的。
Broadcom公司的有些网卡设备是不支持DMA模式的(甚至和内核版本也有关),下面有说明:
LP-PHY devices: DMA errors on some machines with kernel 2.6. Problem was fixed in 3.0. Using PIO (module param) can be used as workaround for 2.6.
BCM4318 chipset: AP mode does not work because of packet loss in high transmission rates. Hard to debug & fix.
BCM4321: some cards do not work in DMA mode (PIO is needed).
看来我的本本上的网卡不支持DMA模式,这样只能采用PIO模式了。
于是沿着这条线索找到解决办法:
#更改b43.conf的配置文件
wsn@wsn-laptop:~$ sudo touch /etc/modprobe.d/b43.conf wsn@wsn-laptop:~$ echo "options b43 pio=1 qos=0" | sudo tee -a /etc/modprobe.d/b43.conf wsn@wsn-laptop:~$ sudo modprobe b43 #然后重启 network-manager wsn@wsn-laptop:~$ cd /etc/init.d wsn@wsn-laptop:~$ sudo service network-manger restart
如果不行,重启系统。
wsn@wsn-laptop:~$ dmesg |grep b43 [ 0.873775] b43-pci-bridge 0000:0e:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18 [ 0.873790] b43-pci-bridge 0000:0e:00.0: setting latency timer to 64 [ 11.455666] b43-phy0: Broadcom 4312 WLAN found (core revision 15) [ 11.579806] Registered led device: b43-phy0::tx [ 11.579825] Registered led device: b43-phy0::rx [ 11.579841] Registered led device: b43-phy0::radio [ 19.584232] b43 ssb0:0: firmware: requesting b43/ucode15.fw [ 20.181918] b43 ssb0:0: firmware: requesting b43/lp0initvals15.fw [ 20.191591] b43 ssb0:0: firmware: requesting b43/lp0bsinitvals15.fw [ 20.329278] b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:
可见b43工作正常,终于可以连接上WIFI了,但遗憾的是,过了一段时间之后又不行了,也难怪昨天能用,今天就不能用了,说明网卡驱动还是有问题!
所以选对网卡驱动和正确配置驱动,这才是解决问题的关键!
Broadcom有3种驱动包可共选择:
brcmsmac/brcmfmac
b43
broadcom-wl
其中broadcom-wl对应一下网卡型号:
PCI-ID | Name |
---|---|
[14e4:4311] | BCM4311 |
[14e4:4312] | BCM4311 |
[14e4:4313] | BCM4311 |
[14e4:4315] | BCM4312 |
[14e4:4727] | BCM4313 |
[14e4:4328] | BCM4321 |
[14e4:4329] | BCM4321 |
[14e4:432a] | BCM4321 |
[14e4:432b] | BCM4322 |
[14e4:432c] | BCM4322 |
[14e4:432d] | BCM4322 |
[14e4:4353] | BCM43224 |
[14e4:4357] | BCM43225 |
[14e4:4358] | BCM43227 |
[14e4:4359] | BCM43228 |
root@wsn-laptop:~# lspci -vnn |grep 14e4
0e:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g [14e4:4315] (rev 01)
知道自己的网卡是[14e4:4315], 所以应该用wl才对(Broadcom STA wireless Driver)。于是可以通过一下方式解决:
首先在内核中去掉b43模块:
sudo rmmod b43
sudo rmmod ssb
#加载wl模块如果系统中没有
可以在硬件驱动那里激活broadcom sta wireless driver或者命令行输入
sudo apt-get update sudo apt-get --reinstall install bcmwl-kernel-source
然后加载wl模块:
sudo insmod wl
最后重启network-mamager或者重启系统即可,
问题最后解决。
总结:其实这个问题的根本原因是驱动和内核版本之间的冲突(驱动也有一些BUG)。所以要么更改驱动,要么升级内核,这样也就不会碰到这种问题了。
解决这个问题花了一天时间,可惜了^``~。
相关文章推荐
- Ubuntu 无线网络连接WIFI(b43驱动出现DMA问题的解决)
- 解决ubuntu无法连接wifi的问题: 安装无线网卡驱动
- ubuntu 12.04 无法连接无线网络驱动问题解决
- 遇到的问题-----win7配置wifi时设置网络后无线连接不出现
- 无线和有线网络同时连接时,出现网络连接超时问题解决
- 解决ubuntu14.04、14.10无线网卡驱动问题以使用无线网络
- wind10系统 Atheros AR9271 Wireless Network Adapter USBwifi无线网卡的驱动安装解决无法搜索wifi信号,连接wifi信号无法上网的问题
- 记录Ubuntu 14.04 下安装无线网卡驱动解决无法连接WiFi的过程
- Ubuntu 11.04 无线网络连接问题的解决方法
- Ubuntu14.04.2无法连接无线网络问题解决方案
- 遇到的问题-----win7配置wifi时设置网络后无线连接不出现
- 解决ASUS笔记本出现的无法连接无线网络的问题
- 网线连接并PPPOE拨号后无法扫描无线网络问题的解决办法
- ubuntu 无线网络 出现突然链连接断开情况(网线网络无问题)转载
- Microsoft virtual wifi miniport adapter 无线网络无法连接解决方法
- Ubuntu之:解决无线网卡驱动问题
- 【解决问题】Win7连接wifi时出现感叹号(能连接上却无法上网)
- windowsXP系统网络出现“正在连接”问题的解决方法
- win7设置虚拟WiFi蓝屏及无线网卡驱动出现感叹号的解决方法
- Ubuntu之:解决无线网卡驱动问题