升级到 13.04 后,wifi 通常无法找到网络,一段时间后网络管理器崩溃。经过一番挖掘,似乎我的 PC Intel WiFi Link 5100 适配器的 iwlwifi 固件版本是错误的。
sudo lshw -class network
表明
[...]
description: Wireless interface
product: WiFi Link 5100
vendor: Intel Corporation
[...]
configuration: broadcast=yes driver=iwlwifi driverversion=3.8.0-21-generic firmware=8.83.5.1 build 33692 ip=192.168.0.109 latency=0 link=yes multicast=yes wireless=IEEE 802.11abgn
但根据http://wireless.kernel.org/en/users/Drivers/iwlwifiIntel® 无线 WiFi 5100AGN 驱动程序应为 iwlwifi-5000-ucode-5.4.A.11.tar.gz(上面的 firmware=8.83.5.1 指的是另一个 wifi 设备,即 Intel® 无线 WiFi 5350AGN)。
为什么 13.04 使用 iwlwifi firmware=8.83.5.1 而不是 firmware=5.4.1.16 ,正如建议的那样http://wireless.kernel.org/en/users/Drivers/iwlwifi?
为了纠正这种情况,我下载了 iwlwifi-5000-ucode-5.4.A.11.tar.gz,其中包含文件 iwlwifi-5000-1.ucode。我还删除了现有的 /lib/firmware/iwlwifi* 文件(例如 iwlwifi-5000-5.ucode),并将新的 iwlwifi-5000-1.ucode 复制到固件目录中
sudo mv /lib/firmware/*iwlwifi* ~/keep_iwlwif
sudo cp iwlwifi-5000-1.ucode /lib/firmware
重新启动后,sudo lshw -class network 显示 firmware=5.4.1.16,这对我来说似乎不错,但 dmesg 显示了以下 iwlwifi 错误。
[ 14.196502] iwlwifi 0000:02:00.0: request for firmware file 'iwlwifi-5000-5.ucode' failed.
[ 14.200629] iwlwifi 0000:02:00.0: request for firmware file 'iwlwifi-5000-4.ucode' failed.
[ 14.204814] iwlwifi 0000:02:00.0: request for firmware file 'iwlwifi-5000-3.ucode' failed.
[ 14.253843] iwlwifi 0000:02:00.0: request for firmware file 'iwlwifi-5000-2.ucode' failed.
我决定将 iwlwifi-5000-5.ucode 添加回 /lib/firmware 并重新启动。重新启动后,我回到了开始的地方,sudo lshw -class network 再次显示 firmware=8.83.5.1,并且没有 iwlwifi 的 dmesg 错误。此外,wifi 也没有任何改善。
答案1
我有相同的无线网卡,并从下载了 iwlwifi-5000-5.ucode这里并将其添加到 lib/firmware 目录中,它运行良好。我正在使用 Intel Galileo 主板,上面安装了 Yachto Linux。
答案2
我发现有些可能是临时解决方案。目前 wifi 更稳定,只有一次流量停止而没有断开连接。使用推荐的固件并将其重命名为 iwlwifi-5000-5.ucode 。您会在 dmesg 中看到抱怨,但无论如何它都能正常工作:
Firmware has old API version, expected v5, got v1.
[ 18.595062] iwlwifi 0000:02:00.0: New firmware can be obtained from http://www.intellinuxwireless.org/.
[ 18.595065] iwlwifi 0000:02:00.0: loaded firmware version 5.4.1.16