Ubuntu: “W: Possible missing firmware for module i915_bpo” when updating initramfs



Question:

When I run a kernel or NVIDIA driver update on my 16.04, this triggers an initramfs rebuild which outputs the warning below:

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  

I have a notebook with two graphics chips, an NVIDIA GeForce 940M and the Intel i5-6200U's integrated graphics.

The device in use is my NVIDIA card:

$ 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  

Here's the output of lshw -c video, corresponding to my Intel graphics chip which should use that 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)  

The file in the warning does not exist, only those:

$ 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  

The latest driver package seems to be installed though:

$ 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  

What does this warning mean exactly and how can I fix it?


Solution:1

The driver package is somewhat lagging the kernel. In my case the missing firmware doesn't matter because I don't have a SkyLake processor, but in your case it might matter. You can get the newer firmware from here.

EDIT 1: Note the link changed, but readers should still be able to find what they need in the new link, although sometimes it can be difficult to know exactly what your are looking for.

EDIT 2: This answer should be applicable to some other new firmware requirements that have come along since this answer was originally written. For example:

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  


Solution:2

Skylake (skl) Firmware

There is a new link for accessing Skylake (skl) firmware for those with that graphics engine found here (01.org - Linux Graphics Firmware Downloads). A sample screen shot follows.

Intel Graphics for Linux 4

If you try to select the Kabylake (kbl) or Broxton (bxt) firmware you'll get an error message as these drivers have not been released to the public yet.

Missing Kabylake (kbl) and Broxton (bxt) Firmware

The old link requires special signon. Intel has changed their website link for the rest of us.

Questions still remain about the warning messages generated by sudo update-initramfs -u when Kernel version > 4.8 (Ubuntu 16.10 and 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  

At one time the bug report (bugs.launchpad.net - linux firmware bug) said the drivers simply do not exist and will not until a future chip called "kaby lake" is released. As of February 2017 however you can install these drivers following these instructions: Updated kernel to 4.8 now missing firmware warnings

Make the warning messages go away

As of February 2017 ignore this section and follow the instructions in the last paragraph above.

To make the warning message go away I did the following:

$ 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 more warning messages.

The program "hello" is a 504 byte assembler program that says "Hello World!". You can copy any small executable to the firmware binaries given in the error messages. When Intel eventually releases them the software updater will replace them with the real versions.

How to navigate Intel Graphics for Linux website

It was asked via comments how to navigate within the the new Intel website (01.org - Linux Graphics Downloads) which presents this screen:

Intel Graphics for Linux 1

Type Ubuntu 16.04 into the search field and click the Filter button.

For Ubuntu 16.10 select the first result. In our case Ubuntu 16.04 select the second result INTEL GRAPHICS UPDATE TOOL FOR LINUX* OS V2.0.2 and this screen appears:

Intel Graphics for Linux 2

In my case I selected Ubuntu 16.04 64-bit which downloaded the file intel-graphics-update-tool_2.0.2_amd64.deb to my ~/Downloads directory.

The next step is to open the terminal and use:

cd Downloads  sudo dpkg -i intel*.deb  

NOTE: Intel uses the ancients ttf font and your installation will fail if it's not on your system. At this point you need to use:

sudo apt -f install  sudo apt update  sudo apt upgrade  

Now you can run the Intel Graphics for Linux Updater tool as this screen shows:

Intel Graphics for Linux 3

Add Intel signatures for Ubuntu

During apt-get update you can see warning / error messages like this:

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.  

You'll need to add Intel's signatures using:

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

Then update in Ubuntu:

sudo apt update  sudo apt upgrade  


Solution:3

I also have faced a similar problem because I've updated the kernel from the Ubuntu Gnome 16.04 "Software" app (native package manager) and it crashed while updating.

So, I was barred to boot Ubuntu again because the linux-image was unsuccessfully generated.

To solve it from that point I did the following:

  1. Reboot linux and right after motherboard screen press Shift to enter into grub menu;
  2. Select your previous linux version from menu. In my case *4.4.0-21-generic and press Enter;
  3. Once Ubuntu is up again, uninstall the broken linux-image. In my case the *4.4.0-59-generic (I've used Synaptic package manager for it);
  4. Download and install the missing firmware from Intel page (same as Doug Smythies). In my case, I got the KabyLake kbl DMC - Ver 1.01;
  5. And finally, install again the linux kernel *4.4.0-59-generic (in my case) or just linux-generic for the latest complete generic Linux kernel.

Success! Kernel is up-to-date and all firmwares working fine!

Best regards!


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »