web-dev-qa-db-de.com

Wie wählt der Linux-Kernel die zu ladende Firmware-Version aus?

Ich habe die neueste Firmware für meine Netzwerkkarte N-7260 von http://wireless.kernel.org/en/users/Drivers/iwlwifi#Firmware installiert. Ich benutze Ubuntu 14.04 mit der Kernel-Version 3.14.01 aus dem Kernel-Team ppa . Hier ist eine Liste der Firmware, die ich in /lib/firmware habe:

$ 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

Momentan scheint Version 9 nicht geladen zu werden. Wenn ich Version 8 entferne, wird beim Booten die folgende Meldung angezeigt:

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!

Meine Frage lautet also:

Wie sage ich Linux, dass es iwlwifi-7260-9.ucode laden soll?

aktualisieren

Seltsamerweise ist die jetzt geladene Firmware-Version 8, zumindest laut 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
12
Oz123

Die angeforderte Firmware-Version wird in den Treibercode geschrieben. Wie Sie sehen können, die bestimmte Version, wenn iwlwifi, dass Sie Anforderungen -7 Firmware verwenden. Es kann es nicht finden und endet mit einem Fehler. Sie können dies in modinfo iwlwifi sehen:

$ 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

Was berichtet ihr? Haben Sie versucht, die Firmware -9 nach dem Sichern in -7 umzubenennen?

Ich glaube tatsächlich, dass für 7260 Geräte modinfo -7 vorschlägt, aber der Treiber tatsächlich -8 verwendet. Mir ist keine Treiberversion bekannt, die -9 erfordert. Vielleicht Kernel-Version 3.15-xx.

5
chili555

Ich denke, es hängt von deinem Kernel ab:

  • 3.10+ verwendet Firmware -7
  • 3.13+ verwendet Firmware -8
  • 3.14.9+ verwendet Firmware -9
  • 3.17+ verwendet Firmware -10

Quelle: http://wireless.kernel.org/en/users/Drivers/iwlwifi

Ubuntu 14.04 ist 3.13, lädt also 22.24. 8 . 0.

Ubuntu 14.10 ist 3.16 und lädt 25.228. 9 . 0.

Ich kann mit beiden in Verbindung treten, obwohl der erste für mich unangenehm war ... Die Werte von speedtest.net lagen bei 2-3 Mbit/s im Vergleich zu 25 Mbit/s im Vergleich zum zweiten. YMMV.

3
Hans

Das selbe hier ... aber mit Stock Kernel

$ 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

Wird aber nur geladen, wenn ich 7260-8 von http://wireless.kernel.org/en/users/Drivers/iwlwifi herunterlade und installiere

Vielleicht hat jemand vergessen, etwas in den Fahrerinformationen zu ändern. Meine Installation hatte seltsamerweise -7 und -9.

Zum Glück funktioniert es mit dem -8, auch im Monitormodus.

Ich hoffe es hilft!

1
Pablo