Byt*_*der 86 i915 intel-graphics initramfs drivers 16.04
当我在 16.04 上运行内核或 NVIDIA 驱动程序更新时,这会触发 initramfs 重建并输出以下警告:
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
Run Code Online (Sandbox Code Playgroud)
我有一个带有两个图形芯片的笔记本电脑,一个 NVIDIA GeForce 940M 和一个 Intel i5-6200U 的集成显卡。
使用的设备是我的 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: 1920x1080@60.03hz
GLX Renderer: GeForce 940M/PCIe/SSE2 GLX Version: 4.5.0 NVIDIA 367.35
Run Code Online (Sandbox Code Playgroud)
这是lshw -c video,对应于应该使用该驱动程序的英特尔图形芯片的输出:
*-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)
Run Code Online (Sandbox Code Playgroud)
警告中的文件不存在,只有:
$ 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
Run Code Online (Sandbox Code Playgroud)
不过似乎安装了最新的驱动程序包:
$ 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
Run Code Online (Sandbox Code Playgroud)
这个警告究竟是什么意思,我该如何解决?
Dou*_*ies 64
驱动程序包有点滞后于内核。在我的情况下,缺少固件并不重要,因为我没有 SkyLake 处理器,但在您的情况下可能很重要。您可以从这里获取更新的固件。
编辑 1:请注意链接已更改,但读者仍应能够在新链接中找到他们需要的内容,尽管有时可能很难确切知道您要查找的内容。
编辑 2:此答案应适用于自此答案最初编写以来出现的其他一些新固件要求。例如:
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
Run Code Online (Sandbox Code Playgroud)
编辑 3:对于使用 git 的用户,这个答案也很有效。
Win*_*nix 24
要回答您的问题,您无需为未运行的处理器更新驱动程序,但很高兴看到警告消失后您这样做。
今天我收到了这些警告:
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
Run Code Online (Sandbox Code Playgroud)
我下载了 blob(在下一节中描述),然后使用:
$ sudo cp ~/Downloads/*.bin /lib/firmware/i915/
$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.0.1-050001-generic
Run Code Online (Sandbox Code Playgroud)
现在我的Sky Lake ( skl) 驱动程序是最新的,我可以尝试互联网上推荐的最新内核参数。未来处理器Kaby Lake ( kbl)、Cannon Lake ( cnl) 和Ice Lake ( icl) 的警告消息已经消失,让生活压力更小。
最近英特尔创建了一个新的下载页面和新的网页布局:
下载文件现在称为固件blob,这是固件驱动程序的新说法。它代表乙inary大号ARGE OB JECT(BLOB)。
驱动程序按处理器排序:
bxt Broxton,2016 年取消,Cherry Trail 处理器的继任者kbl Kabylake,第 7 代,例如 i7-7700skl Skylake,第 6 代,例如 i7-6700然后驱动程序按子组组织(完整解释在这里):
比较您收到的错误消息update-initramfs或update-grub查找丢失的驱动程序。在您的示例中,消息是“ /lib/firmware/i915/kbl_guc_ver9_14.bin”,因此您缺少kbl_guc_ver9_14.bin上面显示的网页中名为:的 Kabylake GuC 。你不想要较新的:kbl_guc_ver9_39.bin
不再像过去的版本那样安装脚本。只需突出显示缺少的驱动程序 (blob) 并单击它。出现此屏幕:
最初您只能看到“十六进制转储”,但单击标题为普通的链接后,会出现如上图所示的下载窗口。
点击“保存文件”
sudo cp(复制命令)安装驱动程序下载后,安装很简单sudo cp(复制命令),没有复杂的tar命令或./script_name安装步骤。
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
Run Code Online (Sandbox Code Playgroud)
重要提示:用您下载的缺少的驱动程序名称替换kbl_guc_ver9_14.bin和bxt_guc_ver8_7.bin以上。
瞧!安装了新的驱动程序。比以前安装英特尔 i915 驱动程序的方法简单得多!
我已经安装了驱动程序。这种冗长的安装方法让您了解复制BLOB的前后效果:
$ sudo cp ~/Downloads/*.bin /lib/firmware/i915/
$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.0.1-050001-generic
Run Code Online (Sandbox Code Playgroud)
使用下面的locate命令代替llocate。
根据今天的这个错误报告(W:模块 i915 可能缺少固件 /lib/firmware/i915/kbl_guc_ver9_14.bin)英特尔已在其(https://01.org/linuxgraphics/downloads/)上发布了所需的Kabylake和Broxton驱动程序固件)网页:
下载Kabylake ( GuC-Ver 9.14 ) 和 ( DMC-Ver 1.01 ) 和Broxton ( GuC-Ver 8.7 )缺少的驱动程序。这些是在.tar.gz和.tar.bz2格式。
尽管您可以运行install.sh脚本,但这些说明是最简单的。
cd ~/Downloads
sudo cp kbl_guc_ver9_14.bin /lib/firmware/i915
sudo cp bxt_guc_ver8_7.bin /lib/firmware/i915
Run Code Online (Sandbox Code Playgroud)
$ 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
Run Code Online (Sandbox Code Playgroud)
:~$ 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
Run Code Online (Sandbox Code Playgroud)
请注意错误(警告)消息消失了!
:~/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
Run Code Online (Sandbox Code Playgroud)
我收到了两条关于内核 4.6.3、4.7.1、4.7.2、4.7.3 和 4.7.5 缺少 i915 驱动程序的警告消息。我忽略了它们,我的 HD4000 英特尔集成显卡一切正常。我希望也能对 Nvidia 和 Nouvaeu 说同样的话。
正如您链接中的一个答案所述,您可以访问英特尔的网站以获取最新的 Linux 图形驱动程序:intel-linux-graphics-firmwares。然而,当我几周前阅读该网站时,我担心在不同情况下可能出错的所有可能的事情,所以我选择退出。
您是否从 9 月 24 日安装了 4.8 候选版本 6?我相信这是 Ubuntu 中最新的。您不必回答,但我很好奇您为什么使用 4.8 而不是 4.7.5,即您需要修复哪些差异。
现在使用内核版本 4.8.1(真实版本而不是候选版本)一个多星期,一切运行良好。不过,这是在 Ubuntu 16.04 下。Ubuntu 16.10 于 10 月 13 日发布,我相信它使用的是内核版本 4.8.0。
我不打算继续更新这个答案,但我想搁置 4.8 候选版本可能有问题的推断。真正的版本没有。
现在运行内核版本 4.9.5 主线版本,此时 Ubuntu 16.04 已将其内核更新为 4.4.0-59。英特尔更改了 Linux驱动程序的英特尔显卡的链接,我更新了上面的新链接。
关于sudo update-initramfs -u内核版本 > 4.8(Ubuntu 16.10 和 Ubuntu 17.04)时生成的警告消息的问题仍然存在:
:~/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
Run Code Online (Sandbox Code Playgroud)
正如错误报告(bugs.launchpad.net - linux 固件错误)中所述,驱动程序根本不存在,直到未来名为“kaby Lake”的芯片发布后才会存在。
为了使警告消息消失,我执行了以下操作:
:~/Downloads$ rm -r firmware kbl_dmc_ver1_01 *.tar.*
Run Code Online (Sandbox Code Playgroud)
瞧!不再有警告消息。
程序“hello”是一个 504 字节的汇编程序,它显示“Hello World!”。您可以将任何小的可执行文件复制到错误消息中给出的固件二进制文件中。当英特尔最终发布它们时,软件更新程序将用真实版本替换它们。
有人通过评论询问如何在显示此屏幕的新英特尔网站 ( 01.org - Linux 图形下载) 中导航:
Ubuntu 16.04在搜索字段中键入,然后单击Filter按钮。
对于 Ubuntu 16.10,选择第一个结果。在我们的例子中 Ubuntu 16.04 选择第二个结果INTEL GRAPHICS UPDATE TOOL FOR LINUX* OS V2.0.2,这个屏幕出现:
就我而言,我选择了 Ubuntu 16.04 64 位,它将文件下载intel-graphics-update-tool_2.0.2_amd64.deb到我的~/Downloads目录中。
下一步是打开终端并使用:
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
Run Code Online (Sandbox Code Playgroud)
注意: Intel 使用ancients ttf 字体,如果它不在您的系统上,您的安装将失败。此时你需要使用:
$ 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
Run Code Online (Sandbox Code Playgroud)
现在您可以运行该Intel Graphics for Linux Updater工具,如下图所示:
在此期间,apt-get update您可以看到如下警告/错误消息:
cd Downloads
sudo dpkg -i intel*.deb
Run Code Online (Sandbox Code Playgroud)
您需要使用以下方法添加英特尔的签名:
sudo apt -f install
sudo apt update
sudo apt upgrade
Run Code Online (Sandbox Code Playgroud)
然后在 Ubuntu 中更新:
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.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
182806 次 |
| 最近记录: |