Wie wählt der Linux-Kernel die Firmware-Version aus, die geladen werden soll?

12

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 habe /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

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 geladen werden soll iwlwifi-7260-9.ucode?

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
Oz123
quelle
AFAIK 22.24.8.0 ist Firmware-Version 9. Version 8 ist 22.15.8.0. Siehe intel.com/support/wireless/wlan/sb/CS-034398.htm
jhasse
Um die Ergebnisse von Pablo zu bestätigen, war mein Problem, dass SSH kurz nach dem Neustart nicht mehr reagiert. Nachdem ich die Firmware iwlwifi-7260-8.ucode in / lib / firmware installiert und neu gestartet habe, konnte ich SSH ohne Probleme über Wifi ausführen. Mein System ist ein Intel NUC mit 14.04 LTS. Danke Pablo Neu in diesem Forum, damit ich noch nicht abstimmen kann, sonst hättest du meine Stimme.
Wenn Sie 14.04 mit Kernel 3.13.0-36-generic verwenden, wird die Firmware-Version 22.24.8.0 op_mode iwlmvm geladen und es FUNKTIONIERT! perfekt (keine Mater Power ein / aus). Aber wenn ich den Kernel auf 3.16. * Aktualisiere, wird die Firmware-Version 23.214.9.0 geladen und die Geschwindigkeit ist fürchterlich (bei eingeschalteter Stromversorgung) und halb so schnell (bei ausgeschalteter Stromversorgung)
Tosho
@Tosho, na ja, die Firmware für diesen Chip ist einfach schlecht. Ich habe verschiedene Probleme mit diesem Chip.
Oz123
@ Oz123 Ja. aber wie gesagt die 22.24.8.0 funktionieren einwandfrei. Ich bin nicht sicher, ob das Problem von der neuesten Firmware oder dem Kernel 3.16 stammt.
Tosho

Antworten:

5

Die angeforderte Firmware-Version wird in den Treibercode geschrieben. Wie Sie sehen können, fordert die bestimmte Version, wenn Sie iwlwifi verwenden -7 Firmware. 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 modinfo für 7260-Geräte -7 vorschlägt, aber der Treiber tatsächlich -8 verwendet. Mir ist keine Treiberversion bekannt, die -9 erfordert. Vielleicht Kernel-Version 3.15-xx.

chili555
quelle
Hallo, Ich habe versucht , Ihre Lösung, aber ich sehe immer noch den Fehler: Direct firmware load failed with error -2. Ein anderes Problem ist, dass trotz des Moduls, das Version 7 benötigt, Version 8 geladen wird. Siehe mein Update oben.
Oz123
Bitte sehen Sie meine Bearbeitung.
Chili555
Hier ist ein Fehlerbericht bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1704799 - hoffentlich können Sie fehlende Firmware herunterladen und das Problem beheben.
Zeroconf
3

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.

Hans
quelle
Was nutzt 4.4.0-21-Generika?
Martin Thoma
1

Gleiche hier ... aber mit Aktienkern

$ 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 -7und -9seltsamerweise.

Zum Glück funktioniert es mit -8, auch mit Monitor-Modus.

Ich hoffe es hilft!

Pablo
quelle