"W: Possibile firmware mancante per il modulo i915_bpo" durante l'aggiornamento di initramfs


75

Quando eseguo un aggiornamento del kernel o del driver NVIDIA sul mio 16.04, questo avvia una ricostruzione di initramfs che genera l'avviso di seguito:

Processing triggers for initramfs-tools (0.122ubuntu8.1) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-34-generic
W: Possible missing firmware /lib/firmware/i915/skl_guc_ver6.bin for module i915_bpo

Ho un notebook con due chip grafici, una NVIDIA GeForce 940M e la grafica integrata Intel i5-6200U.

Il dispositivo in uso è la mia scheda NVIDIA:

$ inxi -G
Graphics:  Card-1: Intel Sky Lake Integrated Graphics
           Card-2: NVIDIA GM108M [GeForce 940M]
           Display Server: X.Org 1.18.3 driver: nvidia Resolution: 1920x1080@60.03hz
           GLX Renderer: GeForce 940M/PCIe/SSE2 GLX Version: 4.5.0 NVIDIA 367.35

Ecco l'output di lshw -c video, corrispondente al mio chip grafico Intel che dovrebbe usare quel driver:

    *-display         
         description: VGA compatible controller
         product: Sky Lake Integrated Graphics
         vendor: Intel Corporation
         physical id: 2
         bus info: pci@0000:00:02.0
         version: 07
         width: 64 bits
         clock: 33MHz
         capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
         configuration: driver=i915_bpo latency=0
         resources: irq:125 memory:a2000000-a2ffffff memory:b0000000-bfffffff ioport:5000(size=64)

Il file nell'avviso non esiste, solo quelli:

$ ll /lib/firmware/i915/
total 336
drwxr-xr-x  2 root root   4096 Aug 11 13:24 ./
drwxr-xr-x 74 root root  32768 Aug 11 13:24 ../
-rw-r--r--  1 root root   5872 Jul 21 17:03 bxt_dmc_ver1_04.bin
-rw-r--r--  1 root root   5872 Jul 21 17:03 bxt_dmc_ver1_05.bin
-rw-r--r--  1 root root   8380 Jul 21 17:03 bxt_dmc_ver1_06.bin
-rw-r--r--  1 root root   8380 Jul 21 17:05 bxt_dmc_ver1_07.bin
lrwxrwxrwx  1 root root     19 Jul 21 17:05 bxt_dmc_ver1.bin -> bxt_dmc_ver1_07.bin
-rw-r--r--  1 root root   8824 Jul 21 17:03 skl_dmc_ver1_23.bin
-rw-r--r--  1 root root   8928 Jul 12 21:33 skl_dmc_ver1_26.bin
lrwxrwxrwx  1 root root     19 Jul 12 21:33 skl_dmc_ver1.bin -> skl_dmc_ver1_26.bin
-rw-r--r--  1 root root 109636 Jul 21 17:03 skl_guc_ver1_1059.bin
lrwxrwxrwx  1 root root     21 Jul 21 17:03 skl_guc_ver1.bin -> skl_guc_ver1_1059.bin
-rw-r--r--  1 root root 128320 Jul 21 17:03 skl_guc_ver4_3.bin
lrwxrwxrwx  1 root root     18 Jul 21 17:03 skl_guc_ver4.bin -> skl_guc_ver4_3.bin

L'ultimo pacchetto driver sembra essere installato però:

$ apt-cache policy xserver-xorg-video-intel
xserver-xorg-video-intel:
  Installed: 2:2.99.917+git20160325-1ubuntu1
  Candidate: 2:2.99.917+git20160325-1ubuntu1
  Version table:
 *** 2:2.99.917+git20160325-1ubuntu1 500
        500 http://ftp.uni-stuttgart.de/ubuntu xenial/main amd64 Packages
        100 /var/lib/dpkg/status

Cosa significa esattamente questo avviso e come posso risolverlo?


3
Ho ottenuto W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1.bin for module i915_bpoe la mia CPU è SKylake con Intel HD.
Csaba Toth,

Inoltre, sto usando la 1.158versione del linux-firmwarepacchetto anziché la linea principale 1.157perché solo quello ha fornito un firmware funzionante per il mio wifi (killer wireless).
Csaba Toth,

3
@CsabaToth kblsta per Kabylake, che è il successore di Skylake. Poiché non si dispone di una tale CPU, è possibile ignorare l'avviso o semplicemente installare il driver Kabylake dallo stesso collegamento fornito nella risposta di Doug Smythies.
Byte Commander

Corretto, i7 6820hk è solo SkyLake, Kaby Lake è la prossima generazione
Csaba Toth,

