帮忙!W:模块i915可能缺少/lib/firmware/i915/kbl_guc_ver9_14.bin固件文件。

如何解决这个警告?
addgroup: The group `input' already exists as a system group. Exiting.
update-initramfs: deferring update (trigger activated)
Setting up grub-common (2.02~beta2-36ubuntu3.21) ...
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Setting up grub2-common (2.02~beta2-36ubuntu3.21) ...
Setting up grub-efi-amd64-bin (2.02~beta2-36ubuntu3.21) ...
Setting up grub-efi-amd64 (2.02~beta2-36ubuntu3.21) ...
Installing for x86_64-efi platform.
Installation finished. No error reported.
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.15.0-46-generic
Found initrd image: /boot/initrd.img-4.15.0-46-generic
Found linux image: /boot/vmlinuz-4.15.0-45-generic
Found initrd image: /boot/initrd.img-4.15.0-45-generic
Adding boot menu entry for EFI firmware configuration
done
Setting up grub-efi-amd64-signed (1.66.21+2.02~beta2-36ubuntu3.21) ...
Installing for x86_64-efi platform.
Installation finished. No error reported.
Setting up busybox-initramfs (1:1.22.0-15ubuntu1.4) ...
Setting up busybox-static (1:1.22.0-15ubuntu1.4) ...
Setting up libpolkit-gobject-1-0:amd64 (0.105-14.1ubuntu0.5) ...
Setting up libpolkit-agent-1-0:amd64 (0.105-14.1ubuntu0.5) ...
Setting up libpolkit-backend-1-0:amd64 (0.105-14.1ubuntu0.5) ...
Setting up libpq5:amd64 (9.5.16-0ubuntu0.16.04.1) ...
Setting up linux-libc-dev:amd64 (4.4.0-145.171) ...
Setting up linux-signed-generic-hwe-16.04 (4.15.0.47.68) ...
Setting up policykit-1 (0.105-14.1ubuntu0.5) ...
Removed symlink /run/systemd/system/polkitd.service.
Processing triggers for initramfs-tools (0.122ubuntu8.14) ...
update-initramfs: Generating /boot/initrd.img-4.15.0-46-generic
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
Processing triggers for shim-signed (1.33.1~16.04.4+15+1533136590.3beb971-0ubuntu1) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...

5可能是更新内核到4.8现在缺少固件警告的重复问题。 - WinEunuuchs2Unix
@WinEunuuchs2Unix 不知道是否有任何区别,但 OP 正在运行 4.15.0-46。 - heynnema
@heynnema 这些警告最初是从Kernel 4.8版本开始的。当时4.8版本是离题的,重复候选人被关闭了。在4.8之后的后续内核中,这些警告持续出现,重复候选人被重新打开。按照这个速度,我们很可能会在未来几年继续看到这些警告。由于缺少驱动程序,您将无法使用某些英特尔功能。 - WinEunuuchs2Unix
根据我的回答,重新安装linux-firmware会替换丢失的文件,是这样吗?在我看来是这样的。不是吗? - heynnema
@heynnema,早上我尝试了你的答案,但对于5.0内核并不起作用,不过它使用了比我之前启动的4.14内核更新的英特尔驱动程序,所以这还不是一个完整的测试。在此问题被关闭之前,我已在下面的回答中发布了初步结果... - WinEunuuchs2Unix
3个回答

只需从内核git获取文件:
git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
sudo cp ./linux-firmware/i915/icl_dmc_ver1_07.bin /lib/firmware/i915/icl_dmc_ver1_07.bin

在我的情况下,我需要一个不同的文件 sudo cp ./linux-firmware/i915/tgl_dmc_ver2_04.bin /lib/firmware/i915/,但基本思路是正确的。谢谢! - user207863
2为了节省你的数据,请使用--depth=1进行浅克隆。git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git --depth=1 - Sukanta Paul

这个答案似乎是解决缺少Intel显卡驱动警告的最佳方案:
根据评论中的要求,重新安装linux-firmware后警告仍然存在。
$ sudo apt install --reinstall linux-firmware
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 9 not upgraded.
Need to get 49.8 MB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://ca.archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-firmware all 1.157.21 [49.8 MB]
Fetched 49.8 MB in 8s (5,542 kB/s)                                                         
(Reading database ... 495159 files and directories currently installed.)
Preparing to unpack .../linux-firmware_1.157.21_all.deb ...
Unpacking linux-firmware (1.157.21) over (1.157.21) ...
Setting up linux-firmware (1.157.21) ...
update-initramfs: Generating /boot/initrd.img-4.15.0-47-generic
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
update-initramfs: Generating /boot/initrd.img-4.15.0-46-generic
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
update-initramfs: Generating /boot/initrd.img-4.14.110-0414110-generic
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
update-initramfs: Generating /boot/initrd.img-4.14.98-041498-generic
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
update-initramfs: Generating /boot/initrd.img-4.14.89-041489-generic
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
update-initramfs: Generating /boot/initrd.img-4.14.78-041478-generic
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
update-initramfs: Generating /boot/initrd.img-4.14.70-041470-generic
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
update-initramfs: Generating /boot/initrd.img-4.4.0-145-generic
update-initramfs: Generating /boot/initrd.img-3.16.60-031660-generic

你安装了一个较旧的linux-firmware 1.157.21版本。新版本中包含所需的文件,但不包括1.0版本。 - heynnema
在10月18日,使用4.18内核的情况下,linux-firmware 1.175.1中包含了你所显示的可能缺失的所有文件,除了 icl_dmc_ver1_07.bin。当运行5.0.1内核时,你使用的linux-firmware文件太旧了。因此,在你的例子中可能需要访问Intel官网。 - heynnema
看起来我的答案是正确的...除非你在使用一个“流氓”内核 :-) - heynnema
1使用内核5.0.1版本时,您可能需要安装此linux-firmware... https://packages.ubuntu.com/disco/linux-firmware - heynnema
@heynnema 我没有使用5.0.1版本,因为它缺少我需要的各种驱动程序的DKMS支持。虽然已经安装了,但我从未启动过它。其他内核已经安装了Skylake、Broxton、Kabylake等的.bin驱动程序,所以不会出现任何警告信息。我可以将.bin驱动程序重命名,然后运行linux-firmware重新安装,看看它是否能为我现在正在运行的4.14.110内核安装它们。如果不能安装,则只能回到BLOBBinary Large OBject)作为唯一的安装方式。至于它是较旧的版本,今年进行了全新的16.04安装。 - WinEunuuchs2Unix
我看到了你的update-initramfs输出,只有5.0.1版本生成了错误。这就是为什么我给你提供了最新固件的Disco链接。为什么你不使用18.04/18.10版本?你不打算在本月后期升级到19.04吗?哪些dkms驱动程序不能与5.0.1版本兼容? - heynnema
我做了个测试,删除了/lib/firmware/i915中的.bin文件,而linux-firmware确实起到了作用。我更新了我的旧答案,以节省大家的时间。我试过18.04几次,但还是更喜欢16.04的Unity界面。我可能会等到20.04版本。我肯定不会使用15.04、16.10、17.04、18.10、19.04等版本。我大部分时间都在开发软件,不想被新的界面、gsettings或其他东西分心。 - WinEunuuchs2Unix
@heynnema,我正在给你的回答点赞。由于这个回答完全是关于实验和事实发现,并且带有大量评论,这些评论会让版主们很讨厌(理所当然,因为它们会分散网站的注意力),我将很快删除这个回答。 - WinEunuuchs2Unix
看起来你还需要更新这个答案。你没有说在5.0.1版本中你遇到了什么DKMS驱动问题。最后... 16.04和18.04/10之间...Unity和GNOME之间...其实GUI的差别并不太大。真正的区别在于netplan......真是个烦人的事情。 - heynnema
@heynnema 我不记得确切是哪些DKMS驱动程序无法正常工作。我想其中包括nVidia 384.10和nvhda(这是在Optimus笔记本电脑上通过HDMI进行自定义音频输出的驱动程序,例如GTX 970M、1060等,在启动时制造商会关闭声音通道)。我想Virtual Box也有一个DKMS,但我自去年以来就没有使用过了。这是一个记录grub引导屏幕的项目,我将秒数从1改为1/10,以实现平滑的圆形进度倒计时效果。具体信息请参考以下链接:https://stackoverflow.com/questions/51341871/finding-countdown-timer-in-grub-2-02-source-code/52138789#52138789。 - WinEunuuchs2Unix
@heynnema,以1秒为间隔,grub的倒计时图形会以"大块"圆圈的形式显示,如果不将grub修改为0.1秒,就无法实现平滑过渡。我很少外出 :P - WinEunuuchs2Unix
我提前点赞了。我删除了OP缺失的kbl_guc_ver9_14.bin文件,而linux-firmware没有重新添加它。正如Doug Smithies在他的帖子中所说(https://askubuntu.com/a/811487/307523),Ubuntu在驱动程序方面往往落后。因此,OP将不得不像我回答中提到的那样下载Intel BLOB文件。 - WinEunuuchs2Unix
你可能仍在加载旧的“linux-firmware”文件。18.10的“linux-firmware”包含那个.bin,就像我给你的“disco”版本的“linux-firmware”链接一样。我们必须让你走出16.04的世界......进入21世纪,我的朋友。 - heynnema
@heynnema 我觉得2016年是在21世纪的:p。至于OP是否需要将他的linux-firmware升级到不同的存储库,我无法确定。但是我已经下载了我删除的BLOB,现在我的系统一切正常。我不太喜欢在XENIAL上安装DISCO... - WinEunuuchs2Unix
我认为OP正在运行比你更新的内核,所以这个版本的linux-firmware可能包含了那个.bin文件。当然,你可以下载那个linux-firmware并确认一下... :-) - heynnema
@heynnema 我完全不知道。希望楼主尽快上线并更新我们。我已经修正了答案,只保留了楼主和我都犯的错误。 - WinEunuuchs2Unix

在终端中...
sudo apt-get install --reinstall linux-firmware # 重新安装固件

sudo pico /etc/default/grub # 编辑 grub 默认设置
更改:
GRUB_HIDDEN_TIMEOUT=0

给:
#GRUB_HIDDEN_TIMEOUT=0

保存文件。退出编辑器。(控制键+O,回车,控制键+X)
sudo update-grub # 更新GRUB

它将帮助新手包括“使用Ctrl+O保存文件”和“使用Ctrl+X退出编辑器”:)我可能是在这里使用DEC / Vax Clusters的少数人之一: P - WinEunuuchs2Unix
1@WinEunuuchs2Unix 编辑完成。谢谢!DEC是我曾经工作过的最好的公司。16年了。想念它。 - heynnema
我更喜欢大蓝,AS/400,System/36,S/390等等。哈哈当然还有IBM PC/AT :P - WinEunuuchs2Unix