如何降级 Broadcom 无线驱动程序 bcmwl-kernel-source?

如何降级 Broadcom 无线驱动程序 bcmwl-kernel-source?

在全新安装 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

相关内容