107

I upgraded my laptop to have the 4.8 kernel and during the process the following warnings came up.

update-initramfs: Generating /boot/initrd.img-4.8.0-040800-generic
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

These seem a little odd to me as my CPU is i7-6700HQ which is a skylake and my understanding is that these are for different CPUs? I followed the instructions here prior as in the past I had warnings regarding my CPU family.

Are these warnings things I should just ignore, or should I install the guc/dmc drivers for those CPU families?

7
  • Do not remove your existing kernels. So that even if you face any problems with the latest kernels, you can revert back to the old ones.
    – Raphael
    Oct 3, 2016 at 10:50
  • 3
    I'm voting to close this question as off-topic because the question is about an unsupported kernel.
    – Pilot6
    Oct 3, 2016 at 12:49
  • Those messages are for different CPU's, and you are not getting the one for skylake CPUs, so you are O.K. to ignore them. Oct 3, 2016 at 15:34
  • @Pilot6 May I ask why this is off-topic? It's regarding Ubuntu 16.04 and the 4.8 kernel installed from the Ubuntu kernel ppa?
    – Malachi
    Oct 3, 2016 at 17:22
  • 3
    Because Ubuntu 16.10 uses Linux Kernel 4.8 now I nominate this question for reopening. The warning messages effect many users and this thread is referenced in a bug report at: bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1611124 Feb 3, 2017 at 1:30

6 Answers 6

158

May 20, 2019 Update

To answer your question you don't need to update drivers for a processor you aren't running but it is nice to see the warnings disappear when you do.

Today I received these warning:

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

I downloaded the blobs (described in next section) and then used:

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

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

Now my Sky Lake (skl) drivers are up to date and I can try out latest kernel parameters recommended on the internet. Warning messages for future processors Kaby Lake (kbl), Cannon Lake (cnl) and Ice Lake (icl) are gone making life less stressful.


May 26, 2018 Update

Minor revision August 6, 2018.

New download screen of "blobs"

Recently Intel has created a new download page and new web page layout:

Intel i915 firmware blobs

The download files are now called firmware blobs which is new-speak for firmware drivers. It stands for Binary Large OBject (BLOB).

Drivers are sorted by processor:

  • bxt Broxton, Canceled in 2016, successor to Cherry Trail processors
  • kbl Kabylake, 7th generation, eg i7-7700
  • skl Skylake, 6th generation, eg i7-6700

Then drivers are organized by subgroup (full explanation here):

  • GUC - GuC is designed to perform graphics workload scheduling on the various graphics parallel engines.
  • DMC - DMC provides additional graphics low-power idle states.
  • HUC - HuC is designed to offload some of the media functions from the CPU to GPU.

Match error message to driver needed

Compare the error message you are receiving by update-initramfs or update-grub to find the missing driver. In your example the message was "/lib/firmware/i915/kbl_guc_ver9_14.bin" so you are missing the Kabylake GuC called: kbl_guc_ver9_14.bin in the web page shown above. You don't want the newer one: kbl_guc_ver9_39.bin

Download driver needed

There is no more installation script as in past versions. Simply highlight the missing driver (blob) and click on it. This screen appears:

Intel i915 drivers download.png

Initially you only see the "hex dump" but after clicking the link titled plain a download window appears as illustrated above.

Click "Save File"

Install driver with simple sudo cp (copy command)

After downloading, installation is a simple sudo cp (copy command) and there are no complicated tar commands, or ./script_name installation steps.

Quick Install

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

IMPORTANT: Replace kbl_guc_ver9_14.bin and bxt_guc_ver8_7.bin above with the missing driver names you downloaded.

VOILA! New driver is installed. Much simpler than previous installation methods for missing Intel i915 drivers!

TL;DR Exploratory Installation

I already had the driver installed. This lengthy installation method gives you an idea of before and after effects of copying the 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

Use the locate command below in place of llocate.


February 14, 2017 - Intel has released drivers