Risposte:


62

Il pacchetto driver è in qualche modo in ritardo rispetto al kernel. Nel mio caso il firmware mancante non ha importanza perché non ho un processore SkyLake, ma nel tuo caso potrebbe importare. È possibile ottenere il firmware più recente da qui .

MODIFICA 1: Nota che il link è cambiato, ma i lettori dovrebbero comunque essere in grado di trovare ciò di cui hanno bisogno nel nuovo link, anche se a volte può essere difficile sapere esattamente cosa stai cercando.

EDIT 2: questa risposta dovrebbe essere applicabile ad alcuni altri nuovi requisiti del firmware che sono arrivati ​​da quando questa risposta è stata originariamente scritta. Per esempio:

W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1_01.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915

EDIT 3: per gli utenti che usano git, anche questa risposta funziona bene.


3
Ho installato entrambi i driver GuC e DMC per Skylake con successo e penso che l'avviso dovrebbe essere sparito ora. Grazie.
Byte Commander

4
Ah, l'ho trovato. Sembra che il nuovo aggiornamento del kernel abbia aggiunto il supporto per i nuovi processori Intel Kabylake e ora vorrebbe anche avere un driver del modulo per quelli. Probabilmente è superfluo in quanto non ho una CPU Kabylake, ma solo per ottenere l'avvertimento, ho anche scaricato e installato il driver DMC kbl dal sito che hai collegato. Ora sembra di nuovo a posto.
Byte Commander

2
Cosa significa "materia"? Il nuovo kernel non sarà in grado di avviarsi o non vi è alcun impatto visibile reale oltre ad alcuni messaggi di avviso?
musiKk,

3
@musiKk: se il tuo processore non è uno che ha bisogno di uno dei file del firmware mancanti, allora non "importa", il che significa che non ci saranno conseguenze a causa della sua mancanza. Ad esempio, solo un processore Skylake avrebbe bisogno del firmware "skl".
Doug Smythies,

1
@FeryArdiant: Sì, gli avvisi non sono correlati a quale processore stai effettivamente utilizzando, solo se hai il firmware o meno.
Doug Smythies,

18

Aggiornamento del 20 maggio 2019

Per rispondere alla tua domanda non è necessario aggiornare i driver per un processore che non stai eseguendo, ma è bello vedere che gli avvisi scompaiono quando lo fai.

Oggi ho ricevuto questi avvisi:

update-initramfs: Generating /boot/initrd.img-5.0.1-050001-generic
W: Possible missing firmware /lib/firmware/i915/skl_dmc_ver1_27.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1_04.bin for module i915
W: Possible missing firmware /lib/firmware/i915/cnl_dmc_ver1_07.bin for module i915
W: Possible missing firmware /lib/firmware/i915/icl_dmc_ver1_07.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_39.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver9_29.bin for module i915
W: Possible missing firmware /lib/firmware/i915/skl_guc_ver9_33.bin for module i915

Ho scaricato i BLOB (descritti nella sezione successiva) e quindi utilizzato:

$ sudo cp ~/Downloads/*.bin /lib/firmware/i915/

$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.0.1-050001-generic

Ora i miei driver Sky Lake ( skl) sono aggiornati e posso provare gli ultimi parametri del kernel raccomandati su Internet. I messaggi di avvertimento per i futuri processori Kaby Lake ( kbl), Cannon Lake ( cnl) e Ice Lake ( icl) sono andati rendendo la vita meno stressante.


Aggiornamento del 26 maggio 2018

Revisione minore 6 agosto 2018.

Nuova schermata di download di "BLOB"

Recentemente Intel ha creato una nuova pagina di download e un nuovo layout di pagina Web:

BLOB di firmware Intel i915

I file di download sono ora chiamati BLOB del firmware, che è new-speak per i driver del firmware . È l'acronimo di B inary L arge OB ject (BLOB).

I driver sono ordinati per processore:

  • bxt Broxton, annullato nel 2016, successore dei processori Cherry Trail
  • kbl Kabylake, 7a generazione, ad es. I7-7700
  • skl Skylake, 6a generazione, ad es. I7-6700

Quindi i driver sono organizzati per sottogruppo (spiegazione completa qui ):

  • GUC - GuC è progettato per eseguire la pianificazione del carico di lavoro grafico sui vari motori grafici paralleli.
  • DMC - DMC fornisce stati di inattività grafici a basso consumo aggiuntivi.
  • HUC - HuC è progettato per scaricare alcune delle funzioni multimediali dalla CPU alla GPU.

Abbina il messaggio di errore al driver necessario

Confronta il messaggio di errore che stai ricevendo update-initramfso update-grubper trovare il driver mancante. Nel tuo esempio il messaggio era " /lib/firmware/i915/kbl_guc_ver9_14.bin", quindi ti manca il GuC di Kabylake chiamato: kbl_guc_ver9_14.binnella pagina web mostrata sopra. Non vuoi quello più recente:kbl_guc_ver9_39.bin

Download del driver necessario

Non esiste più script di installazione come nelle versioni precedenti. È sufficiente evidenziare il driver mancante (BLOB) e fare clic su di esso. Viene visualizzata questa schermata:

Driver Intel i915 download.png

Inizialmente vedi solo il "dump esadecimale" ma dopo aver fatto clic sul link intitolato plain appare una finestra di download come illustrato sopra.

Fai clic su "Salva file"

Installa driver con semplice sudo cp(comando copia)

Dopo il download, l'installazione è un semplice sudo cp(comando copia) e non ci sono tarcomandi complicati o ./script_namepassaggi di installazione.

Installazione rapida

cd ~/Downloads
sudo cp kbl_guc_ver9_14.bin /lib/firmware/i915
sudo cp bxt_guc_ver8_7.bin /lib/firmware/i915

IMPORTANTE: sostituire kbl_guc_ver9_14.bine bxt_guc_ver8_7.binsopra con i nomi dei driver mancanti scaricati.

ECCO! Nuovo driver installato. Molto più semplice dei metodi di installazione precedenti per i driver Intel i915 mancanti!

TL; DR Installazione esplorativa

Ho già installato il driver. Questo lungo metodo di installazione ti dà un'idea degli effetti prima e dopo la copia di BLOB :

$ sudo updatedb
$ llocate kbl_guc_ver9_14.bin
ACCESS      OWNER  GROUP  SIZE    MODIFIED    NAME (updatdb last ran: 2018-05-26 12:07:57)
-rw-rw-r--  rick   rick   142656  2018-05-26  /home/rick/Downloads/kbl_guc_ver9_14.bin
-rw-rw-r--  rick   rick   142656  2017-02-24  /home/rick/Downloads/kbl_guc_ver9_14/kbl_guc_ver9_14.bin
-rw-r--r--  root   root   142656  2017-10-26  /lib/firmware/i915/kbl_guc_ver9_14.bin
$ diff /home/rick/Downloads/kbl_guc_ver9_14/kbl_guc_ver9_14.bin /lib/firmware/i915/kbl_guc_ver9_14.bin
# Blank line appears here signifying no differences from previous version
$ sudo cp /home/rick/Downloads/kbl_guc_ver9_14/kbl_guc_ver9_14.bin /lib/firmware/i915
$ llocate kbl_guc_ver9_14.bin
ACCESS      OWNER  GROUP  SIZE    MODIFIED    NAME (updatdb last ran: 2018-05-26 12:07:57)
-rw-rw-r--  rick   rick   142656  2018-05-26  /home/rick/Downloads/kbl_guc_ver9_14.bin
-rw-rw-r--  rick   rick   142656  2017-02-24  /home/rick/Downloads/kbl_guc_ver9_14/kbl_guc_ver9_14.bin
-rw-r--r--  root   root   142656  2018-05-26  /lib/firmware/i915/kbl_guc_ver9_14.bin

Utilizzare il comando di individuazione di seguito al posto di llocate .


14 febbraio 2017 - Intel ha rilasciato i driver

Secondo questa segnalazione di bug oggi ( W: Possibile firmware mancante /lib/firmware/i915/kbl_guc_ver9_14.bin per il modulo i915 ) Intel ha rilasciato i driver Kabylake e Broxton richiesti sui loro ( https://01.org/linuxgraphics/downloads/ firmware ) pagina web:

Driver Intel Graphics per Linux

Scarica i driver mancanti per Kabylake ( GuC - Ver 9.14 ) e ( DMC - Ver 1.01 ) e Broxton ( GuC - Ver 8.7 ). Questi sono in .tar.gze .tar.bz2formato.

Installa i driver in formato "tar"

Sebbene sia possibile eseguire gli install.shscript, queste istruzioni sono le più semplici.

Passa alla directory di download e verifica che i file siano presenti:

:~$ cd Downloads

:~/Downloads$ ll *tar*
-rw-rw-r-- 1 rick rick 69329 Feb 14 21:05 bxtgucver87.tar.gz
-rw-rw-r-- 1 rick rick  4338 Feb 14 21:06 kbldmcver101.tar.bz2
-rw-rw-r-- 1 rick rick 70402 Feb 14 21:06 kblgucver914.tar.gz

Estrarre i file tar compressi:

:~/Downloads$ tar -zxvf bxtgucver87.tar.gz
firmware/bxt/guc/bxt_guc_ver8_7/
firmware/bxt/guc/bxt_guc_ver8_7/install.sh
firmware/bxt/guc/bxt_guc_ver8_7/ReleaseNotes.txt
firmware/bxt/guc/bxt_guc_ver8_7/bxt_guc_ver8_7.bin

:~/Downloads$ tar -xjvf kbldmcver101.tar.bz2
kbl_dmc_ver1_01/
kbl_dmc_ver1_01/kbl_dmc_ver1_01.bin
kbl_dmc_ver1_01/install.sh
kbl_dmc_ver1_01/ReleaseNotes.txt

:~/Downloads$ tar -zxvf kblgucver914.tar.gz
firmware/kbl/guc/kbl_guc_ver9_14/
firmware/kbl/guc/kbl_guc_ver9_14/install.sh
firmware/kbl/guc/kbl_guc_ver9_14/kbl_guc_ver9_14.bin
firmware/kbl/guc/kbl_guc_ver9_14/ReleaseNotes.txt

Copia i file e aggiorna initramfs

:~/Downloads$ sudo cp -t /lib/firmware/i915/ firmware/bxt/guc/bxt_guc_ver8_7/bxt_guc_ver8_7.bin kbl_dmc_ver1_01/kbl_dmc_ver1_01.bin firmware/kbl/guc/kbl_guc_ver9_14/kbl_guc_ver9_14.bin
:~/Downloads$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.9.9-040909-generic

Si noti che i messaggi di errore (avviso) sono spariti!

Rimuovi i file di lavoro

:~/Downloads$ rm -r firmware kbl_dmc_ver1_01 *.tar.*

Posta storica (originale) per riferimento

Ho ricevuto due messaggi di avviso sui driver i915 mancanti per Kernel 4.6.3, 4.7.1, 4.7.2, 4.7.3 e 4.7.5. Li ho ignorati e le cose sono andate bene con la mia Intel Integrated Graphics HD4000. Vorrei che si potesse dire la stessa cosa di Nvidia e Nouvaeu.

Come indicato in una risposta nel collegamento, è possibile visitare il sito Web Intel per ottenere i driver grafici Linux più aggiornati su: intel-linux-graphics-firmwares . Tuttavia, quando ho letto quel sito qualche settimana fa, mi sono preoccupato di tutte le possibili cose che possono andare storte in diversi scenari, quindi ho rinunciato.

Hai installato 4.8 release candidate 6 dal 24 settembre? Questo è il più attuale in Ubuntu credo. Non devi rispondere, ma sono curioso di sapere perché hai scelto 4.8 invece di 4.7.5, ovvero quali sono le differenze necessarie per sistemare le cose.

Modifica - 19 ottobre 2016

Ora uso la versione 4.8.1 del kernel (versione reale e non rilasciare il candidato) per oltre una settimana e le cose funzionano bene. Questo è sotto Ubuntu 16.04 però. Ubuntu 16.10 è stato rilasciato il 13 ottobre e credo stia usando la versione 4.8.0 del kernel.

Non è il mio piano continuare ad aggiornare questa risposta, ma volevo porre fine all'inferenza secondo cui i candidati alla versione 4.8 potrebbero avere problemi. La versione reale no.

Modifica - 2 febbraio 2017

Ora in esecuzione la versione mainline della versione 4.9.5 del kernel che in questo momento Ubuntu 16.04 ha aggiornato il kernel alla versione 4.4.0-59. Intel ha cambiato il collegamento per i driver Intel Graphics per Linux e ho aggiornato il nuovo collegamento sopra.

Rimangono ancora domande sui messaggi di avviso generati da sudo update-initramfs -uquando la versione del kernel> 4.8 (Ubuntu 16.10 e Ubuntu 17.04):

W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1_01.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915

Come indicato nella segnalazione di bug ( bugs.launchpad.net - bug del firmware linux ) i driver semplicemente non esistono e non lo saranno fino a quando non verrà rilasciato un futuro chip chiamato "kaby lake".

Fai sparire i messaggi di avviso

Per far sparire il messaggio di avviso ho fatto quanto segue:

$ sudo cp assembly/hello /lib/firmware/i915/kbl_dmc_ver1_01.bin
$ sudo cp assembly/hello /lib/firmware/i915/kbl_guc_ver9_14.bin
$ sudo cp assembly/hello /lib/firmware/i915/bxt_guc_ver8_7.bin
$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.9.5-040905-generic

Ecco! Niente più messaggi di avviso.

Il programma "ciao" è un programma assemblatore da 504 byte che dice "Hello World!". È possibile copiare qualsiasi piccolo file eseguibile nei file binari del firmware indicati nei messaggi di errore. Quando alla fine Intel li rilascia, il software di aggiornamento li sostituirà con le versioni reali.

Come navigare nel sito Web Intel Graphics per Linux

È stato chiesto tramite commenti come navigare all'interno del nuovo sito Web Intel ( 01.org - Download grafici Linux ) che presenta questa schermata:

Intel Graphics per Linux 1

Digita Ubuntu 16.04nel campo di ricerca e fai clic sul Filterpulsante.

Per Ubuntu 16.10 selezionare il primo risultato. Nel nostro caso Ubuntu 16.04 seleziona il secondo risultato INTEL GRAPHICS UPDATE TOOL FOR LINUX* OS V2.0.2e appare questa schermata:

Intel Graphics per Linux 2

Nel mio caso ho selezionato Ubuntu 16.04 a 64 bit che ha scaricato il file intel-graphics-update-tool_2.0.2_amd64.debnella mia ~/Downloadsdirectory.

Il prossimo passo è aprire il terminale e usare:

cd Downloads
sudo dpkg -i intel*.deb

NOTA: Intel utilizza il carattere ttf antico e l'installazione non riuscirà se non è presente nel sistema. A questo punto devi usare:

sudo apt -f install
sudo apt update
sudo apt upgrade

Ora puoi eseguire lo Intel Graphics for Linux Updaterstrumento come mostrato in questa schermata:

Intel Graphics per Linux 3

Aggiungi le firme Intel per Ubuntu

Durante apt-get updatepuoi vedere messaggi di avviso / errore come questo:

W: GPG error: https://download.01.org/gfx/ubuntu/16.04/main xenial InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 56A3DEF863961D39
E: The repository 'https://download.01.org/gfx/ubuntu/16.04/main xenial InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Dovrai aggiungere le firme di Intel usando:

wget --no-check-certificate https://download.01.org/gfx/RPM-GPG-KEY-ilg-4 -O - | \
sudo apt-key add -

Quindi aggiorna in Ubuntu:

sudo apt update
sudo apt upgrade

2

Ho anche riscontrato un problema simile perché ho aggiornato il kernel dall'app "Software" Ubuntu Gnome 16.04 (gestore pacchetti nativo) e si è bloccato durante l'aggiornamento.

Quindi, mi è stato proibito di riavviare Ubuntu perché l'immagine di Linux è stata generata senza successo.

Per risolverlo da quel punto ho fatto quanto segue:

  1. Riavvia Linux e subito dopo lo schermo della scheda madre premi Shiftper entrare nel menu di grub;
  2. Seleziona la tua versione precedente di Linux dal menu. Nel mio caso *4.4.0-21-generice premere Enter;
  3. Una volta che Ubuntu è di nuovo attivo, disinstalla l'immagine linux rotta. Nel mio caso il *4.4.0-59-generic(ho usato Synaptic Package Manager per questo);
  4. Scarica e installa il firmware mancante dalla pagina Intel (come Doug Smythies) . Nel mio caso, ho ottenuto il KabyLake kbl DMC - Ver 1.01;
  5. E infine, installa nuovamente il kernel Linux *4.4.0-59-generic(nel mio caso) o solo linux-genericper l'ultimo kernel Linux generico completo.

Successo! Il kernel è aggiornato e tutti i firmware funzionano bene!

I migliori saluti!


Il collegamento ai firmware grafici non funziona più. Qualcuno sa dove si possono ottenere i firmware ora?
Nickolai Leschov,

Veramente? Posso ancora aprirlo qui. Tuttavia, prova anche il seguente link: git.kernel.org/cgit/linux/kernel/git/firmware/…
Matt Mello,

1

Se stai eseguendo debian (ho Debian GNU / Linux buster) segui questi passaggi:

  1. crea la cartella:

    sudo mkdir -p /lib/firmware/i915
    
  2. copia tutti i file da https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915 in questa cartella

  3. Riconfigurare il pacchetto initramfs-tools:

    sudo dpkg-reconfigure initramfs-tools
    

Il comando per Ubuntu è qualcosa di simile sudo update-initramfs -uma sono al telefono, quindi non posso confermare. Le domande di Debian sono fuori tema qui, quindi è improbabile che la tua risposta influenzi molte persone.
WinEunuuchs2Unix
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.