lshw -C network
提供有关我的无线网卡、驱动程序和固件的信息:
*-network
description: Wireless interface
product: PRO/Wireless 5100 AGN [Shiloh] Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:03:00.0
logical name: wlan0
version: 00
width: 64 bits
clock: 33MHz
capabilities: bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=3.16.0-34-generic firmware=8.83.5.1 build 33692 ip=192.168.1.102 latency=0 link=yes multicast=yes wireless=IEEE 802.11abg
resources: irq:49 memory:f4200000-f4201fff
modinfo
提供有关驱动模块iwlwifi
和固件的信息:
$ modinfo iwlwifi
filename: /lib/modules/3.16.0-34-generic/kernel/drivers/net/wireless/iwlwifi/iwlwifi.ko
license: GPL
author: Copyright(c) 2003- 2014 Intel Corporation <[email protected]>
version: in-tree:
description: Intel(R) Wireless WiFi driver for Linux
firmware: iwlwifi-100-5.ucode
firmware: iwlwifi-1000-5.ucode
firmware: iwlwifi-135-6.ucode
firmware: iwlwifi-105-6.ucode
firmware: iwlwifi-2030-6.ucode
firmware: iwlwifi-2000-6.ucode
firmware: iwlwifi-5150-2.ucode
firmware: iwlwifi-5000-5.ucode
firmware: iwlwifi-6000g2b-6.ucode
firmware: iwlwifi-6000g2a-5.ucode
firmware: iwlwifi-6050-5.ucode
firmware: iwlwifi-6000-4.ucode
firmware: iwlwifi-7265-9.ucode
firmware: iwlwifi-3160-9.ucode
firmware: iwlwifi-7260-9.ucode
firmware: iwlwifi-8000-8.ucode
srcversion: 93D664267873827B22C4309
关于驱动模块:
版本是
iwlwifi
3.16.0-34-generic
作为输出lshw -C network
,或in-tree:
作为输出modinfo iwlwifi
,或93D664267873827B22C4309
作为输出modinfo iwlwifi
?
在哪里可以找到最新可用版本
iwlwifi
以及如何在 64 位 Ubuntu 14.04 上安装它?关于固件:
iwlwifi
需要的固件版本是8.83.5.1 build 33692
作为输出lshw -C network
,或iwlwifi-<digit>.ucode
作为输出modinfo iwlwifi
?
firmware
输出中以 开头的行是否modinfo iwlwifi
- 同一固件的不同版本?或者
- 不同的固件?
在哪里可以找到最新可用的固件版本,以及如何在 64 位 Ubuntu 14.04 上安装它们?
谢谢!
答案1
虽然您说您正在运行 14.04,但您的 3.16.0-xx 内核对应于 Ubuntu 14.10。
司机无线上网有点独特,因为 pci.id(例如 8086:4239)会告诉驱动程序确切的设备并调用该设备的相应固件。
我怀疑版本:在树中意味着该版本是包含在相关内核中的版本,在您的情况下是 3.16。
固件可用的地方如下:https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi您的卡加载了 8.83.5.1,它对应于 Intel 5100、5300 或 5350 的固件。如果您找到更早或更新的固件文件并将其放在 /lib/firmware 中,则驱动程序仍将调用并使用其写入的相同固件。
如您所见,您的设备的固件有三个版本;5.4.A.11 提取到 iwlwifi-5000-1.ucode;8.24.2.12 提取到 5000-2,8.83.51.1 提取到 5000-5。虽然完全可以下载并提取这些固件,并将它们放在驱动程序希望找到它们的位置,即 /lib/firmware,但驱动程序无线上网包含在内核版本3.16中的将调用并使用仅适当的固件文件:iwlwifi-5000-5.ucode。
至于差异,我找不到任何更改日志。我猜想每个后续固件版本都会包含改进和/或错误修复。
至于驱动程序,获取更高版本的驱动程序的通常方法是编译反向移植:https://www.kernel.org/pub/linux/kernel/projects/backports/stable/或者,如果你够勇敢的话:https://www.kernel.org/pub/linux/kernel/projects/backports/2015/03/13/
例如,如果你想编译无线上网对应更高版本3.18.1内核的驱动程序,将其下载到桌面,右键单击并选择“在此处提取”:https://www.kernel.org/pub/linux/kernel/projects/backports/stable/v3.18.1/backports-3.18.1-1.tar.xz 然后,在终端中:
sudo apt-get update
sudo apt-get install linux-headers-generic build-essential
cd ~/Desktop/backports-3.18.1
make defconfig-iwlwifi
make
sudo make install
重新启动并检查版本修改信息. 应为:
版本:使用反向移植 v3.18.1-1-0-g5e9ec4c 从 Linux(v3.18.1-0-g39ca484)反向移植
每次安装更高版本的 linux 映像时,都需要重新编译并重新启动。
根据您的症状,我怀疑这种困难与无线上网及其固件。您可以在发生丢包时检查日志,特别是 /var/log/syslog。