linux内核如何选择要加载的固件版本?

我从http://wireless.kernel.org/en/users/Drivers/iwlwifi#Firmware安装了我的网卡N-7260的最新固件。 我正在使用内核团队ppa的内核版本3.14.01的Ubuntu 14.04。 这是我在/lib/firmware

 $ ls /lib/firmware/*iwl*7260* /lib/firmware/iwlwifi-7260-8.ucode /lib/firmware/org.iwlwifi-7260-7.ucode /lib/firmware/iwlwifi-7260-9.ucode /lib/firmware/org.iwlwifi-7260-8.ucode 

现在似乎版本9没有加载。 如果我删除版本8,我会在启动时看到以下消息:

 sudo dmesg | grep iwl [sudo] password for ozubu: [ 6.121743] iwlwifi 0000:02:00.0: irq 62 for MSI/MSI-X [ 6.133208] iwlwifi 0000:02:00.0: Direct firmware load failed with error -2 [ 6.133211] iwlwifi 0000:02:00.0: Falling back to user helper [ 6.311794] iwlwifi 0000:02:00.0: Direct firmware load failed with error -2 [ 6.311799] iwlwifi 0000:02:00.0: Falling back to user helper [ 6.324940] iwlwifi 0000:02:00.0: request for firmware file 'iwlwifi-7260-7.ucode' failed. [ 6.324950] iwlwifi 0000:02:00.0: no suitable firmware found! 

所以,我的问题是:

我怎么告诉linux它应该加载iwlwifi-7260-9.ucode

更新

奇怪的是,现在加载的固件版本是8,至少根据dmesg:

 $ sudo dmesg | grep iwl [sudo] password for ozubu: [ 18.970651] iwlwifi 0000:02:00.0: irq 62 for MSI/MSI-X [ 19.012648] iwlwifi 0000:02:00.0: loaded firmware version 22.24.8.0 op_mode iwlmvm [ 19.315472] iwlwifi 0000:02:00.0: Detected Intel(R) Wireless N 7260, REV=0x144 [ 19.315899] iwlwifi 0000:02:00.0: L1 Disabled; Enabling L0S [ 19.316118] iwlwifi 0000:02:00.0: L1 Disabled; Enabling L0S [ 19.523132] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs' [ 23.100268] iwlwifi 0000:02:00.0: L1 Disabled; Enabling L0S [ 23.100484] iwlwifi 0000:02:00.0: L1 Disabled; Enabling L0S 

请求的固件版本将写入驱动程序代码中。 如您所见,特定版本,如果你正在使用iwlwifi请求-7固件。 它找不到它并以错误结束。 你可以在modinfo iwlwifi中看到这个:

 $ modinfo iwlwifi filename: /lib/modules/3.13.0-24-generic/kernel/drivers/net/wireless/iwlwifi/iwlwifi.ko license: GPL author: Copyright(c) 2003-2013 Intel Corporation  version: in-tree: description: Intel(R) Wireless WiFi driver for Linux  firmware: iwlwifi-7260-7.ucode 

你的报道是什么? 当然,您是否尝试将-9固件重新命名为-7,备份后?

我实际上相信,对于7260设备, modinfo建议-7但驱动程序实际上使用-8。 我不知道任何需要-9的驱动程序版本。 也许是内核版本3.15-xx。

我认为这取决于你的内核:

  • 3.10+使用固件-7
  • 3.13+使用固件-8
  • 3.14.9+使用固件-9
  • 3.17+使用固件-10

资料来源: http : //wireless.kernel.org/en/users/Drivers/iwlwifi

Ubuntu 14.04是3.13所以加载22.24。 8 .0。

Ubuntu 14.10是3.16所以加载25.228。 9 .0。

我可以与两者联系,虽然第一个对我来说是不稳定的… speedtest.net得分是2-3Mbps,而第二个是25Mbps。 因人而异。

同样在这里…但有库存内核

 $ uname -a Linux prato 3.13.0-30-generic #55-Ubuntu SMP Fri Jul 4 21:40:53 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux $ modinfo iwlwifi | grep 7260 firmware: iwlwifi-7260-7.ucode 

但只有在我从http://wireless.kernel.org/en/users/Drivers/iwlwifi下载并安装7260-8时才会加载

也许有人忘记改变驱动程序信息中的内容。 我的安装有-7-9 ,奇怪的是。

幸运的是它适用于-8 ,即使使用监控模式也是如此。

希望能帮助到你!