我如何告诉内核使用哪个驱动程序?

我如何告诉内核使用哪个驱动程序?

我的 wifi 表现异常(不扫描,不连接网络),为了解决这个问题,我尝试安装英特尔的驱动程序。该设备是英特尔迅驰 Advanced-N 6205。文档没有明确说明如何安装它。我iwlwifi-6000g2a-6.ucode此英特尔页面,并将该 ucode 文件复制到 /lib/firmware 目录。这就是文件附带的文档告诉我要做的所有事情。这一页和我从英特尔的 ucode 文件获得的信息几乎一样。有一些关于固件加载器和内核配置文件的内容我不太明白。

当我运行时,$ sudo lshw -c network我发现以下内容:

  *-network
   description: Wireless interface
   product: Centrino Advanced-N 6205 [Taylor Peak]
   vendor: Intel Corporation
   physical id: 0
   bus info: pci@0000:03:00.0
   logical name: wlan0
   version: 34
   serial: a0:88:b4:30:4b:08
   width: 64 bits
   clock: 33MHz
   capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
   configuration: broadcast=yes driver=iwlwifi driverversion=3.8.0-35-generic firmware=18.168.6.1 latency=0 link=no multicast=yes wireless=IEEE 802.11abgn
   resources: irq:43 memory:c0500000-c0501fff

在我看来,这driverversion=3.8.0-35-generic意味着内核正在使用一些通用的英特尔驱动程序,而不是我刚从英特尔下载的驱动程序。我说得对吗?如果是这样,我该如何让内核开始使用新的驱动程序?

答案1

您下载并安装了固件,而不是驱动程序。驱动程序根据设备 ID 调用所需的固件。您的瘦身可以看出该驱动是常用的内核驱动iwlwifi:

驱动程序=iwlwifi

它还显示正在使用的固件版本:

固件=18.168.6.1

这不就是你下载的吗?

您可以尝试通常的解决方法:

sudo -i
echo "options iwlwifi 11n_disable=1"  >>  /etc/modprobe.d/iwlwifi.conf
exit

重新启动并告诉我们是否有任何改进。

如果仍然有问题,让我们在日志中寻找线索。断开以太网连接并重新启动,这样我们就有了一个干净的记录,尝试连接然后运行:

cat /var/log/syslog | grep -e etwork -e wlan | tail -n25 > wifi.txt

在您的用户目录中找到文件 wifi.txt 并将结果粘贴到这里,并在您的回复中给我们链接:http://paste.ubuntu.com/

您下载的固件文件可能已经存在于您的系统中。您的固件文件与默认固件文件相同吗?

md5sum /lib/firmware/iwlwifi-6000g2a-6.ucode

我的读法是 4b47db024c8a0cba872c3e98e907a378。

有时,休眠后,驱动程序不会重新加载。尝试从终端重新加载:

sudo modprobe iwlwifi

您可以尝试这个修复:

gksudo gedit /etc/pm/config.d/config

添加一行:

SUSPEND_MODULES="iwlwifi"

仔细校对,保存并关闭 gedit。重新启动。

现在它是如何工作的?

相关内容