Как ядро ​​Linux выбирает, какую версию прошивки загружать?

12

Я установил последнюю версию прошивки для своей сетевой карты N-7260 с http://wireless.kernel.org/en/users/Drivers/iwlwifi#Firmware . Я использую Ubuntu 14.04 с версией ядра 3.14.01 от команды ядра ppa . Вот список прошивок у меня в /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
Oz123
источник
AFAIK 22.24.8.0 - версия прошивки 9. Версия 8 - 22.15.8.0. См. Intel.com/support/wireless/wlan/sb/CS-034398.htm
jhasse
Просто чтобы подтвердить выводы Пабло, моя проблема заключалась в том, что SSH перестал отвечать на короткое время после перезагрузки. После того, как я установил прошивку iwlwifi-7260-8.ucode в / lib / firmware и перезагрузил компьютер, я не запускал SSH без проблем через Wi-Fi. Моя система - Intel NUC с установленным 14.04 LTS. Спасибо Пабло Новичок на этом форуме, так что я еще не могу голосовать, иначе вы бы получили мой голос.
Использование 14.04 с ядром 3.13.0-36-generic загружает версию прошивки 22.24.8.0 op_mode iwlmvm, и она РАБОТАЕТ! отлично (без включения / выключения питания). Но когда я обновляю ядро ​​до 3.16. *, Загружаемую версию прошивки 23.214.9.0, и скорость ужасна (при включенном питании) и половина скорости (при выключенном питании)
Tosho
@ Тошо, ну прошивка для этого чипа просто плохая. У меня разные проблемы с этим чипом.
Oz123
@ Oz123 Да. но, как я уже сказал, 22.24.8.0 работают идеально. Я не уверен, что проблема в последней прошивке или ядре 3.16.
Тошо

Ответы:

5

Запрошенная версия прошивки записывается в код драйвера. Как видите, конкретная версия 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 <ilw@linux.intel.com>
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-хх.

chili555
источник
Привет, я пытался ваше решение, но я до сих пор видим ошибку: Direct firmware load failed with error -2. Другая проблема заключается в том, что модуль, требующий 7-й версии, презирает модуль, загружает 8-ю версию. См. Мое обновление выше.
Oz123
Пожалуйста, смотрите мое редактирование.
chili555
Вот один отчет об ошибке bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1704799 - надеюсь, вы сможете скачать недостающую прошивку и устранить проблему.
zeroconf
3

Я думаю, это зависит от вашего ядра:

  • 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 Мбит / с ниже, чем на 25 Мбит / с со вторым. YMMV.

Hans
источник
Что использует 4.4.0-21-generic?
Мартин Тома
1

То же самое здесь ... но со стоковым ядром

$ 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

Но будет загружаться только если я скачаю и установлю 7260-8 с http://wireless.kernel.org/en/users/Drivers/iwlwifi

Может быть, кто-то забыл что-то изменить в информации о драйвере. Моя установка была -7и -9, как ни странно.

К счастью, он работает -8даже в режиме монитора.

Надеюсь, это поможет!

Pablo
источник