Bagaimana kernel linux memilih versi firmware mana yang akan dimuat?

12

Saya memasang firmware terbaru untuk kartu jaringan saya N-7260 dari http://wireless.kernel.org/en/users/Drivers/iwlwifi#Firmware . Saya menggunakan Ubuntu 14.04 dengan versi kernel 3.14.01 dari ppa tim kernel . Berikut adalah daftar firmware yang saya miliki /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

Saat ini tampaknya versi 9 tidak dimuat. Jika saya menghapus versi 8, saya melihat saat boot pesan berikut:

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!

Jadi, pertanyaan saya adalah:

Bagaimana saya memberi tahu linux bahwa itu harus dimuat iwlwifi-7260-9.ucode?

memperbarui

Anehnya, versi firmware yang dimuat sekarang adalah 8, setidaknya menurut 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
sumber
AFAIK 22.24.8.0 adalah firmware versi 9. Versi 8 adalah 22.15.8.0. Lihat intel.com/support/wireless/wlan/sb/CS-034398.htm
jhasse
Hanya untuk mengkonfirmasi temuan Pablo, masalah saya adalah SSH berhenti merespons sesaat setelah reboot. Setelah saya menginstal firmware iwlwifi-7260-8.ucode ke / lib / firmware dan reboot saya tidak telah menjalankan SSH tanpa masalah Wifi. Sistem saya adalah Intel NUC dengan 14,04 LTS diinstal. Terima kasih Pablo Baru di forum ini, jadi saya belum dapat memberikan suara, kalau tidak Anda akan memilih saya.
Menggunakan 14.04 dengan kernel 3.13.0-36-generic memuat firmware versi 22.24.8.0 op_mode iwlmvm dan BEKERJA! sempurna (tidak ada daya mater on / off). Tetapi ketika saya memutakhirkan kernel ke 3.16. *, Itu memuat firmware versi 23.214.9.0, dan kecepatannya mengerikan (dengan daya hidup) dan setengah kecepatan (dengan daya mati)
Tosho
@Tosho, well, firmware untuk chip ini benar-benar buruk. Saya memiliki berbagai masalah dengan chip ini.
Oz123
@ Oz123 Ya. tapi seperti yang saya katakan, 22.24.8.0 bekerja dengan sempurna. Saya tidak yakin apakah masalahnya dari firmware terbaru atau kernel 3.16.
Tosho

Jawaban:

5

Versi firmware yang diminta ditulis ke dalam kode driver. Seperti yang Anda lihat, versi tertentu jika iwlwifi bahwa Anda menggunakan permintaan -7 firmware. Itu tidak dapat menemukannya dan berakhir pada kesalahan. Anda dapat melihat ini di 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

Apa yang dilaporkan oleh Anda? Sudahkah Anda mencoba menamai ulang firmware -9 sebagai -7, setelah membuat cadangan, tentu saja?

Saya benar-benar percaya bahwa, untuk 7260 perangkat, modinfo menyarankan -7 tetapi pengemudi benar-benar menggunakan -8. Saya tidak mengetahui versi driver apa pun yang membutuhkan -9. Mungkin kernel versi 3.15-xx.

cabai555
sumber
Hi, Saya mencoba solusi Anda, tapi saya masih melihat kesalahan: Direct firmware load failed with error -2. Dan masalah yang berbeda adalah bahwa menghina modul yang membutuhkan versi 7, itu memuat versi 8. Lihat pembaruan saya di atas.
Oz123
Silakan lihat edit saya.
chili555
Berikut ini adalah satu laporan bug bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1704799 - semoga Anda dapat mengunduh firmware yang hilang dan memperbaiki masalahnya.
zeroconf
3

Saya pikir itu tergantung pada kernel Anda:

  • 3.10+ menggunakan firmware -7
  • 3.13+ menggunakan firmware -8
  • 3.14.9+ menggunakan firmware -9
  • 3.17+ menggunakan firmware -10

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

Ubuntu 14,04 adalah 3,13 jadi memuat 22,24. 8 .0.

Ubuntu 14.10 adalah 3.16 jadi memuat 25.228. 9 .0.

Saya dapat terhubung dengan keduanya, meskipun yang pertama tidak stabil bagi saya ... skor speedtest.net turun 2-3Mbps dibandingkan 25Mbps ke bawah dengan yang kedua. YMMV.

Hans
sumber
Apa yang digunakan 4.4.0-21-generik?
Martin Thoma
1

Sama di sini ... tetapi dengan kernel stock

$ 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

Tetapi hanya akan dimuat jika saya mengunduh dan menginstal 7260-8 dari http://wireless.kernel.org/en/users/Drivers/iwlwifi

Mungkin seseorang lupa mengubah sesuatu di info driver. Instalasi saya sudah -7dan -9, anehnya.

Untungnya itu berfungsi dengan -8, bahkan dengan mode monitor.

Semoga ini bisa membantu!

Pablo
sumber