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: [email protected]
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?
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:
EDIT 3: For users that use git, this answer also works well.
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:
I downloaded the blobs (described in next section) and then used:
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:
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 processorskbl
Kabylake, 7th generation, eg i7-7700skl
Skylake, 6th generation, eg i7-6700Then drivers are organized by subgroup (full explanation here):
Match error message to driver needed
Compare the error message you are receiving by
update-initramfs
orupdate-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:
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 complicatedtar
commands, or./script_name
installation steps.Quick Install
IMPORTANT: Replace
kbl_guc_ver9_14.bin
andbxt_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:
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:
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:
Extract the compressed tar files:
Copy the files and update initramfs
Notice the error (warning) messages are gone!
Remove work files
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):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:
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:
Type
Ubuntu 16.04
into the search field and click theFilter
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: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:
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:
Now you can run the
Intel Graphics for Linux Updater
tool as this screen shows:Add Intel signatures for Ubuntu
During
apt-get update
you can see warning / error messages like this:You'll need to add Intel's signatures using:
Then update in Ubuntu:
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:
Shift
to enter into grub menu;*4.4.0-21-generic
and pressEnter
;*4.4.0-59-generic
(I've used Synaptic package manager for it);KabyLake kbl DMC - Ver 1.01
;*4.4.0-59-generic
(in my case) or justlinux-generic
for the latest complete generic Linux kernel.Success! Kernel is up-to-date and all firmwares working fine!
Best regards!
If you are running debian (I have Debian GNU/Linux buster) just follow these steps:
create the folder:
copy all files from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/i915 to this folder
Reconfigure the initramfs-tools package:
The firmware-blob-variant with
sudo cp
is dirty, this is not a clean installation.As clean installation like this:
Download the newest linux-firmware from here and install the saved package via terminal with apt:
Here's a little script based on the top answers to automate the download and installation of the firmware blob files the system is complaining about.
First it runs a plain
update-initramfs -u
, capturing the warnings about any missing i915 firmware files. Then it will try to download the files with those names directly from the Linux firmware git repository to a temp directory, before moving them over to your appropriate firmware folder with the right ownership and permissions.This seems to work fine for me, but no guarantees.