"W: Posible firmware faltante para el módulo i915_bpo" al actualizar initramfs

75

Cuando ejecuto una actualización del controlador de kernel o NVIDIA en mi 16.04, esto desencadena una reconstrucción de initramfs que genera la siguiente advertencia:

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

Tengo un portátil con dos chips gráficos, una NVIDIA GeForce 940M y los gráficos integrados de Intel i5-6200U.

El dispositivo en uso es mi tarjeta 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: [email protected]
           GLX Renderer: GeForce 940M/PCIe/SSE2 GLX Version: 4.5.0 NVIDIA 367.35

Aquí está la salida de lshw -c video, correspondiente a mi chip de gráficos Intel que debería usar ese controlador:

    *-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)

El archivo en la advertencia no existe, solo aquellos:

$ 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

Sin embargo, el último paquete de controladores parece estar instalado:

$ 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

¿Qué significa exactamente esta advertencia y cómo puedo solucionarla?

Byte Commander
fuente
3
Llegué W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1.bin for module i915_bpoy mi CPU es Skylake con Intel HD en ella.
Csaba Toth
Además, estoy usando la 1.158versión del linux-firmwarepaquete en lugar de la línea principal 1.157porque solo eso proporcionó el firmware de trabajo para mi wifi (inalámbrico asesino).
Csaba Toth
3
@CsabaToth kblsignifica Kabylake, que es el sucesor de Skylake. Como no tiene una CPU de este tipo, puede ignorar la advertencia o simplemente instalar el controlador Kabylake desde el mismo enlace que aparece en la respuesta de Doug Smythies.
Byte Commander
Correcto, i7 6820hk es solo SkyLake, Kaby Lake es la próxima generación
Csaba Toth

Respuestas:

62

El paquete del controlador está algo rezagado con el núcleo. En mi caso, el firmware faltante no importa porque no tengo un procesador SkyLake, pero en su caso podría importar. Puede obtener el firmware más reciente desde aquí .

EDITAR 1: Tenga en cuenta que el enlace cambió, pero los lectores aún deberían poder encontrar lo que necesitan en el nuevo enlace, aunque a veces puede ser difícil saber exactamente lo que está buscando.

EDITAR 2: Esta respuesta debería ser aplicable a algunos otros requisitos de firmware nuevos que han aparecido desde que esta respuesta se escribió originalmente. Por ejemplo:

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

EDITAR 3: para los usuarios que usan git, esta respuesta también funciona bien.

Doug Smythies
fuente
3
Instalé los controladores GuC y DMC para Skylake con éxito y creo que la advertencia debería desaparecer ahora. Gracias.
Byte Commander
44
Ah, lo encontré. Parece que la nueva actualización del kernel agregó soporte para los nuevos procesadores Kabylake Intel y ahora también le gustaría tener un controlador de módulo para esos. Probablemente sea superfluo, ya que no tengo una CPU Kabylake, pero solo para quitar la advertencia, también descargué e instalé el controlador kbl DMC del sitio que vinculaste. Se ve bien de nuevo ahora.
Byte Commander
2
¿Qué significa "materia"? ¿El nuevo núcleo no podrá arrancar o no habrá un impacto visible real además de algunos mensajes de advertencia?
musiKk
3
@musiKk: si su procesador no es uno que necesita uno de los archivos de firmware que faltan, entonces no "importa", lo que significa que no habrá consecuencias debido a que faltan. Por ejemplo, solo un procesador Skylake necesitaría el firmware "skl".
Doug Smythies
1
@FeryArdiant: Sí, las advertencias no están relacionadas con el procesador que está utilizando, solo si tiene el firmware o no.
Doug Smythies
18

Actualización del 20 de mayo de 2019

Para responder a su pregunta, no necesita actualizar los controladores de un procesador que no está ejecutando, pero es agradable ver que las advertencias desaparecen cuando lo hace.

Hoy recibí estas advertencias:

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

Descargué los blobs (descritos en la siguiente sección) y luego usé:

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

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

Ahora mis controladores Sky Lake ( skl) están actualizados y puedo probar los últimos parámetros del kernel recomendados en Internet. Los mensajes de advertencia para los futuros procesadores Kaby Lake ( kbl), Cannon Lake ( cnl) y Ice Lake ( icl) se han ido haciendo la vida menos estresante.


Actualización del 26 de mayo de 2018

Revisión menor 6 de agosto de 2018.

Nueva pantalla de descarga de "blobs"

Recientemente, Intel ha creado una nueva página de descarga y un nuevo diseño de página web:

Intel i915 blobs de firmware

Los archivos de descarga ahora se llaman blobs de firmware, que es nuevo para los controladores de firmware . Es sinónimo de B inary L arge OB ject (BLOB).

Los controladores están ordenados por procesador:

  • bxt Broxton, cancelado en 2016, sucesor de los procesadores Cherry Trail
  • kbl Kabylake, 7ma generación, p. Ej. I7-7700
  • skl Skylake, 6ta generación, p. Ej. I7-6700

