![如何降级 Broadcom 无线驱动程序 bcmwl-kernel-source?](https://linux22.com/image/834851/%E5%A6%82%E4%BD%95%E9%99%8D%E7%BA%A7%20Broadcom%20%E6%97%A0%E7%BA%BF%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%20bcmwl-kernel-source%EF%BC%9F.png)
在全新安装 Ubuntu 13.04 64 位后,我的 wifi 现在出现问题。它似乎会不时失去互联网连接,因此这会导致,例如,网络浏览器在加载过程中停止加载网站,等待约 3 秒,然后接收网站的其余部分。在同一台笔记本电脑上,12.10 中没有发生这种情况。
另一个表明事情不妙的症状是,当我在 Ubuntu 安装程序的第一阶段,在选择“安装期间更新”和“安装 MP3 支持”的屏幕上点击“继续”时,wifi 断开了一会儿。
我有一张 Broadcom BCM4313 卡(实际上它是一张“Dell WLAN 1501”卡,但目前我不太明白这两个品牌之间的关系)
~$ lspci -vvnn | grep 14e4
12:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller [14e4:4727] (rev 01)
我读到这可能是 Ubuntu 13.04 中当前驱动程序的一个错误:bcmwl-kernel-source 6.20.155.1+bdcom-0ubuntu6
我如何降级到以前的工作版本?
我尝试过本说明但 1)我无法从存储库安装旧版本,因为它似乎不适用于 Ubuntu 13.04。2)如果我手动从这里(bcmwl-kernel-source_5.100.82.112+bdcom-0ubuntu3_amd64.deb),重启后系统会放弃 wl 控制器并再次选择 brcmsmac 控制器,如通知区域中的“连接信息”对话框屏幕所示。然后,如果我尝试手动选择它,我会得到:
~$ sudo modprobe wl
FATAL: module wl not found.
这与内核版本有关吗?例如,.deb 包与我当前的内核不兼容。有什么想法吗?也许我必须重新编译该源包?如果是这样,怎么做?
谢谢。
答案1
我设法降级了无线驱动程序,但问题仍然存在。我还尝试了其他驱动程序,例如 bcma 甚至 ndiswrapper(Windows 驱动程序),但问题仍然存在。我相信问题出在新内核上,所以看来我必须回到 12.10。
从我安装 Ubuntu 11.04 开始,根据我的经验,在每个 Ubuntu 版本中让相同的 wifi 卡工作都变得越来越困难......
无论如何,如果它对某人有用,这就是我降级驱动程序的方法:
首先,卸载当前驱动程序并从.deb 文件安装新的驱动程序。
sudo apt-get remove --purge bcmwl-kernel-source
sudo dpkg -i /deb_file_location/bcmwl-kernel-source_5.100.82.112+bdcom-0ubuntu3_amd64.deb
锁定包版本以防止更新。
pkexec gedit /etc/apt/preferences.d/bcmwl-kernel-source
并粘贴以下内容:
Package: bcmwl-kernel-source
Pin: version 5.100.82.112+bdcom*
Pin-Priority: 1001
我还将其他模块列入黑名单以确保它们不会在启动时加载,但在所有情况下这可能不是必要的。
pkexec gedit /etc/modprobe.d/blacklist-bcm43.conf
并添加以下内容:
blacklist brcmsmac
blacklist bcma
重启就完成了。你可以输入以下命令来检查驱动程序是否正在使用:
lspci -k | grep wl
应该返回:
Kernel driver in use: wl
答案2
+1 关于 WiFi 问题。我有一台配备 BCM4313 wifi 的戴尔 E6510,自从升级到 13.04 版后,WiFi 每小时都会断断续续好几次。它大多会很快重新连接。我注意到,在挂起/恢复后,虽然我通常会有 WiFi,但如果它在那之后断线,那么我会开始收到输入无线密码的提示,而且它不会重新连接,直到我重新启动。哎呀。
刚才我尝试关闭 WiFi 的电源管理,看看效果如何。
sudo iwconfig wlan0 power off