As per this bug report today (W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915) Intel has released the required Kabylake and Broxton drivers on their (https://01.org/linuxgraphics/downloads/firmware) web page:

Intel Graphics for Linux Drivers

Download the missing drivers for Kabylake (GuC - Ver 9.14) and (DMC - Ver 1.01) and Broxton (GuC - Ver 8.7). These are in .tar.gz and .tar.bz2 format.

Install drivers in "tar" format

Although you can run the install.sh scripts these instructions are the easiest.

Change to the download directory and verify files are there:

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

Extract the compressed tar files:

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

Copy the files and update 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

Notice the error (warning) messages are gone!

Remove work files

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

Historical (Original) Post for reference

I've had two warning messages on missing i915 drivers for Kernel's 4.6.3, 4.7.1, 4.7.2, 4.7.3 and 4.7.5. I've ignored them and things have been fine with my HD4000 Intel Integrated Graphics. I wish the same thing could be said about Nvidia and Nouvaeu.

As one answer in your link stated you can go to Intel's website to get most up-to-date Linux Graphics drivers at: intel-linux-graphics-firmwares. However when I read that site a few weeks ago I was concerned with all the possible things that can go wrong under different scenarios so I opted out.

Did you install 4.8 release candidate 6 from September 24th? That's the most current in Ubuntu I believe. You don't have to answer but I'm curious why you went with 4.8 instead of 4.7.5, ie what the differences are you need to fix things.

Edit - October 19, 2016

Now using kernel version 4.8.1 (real version and not release candidate) for over a week and things are working nicely. This is under Ubuntu 16.04 though. Ubuntu 16.10 was released October 13th and it is using Kernel version 4.8.0 I believe.

It's not my plan to keep updating this answer but I wanted to lay to rest the inference that 4.8 release candidates might have problems. The real version does not.

Edit - February 2, 2017

Now running Kernel version 4.9.5 mainline version which at this time Ubuntu 16.04 has updated it's kernel to 4.4.0-59. Intel changed it's link for Intel Graphics for Linux drivers and I updated the new link above.

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

As stated in the bug report (bugs.launchpad.net - linux firmware bug) the drivers simply do not exist and will not until a future chip called "kaby lake" is released.

Make the warning messages go away

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
15
  • 1
    The warnings have been around for awhile. I may be wrong about the exact version they came out on. As far as what can go wrong the web page is filled with "If this happens you have to do that". I have to run now but I can review it again and update the answer later if you like. I view the 4.7.x versions as stable whilst the 4.8.x series "release candidates" more susceptible to new bugs and kernel regressions. But I'm not a kernel expert, just a hobbyist/enthusiast. Oct 3, 2016 at 11:40
  • 1
    "Intel has created a new download page" The download page you're referring to is not an Intel download page, it is the GNU/Linux kernel repository of imported firmware. That is misleading. In fact, linux-firmware is exactly the thing that your distribution should already be exposing to you likely as a package, so downloading manually from there is not at all a good idea. Install the linux-firmware package instead. If you're looking for firmware that is not in this package, it's not going to be on this page you linked either.
    – lhunath
    Jul 30, 2018 at 14:31
  • 1
    This approach (May 26, 2018 Update) worked flawlessly for me. The claim that these firmwares are included in the linux-firmware package is clearly false at the moment.
    – Elder Geek
    Sep 18, 2018 at 13:03
  • 1
    @ElderGeek I haven't played with Wayland yet but might soon to discover it's xrandr equivalent to setting monitor brightness and gamma. Sep 18, 2018 at 19:51
  • 2
    @ElderGeek It appears Wayland still needs a lot of work. Here are the intel i915 kernel parameters I've read about, but cannot remember where: i915.enable_rc6=0 i915.enable_psr=0 i915.preliminary_hw_support=1 i915.enable_hd_vgaarb=1 i915.enable_guc_loading=1 i915.enable_guc_submission Sep 19, 2018 at 10:37
6

You can download the missing Kernel Firmware from the Intel Website https://01.org/linuxgraphics/downloads/firmware

  1. Download the required files
  2. Expand the files using tar -xvf
  3. Install the drivers using sudo bash ./install --install

Repeat for all the mentioned firmwares and then reboot

4

Intel have changed the site again, now redirecting to git.kernel.org.

Look at your warnings using a terminal window (terminal, PuTTY, etc. or on the local machine) then for each one click the link in Intel's git page using a web browser (which brings up a hex dump of the file), copy the link location from the plain button above the dump, go back to the terminal and wget this link.

Once you've got the files corresponding to each warning, cp or sudo cp them to /lib/firmware/i915.

1
  • 1
    Welcome to Ask Ubuntu! ;-) It's better to edit the existing answer with new information than to post an additional answer.
    – Fabby
    May 6, 2018 at 9:52