Luego, los controladores se organizan por subgrupo (explicación completa aquí ):

  • GUC - GuC está diseñado para realizar la programación de la carga de trabajo de gráficos en los diversos motores de gráficos en paralelo.
  • DMC : DMC proporciona gráficos adicionales de estados inactivos de baja potencia.
  • HUC - HuC está diseñado para descargar algunas de las funciones multimedia de la CPU a la GPU.

Coincide el mensaje de error con el controlador necesario

Compare el mensaje de error que está recibiendo update-initramfso update-grubpara encontrar el controlador que falta. En su ejemplo, el mensaje era " /lib/firmware/i915/kbl_guc_ver9_14.bin", por lo que le falta la llamada de Kabylake GuC: kbl_guc_ver9_14.binen la página web que se muestra arriba. No quieres el más nuevo:kbl_guc_ver9_39.bin

Descargar controlador necesario

No hay más script de instalación como en versiones anteriores. Simplemente resalte el controlador que falta (blob) y haga clic en él. Esta pantalla aparece:

Descarga de controladores Intel i915.png

Inicialmente solo se ve el "volcado hexadecimal", pero después de hacer clic en el enlace titulado sin formato aparece una ventana de descarga como se ilustra arriba.

Haga clic en "Guardar archivo"

Instale el controlador con simple sudo cp(comando de copia)

Después de la descarga, la instalación es simple sudo cp(comando de copia) y no hay tarcomandos complicados ni ./script_namepasos de instalación.

Instalación rápida

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

IMPORTANTE: Reemplace kbl_guc_ver9_14.biny más bxt_guc_ver8_7.binarriba con los nombres de controladores que faltan que descargó.

VOILA! Se instala un nuevo controlador. ¡Mucho más simple que los métodos de instalación anteriores para los controladores faltantes Intel i915!

TL; DR Instalación exploratoria

Ya tenía el controlador instalado. Este largo método de instalación le da una idea de los efectos antes y después de copiar el 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

Utilice el siguiente comando de localización en lugar de llocate .


14 de febrero de 2017: Intel lanzó controladores

