web-dev-qa-db-ja.com

Linuxカーネルはどのファームウェアバージョンをロードするかをどのように選択しますか?

http://wireless.kernel.org/en/users/Drivers/iwlwifi#Firmware からネットワークカードN-7260の最新ファームウェアをインストールしました。 kernel's team 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をロードするように指示するにはどうすればよいですか?

更新

奇妙なことに、少なくともdmesgによると、現在ロードされているファームウェアバージョンは8です。

$ 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
12
Oz123

要求されたファームウェアバージョンは、ドライバーコードに書き込まれます。ご覧のとおり、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 <[email protected]>
version:        in-tree:
description:    Intel(R) Wireless WiFi driver for Linux
<snip>
firmware:       iwlwifi-7260-7.ucode

あなたのレポートは何ですか?もちろん、バックアップ後に-9ファームウェアの名前を-7に変更してみましたか?

7260デバイスの場合、modinfoは-7を示唆しますが、ドライバーは実際に-8を使用すると思います。 -9を必要とするドライバーのバージョンは知りません。おそらくカーネルバージョン3.15-xx。

5
chili555

私はそれがあなたのカーネルに依存すると思います:

  • 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〜3 Mbpsでしたが、2番目は25 Mbpsでした。 YMMV。

3
Hans

ここも同じですが、ストックカーネルを使用しています

$ 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で動作します。

それが役に立てば幸い!

1
Pablo