0

I got it and fixed it with testing.

After each command try reboot to know if no more commands needed.

Test if this works. Both or one of packages

sudo apt install firmware-b43-installer

It also installs and uses b43-fwcutter

Maybe some need not that but

sudo apt install firmware-b43legacy-installer

Then

modprobe b43

I think this one fixed it, in case after reboot doesnt work.

maybe again after reboot can check- errors for some other drivers showing, but your driver will be already installed

sudo update-initramfs -u -k all

From my testing in

https://askubuntu.com/a/1387293/9550

0

I was getting these "missing firmware /lib/firmware/i915/...file" messages after an update. My system didn't even have a /lib/firmware/i915 directory. And all operations seemed normal.

Throwing caution to the winds and having a recent full backup I decided I'd try creating bogus null files that the update-initramfs process was complaining about. I copied its error messages to a temporary file (e.g. mytempfile and using one of my text editors (think vi, mcedit, sed, etc.) changed the lines from e.g. W: Possible missing firmware /lib/firmware/i915/bxt_dmc_ver1_07.bin for module i915

to

sudo touch /lib/firmware/i915/bxt_dmc_ver1_07.bin for each erroring .bin file.

I then created the neccessary directory:

sudo mkdir /lib/firmware/i915

And sourced my tempory file: source mytempfile

Then generated a new intramfs: sudo update-initramfs -u

And observed no more error messages about missing i915 .bin files.

A test reboot and everything came up OK.

This process will create a null zero-sized file for each of the missing .bin files. When/If an update is pushed which contains new updated .bin files, it will overwrite the null files we just created.

Some words of caution:

  1. Have a backup.
  2. Only do this once you have fully updated your system
  3. Verify you don't have any problems which may interfere.
  4. This worked for me. YMMV. And this workaround is probably not 'approved' by the poobahs.

(Cross-posted because I hate seeing questions answered with only a link to an answer in a different post...)

0

Solution

  1. Install or update the linux-firmware package first

    sudo apt install linux-firmware
    
  2. Check to make sure no more firmware is missing

    sudo update-initramfs -u
    
  3. If any firmware is still missing, follow WinEunuuchs2Unix's answer to install it manually

Details

In the past, I solved this problem my manually downloading the missing firmware and copying it into place as WinEunuuchs2Unix has suggested.

I saw this message just today:

update-initramfs: Generating /boot/initrd.img-6.2.0-31-generic
W: Possible missing firmware /lib/firmware/i915/dg2_huc_gsc.bin for module i915

But I noticed after updating linux-firmware it went away. Sure enough, that file is in the package:

$ apt-file list linux-firmware | grep /lib/firmware/i915/dg2_huc_gsc.bin
linux-firmware: /lib/firmware/i915/dg2_huc_gsc.bin

In fact, there are over a hundred files for i915 alone:

 apt-file list linux-firmware | grep i915 | wc -l
123

And thousands of firmware files in total:

$ apt-file list linux-firmware | grep /lib/firmware | wc -l
3069

Maybe it's possible that firmware could be missing if it hasn't been added to linux-firmware yet, but at least on my machine at the moment (with an 11th gen Intel CPU), all of the firmware I need is in linux-firmware.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .