web-dev-qa-db-fra.com

"W: Firmware manquant possible pour le module i915_bpo" lors de la mise à jour d'initramfs

Lorsque j'exécute une mise à jour du noyau ou du pilote NVIDIA sur mon 16.04, cela déclenche une reconstruction par initramfs qui génère l'avertissement ci-dessous:

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

J'ai un ordinateur portable avec deux puces graphiques, un NVIDIA GeForce 940M et le graphique intégré d'Intel i5-6200U.

Le périphérique utilisé est ma carte 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

Voici le résultat de lshw -c video, correspondant à ma puce graphique Intel qui devrait utiliser ce pilote:

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

Le fichier dans l'avertissement n'existe pas, seulement ceux:

$ 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

Le dernier package de pilote semble être installé cependant:

$ 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

Que signifie exactement cet avertissement et comment puis-je le résoudre?

72
Byte Commander

Le package de pilotes est quelque peu à la traîne par rapport au noyau. Dans mon cas, le firmware manquant n'a pas d'importance, car je n'ai pas de processeur SkyLake, mais dans votre cas, cela peut être important. Vous pouvez obtenir le nouveau firmware à partir de ici .

EDIT 1: Notez que le lien a changé, mais les lecteurs devraient toujours être en mesure de trouver ce dont ils ont besoin dans le nouveau lien, même s’il peut parfois être difficile de savoir exactement ce que vous recherchez.

EDIT 2: Cette réponse devrait s’appliquer à certaines autres nouvelles exigences relatives au microprogramme apparues depuis la rédaction de cette réponse. Par exemple:

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: Pour les utilisateurs de git, cette réponse fonctionne également bien.

60
Doug Smythies

Mise à jour du 8 avril 2019

Il y a quelque temps (et je ne sais pas exactement quand), Canonical a facilité la mise à jour des pilotes Linux i915 dans Ubuntu. Essayez cette commande en premier:

Sudo apt install --reinstall linux-firmware

Si vous recevez toujours des messages d'avertissement, passez à la section suivante intitulée "Mise à jour du 26 mai 2018".

Mise à jour du 26 mai 2018

Récemment, Intel a basculé vers le téléchargement de fichiers appelés blobs , ce qui signifie B inary L arge OB ject (BLOB).

Pour voir les nouvelles méthodes d'installation du pilote i915, voir ceci réponse mis à jour aujourd'hui.


Skylake (skl) Firmware

Un nouveau lien permettant d’accéder au micrologiciel Skylake (skl) est disponible ici ( 1.org - Téléchargements de microprogrammes graphiques pour Linux ). Un exemple de capture d'écran suit.

Intel Graphics for Linux 4

Si vous essayez de sélectionner les microprogrammes Kabylake (kbl) ou Broxton (bxt), vous obtiendrez un message d'erreur car ces pilotes n'ont pas encore été publiés.

Logiciels manquants pour Kabylake (kbl) et Broxton (bxt)

L'ancien lien nécessite un code d'accès spécial. Intel a changé leur lien de site Web pour le reste d'entre nous.

Des questions subsistent concernant les messages d'avertissement générés par Sudo update-initramfs -u lorsque la version du noyau> 4.8 (Ubuntu 16.10 et 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

À un moment donné, le rapport de bogue ( bugs.launchpad.net - bogue du firmware de Linux ) indiquait que les pilotes n'existaient tout simplement pas et n'existerait pas avant la sortie d'une future puce appelée "kaby lake". Depuis février 2017, vous pouvez installer ces pilotes en suivant les instructions suivantes: Mise à jour du noyau vers la version 4.8, les avertissements relatifs au microprogramme sont manquants

Faire disparaître les messages d'avertissement

À compter de février 2017, ignorez cette section et suivez les instructions du dernier paragraphe ci-dessus.

Pour que le message d'avertissement disparaisse, j'ai procédé comme suit:

$ 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! Pas plus de messages d'avertissement.

Le programme "hello" est un programme assembleur de 504 octets qui dit "Hello World!". Vous pouvez copier n'importe quel petit exécutable dans les fichiers binaires du microprogramme indiqués dans les messages d'erreur. Lorsque Intel les publiera éventuellement, le programme de mise à jour du logiciel les remplacera par les versions réelles.

Comment naviguer sur le site Web Intel Graphics for Linux

Il a été demandé via des commentaires comment naviguer dans le nouveau site Web d’Intel ( 1.org - Téléchargements de Linux Graphics ) qui présente cet écran:

Intel Graphics for Linux 1

Tapez Ubuntu 16.04 dans le champ de recherche et cliquez sur le bouton Filter.

Pour Ubuntu 16.10, sélectionnez le premier résultat. Dans notre cas, Ubuntu 16.04 sélectionne le deuxième résultat INTEL GRAPHICS UPDATE TOOL FOR LINUX* OS V2.0.2 et cet écran apparaît:

Intel Graphics for Linux 2

Dans mon cas, j'ai sélectionné Ubuntu 16.04 64 bits qui a téléchargé le fichier intel-graphics-update-tool_2.0.2_AMD64.deb dans mon répertoire ~/Downloads.

La prochaine étape consiste à ouvrir le terminal et à utiliser:

cd Downloads
Sudo dpkg -i intel*.deb

REMARQUE: Intel utilise la police ancien ttf et votre installation échouera si elle ne se trouve pas sur votre système. À ce stade, vous devez utiliser:

Sudo apt -f install
Sudo apt update
Sudo apt upgrade

Vous pouvez maintenant exécuter l'outil Intel Graphics for Linux Updater comme indiqué sur cet écran:

Intel Graphics for Linux 3

Ajouter des signatures Intel pour Ubuntu

Pendant apt-get update, vous pouvez voir des messages d'avertissement/d'erreur comme celui-ci:

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.

Vous devrez ajouter les signatures d'Intel en utilisant:

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

Puis mettez à jour dans Ubuntu:

Sudo apt update
Sudo apt upgrade
14
WinEunuuchs2Unix

J'ai également rencontré un problème similaire car j'ai mis à jour le noyau à partir de l'application "Logiciel" Ubuntu Gnome 16.04 (gestionnaire de paquets natif) et il s'est bloqué lors de la mise à jour.

On m'a donc interdit de redémarrer Ubuntu parce que l'image linux n'a pas été générée.

Pour résoudre ce problème à partir de ce point, j'ai procédé comme suit:

  1. Redémarrez linux et juste après l’écran de la carte mère, appuyez sur Shift pour accéder au menu Grub.
  2. Sélectionnez votre version précédente de Linux dans le menu. Dans mon cas, *4.4.0-21-generic et appuyez sur Enter;
  3. Une fois Ubuntu réactivé, désinstallez l’image linux cassée. Dans mon cas, le *4.4.0-59-generic (j'ai utilisé le gestionnaire de paquets Synaptic pour cela);
  4. Téléchargez et installez le firmware manquant à partir de page Intel (identique à Doug Smythies) . Dans mon cas, j'ai le KabyLake kbl DMC - Ver 1.01;
  5. Enfin, réinstallez le noyau linux *4.4.0-59-generic (dans mon cas) ou simplement linux-generic pour obtenir le dernier noyau générique Linux complet.

Succès! Le noyau est à jour et tous les firmwares fonctionnent bien!

Meilleures salutations!

2
Matt Mello

Si vous utilisez debian (j'ai Debian GNU/Linux buster), suivez ces étapes:

  1. créer le dossier:

    Sudo mkdir -p /lib/firmware/i915
    
  2. copier tous les fichiers de https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915 dans ce dossier

  3. Reconfigurez le paquet initramfs-tools:

    Sudo dpkg-reconfigure initramfs-tools
    
0
Christian Noack