Según este informe de error de hoy ( W: Posible falta de firmware /lib/firmware/i915/kbl_guc_ver9_14.bin para el módulo i915 ) Intel ha lanzado los controladores Kabylake y Broxton necesarios en sus ( https://01.org/linuxgraphics/downloads/ firmware ) página web:

Gráficos Intel para controladores de Linux

Descargue los controladores que faltan para Kabylake ( GuC - Ver 9.14 ) y ( DMC - Ver 1.01 ) y Broxton ( GuC - Ver 8.7 ). Estos están en .tar.gzy .tar.bz2formato.

Instalar controladores en formato "tar"

Aunque puede ejecutar los install.shscripts, estas instrucciones son las más fáciles.

Cambie al directorio de descarga y verifique que los archivos estén allí:

:~$ 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

Extraiga los archivos tar comprimidos:

:~/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

Copie los archivos y actualice 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

¡Observe que los mensajes de error (advertencia) se han ido!

Eliminar archivos de trabajo

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

Publicación histórica (original) para referencia

He recibido dos mensajes de advertencia sobre controladores i915 faltantes para Kernel's 4.6.3, 4.7.1, 4.7.2, 4.7.3 y 4.7.5. Los ignoré y las cosas han ido bien con mi HD4000 Intel Integrated Graphics. Desearía que se pudiera decir lo mismo de Nvidia y Nouvaeu.

Como decía una respuesta en su enlace, puede ir al sitio web de Intel para obtener la mayoría de los controladores de gráficos de Linux actualizados en: intel-linux-graphics-firmwares . Sin embargo, cuando leí ese sitio hace unas semanas, estaba preocupado por todas las cosas posibles que pueden salir mal en diferentes escenarios, así que opté por no hacerlo.

¿Instaló 4.8 Release Release 6 desde el 24 de septiembre? Eso es lo más actual en Ubuntu, creo. No tiene que responder, pero tengo curiosidad de por qué eligió 4.8 en lugar de 4.7.5, es decir, cuáles son las diferencias que necesita para arreglar las cosas.

Editar - 19 de octubre de 2016

Ahora uso la versión 4.8.1 del kernel (versión real y no candidato de lanzamiento) durante más de una semana y las cosas funcionan bien. Sin embargo, esto está bajo Ubuntu 16.04. Ubuntu 16.10 fue lanzado el 13 de octubre y está usando Kernel versión 4.8.0, creo.

No es mi plan seguir actualizando esta respuesta, pero quería dejar de lado la inferencia de que los candidatos de la versión 4.8 podrían tener problemas. La versión real no.

Editar - 2 de febrero de 2017

Ahora se está ejecutando la versión principal de Kernel versión 4.9.5 que en este momento Ubuntu 16.04 ha actualizado su núcleo a 4.4.0-59. Intel cambió su enlace para Intel Graphics para controladores de Linux y actualicé el nuevo enlace de arriba.

Todavía quedan preguntas sobre los mensajes de advertencia generados sudo update-initramfs -ucuando Kernel versión> 4.8 (Ubuntu 16.10 y 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

Como se indica en el informe de error ( bugs.launchpad.net - error de firmware de Linux ) los controladores simplemente no existen y no existirán hasta que se libere un futuro chip llamado "kaby lake".

Haz que los mensajes de advertencia desaparezcan

Para hacer desaparecer el mensaje de advertencia, hice lo siguiente:

$ 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

Voila! No más mensajes de advertencia.

El programa "hola" es un programa ensamblador de 504 bytes que dice "¡Hola Mundo!". Puede copiar cualquier pequeño ejecutable en los binarios de firmware que figuran en los mensajes de error. Cuando Intel finalmente los lance, el actualizador de software los reemplazará con las versiones reales.

Cómo navegar por el sitio web de Intel Graphics para Linux

Se le preguntó a través de comentarios cómo navegar dentro del nuevo sitio web de Intel ( 01.org - Linux Graphics Downloads ) que presenta esta pantalla:

Gráficos Intel para Linux 1

Escriba Ubuntu 16.04en el campo de búsqueda y haga clic en el Filterbotón.

Para Ubuntu 16.10, seleccione el primer resultado. En nuestro caso, Ubuntu 16.04 selecciona el segundo resultado INTEL GRAPHICS UPDATE TOOL FOR LINUX* OS V2.0.2y aparece esta pantalla:

Gráficos Intel para Linux 2

En mi caso, seleccioné Ubuntu 16.04 de 64 bits que descargó el archivo intel-graphics-update-tool_2.0.2_amd64.deba mi ~/Downloadsdirectorio.

El siguiente paso es abrir la terminal y usar:

cd Downloads
sudo dpkg -i intel*.deb

NOTA: Intel usa la fuente ttf de los antiguos y su instalación fallará si no está en su sistema. En este punto necesitas usar:

sudo apt -f install
sudo apt update
sudo apt upgrade

Ahora puede ejecutar la Intel Graphics for Linux Updaterherramienta como muestra esta pantalla:

Gráficos Intel para Linux 3

Agregar firmas Intel para Ubuntu

Durante apt-get updatepuede ver mensajes de advertencia / error como este:

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.

Deberá agregar las firmas de Intel usando:

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

Luego actualice en Ubuntu:

sudo apt update
sudo apt upgrade
WinEunuuchs2Unix
fuente
2

También me he enfrentado a un problema similar porque actualicé el kernel desde la aplicación "Software" Ubuntu Gnome 16.04 (administrador de paquetes nativo) y se bloqueó durante la actualización.

Entonces, se me prohibió iniciar Ubuntu nuevamente porque la imagen de Linux se generó sin éxito.

Para resolverlo desde ese punto hice lo siguiente:

  1. Reinicie Linux y justo después de la pantalla de la placa base presione Shiftpara ingresar al menú de grub;
  2. Seleccione su versión anterior de Linux del menú. En mi caso *4.4.0-21-genericy prensa Enter;
  3. Una vez que Ubuntu vuelva a funcionar, desinstale la imagen Linux rota. En mi caso, *4.4.0-59-generic(he usado el administrador de paquetes Synaptic para ello);
  4. Descargue e instale el firmware faltante de la página de Intel (igual que Doug Smythies) . En mi caso, obtuve el KabyLake kbl DMC - Ver 1.01;
  5. Y finalmente, vuelva a instalar el kernel de Linux *4.4.0-59-generic(en mi caso) o solo linux-genericpara el último kernel genérico completo de Linux.

¡Éxito! ¡Kernel está actualizado y todos los firmwares funcionan bien!

¡Atentamente!

Matt Mello
fuente
El enlace a firmwares gráficos ya no funciona. ¿Alguien sabe dónde se puede obtener firmwares ahora?
Nickolai Leschov
De Verdad? Todavía puedo abrirlo aquí. Sin embargo, pruebe también el siguiente enlace: git.kernel.org/cgit/linux/kernel/git/firmware/…
Matt Mello
1

Si está ejecutando debian (tengo el buster Debian GNU / Linux) simplemente siga estos pasos:

  1. crea la carpeta:

    sudo mkdir -p /lib/firmware/i915
    
  2. copie todos los archivos de https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915 a esta carpeta

  3. Reconfigure el paquete initramfs-tools:

    sudo dpkg-reconfigure initramfs-tools
    
Christian Noack
fuente
El comando para Ubuntu es algo así, sudo update-initramfs -upero estoy en el teléfono, así que no puedo confirmar. Las preguntas de Debian están fuera de tema aquí, por lo que es poco probable que su respuesta influya en muchas personas.
WinEunuuchs2Unix