«W: возможно отсутствует прошивка для модуля i915_bpo» при обновлении initramfs

75

Когда я запускаю обновление ядра или драйвера NVIDIA на моем 16.04, это вызывает перестроение 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

У меня есть ноутбук с двумя графическими чипами, 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

Вот вывод lshw -c video, соответствующий моему графическому чипу Intel, который должен использовать этот драйвер:

    *-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)

Файл в предупреждении не существует, только те:

$ 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

Последний пакет драйверов, похоже, установлен:

$ 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

Что конкретно означает это предупреждение и как я могу это исправить?

Byte Commander
источник
3
Я получил W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1.bin for module i915_bpoи мой процессор SKylake с Intel HD в нем.
Чаба Тот
Кроме того, я использую 1.158версию linux-firmwareпакета вместо основной линии, 1.157потому что только она предоставила рабочую прошивку для моего Wi-Fi (Killer Wireless).
Чаба Тот
3
@CsabaToth kblозначает Kabylake, который является преемником Skylake. Поскольку у вас нет такого процессора, вы можете либо проигнорировать предупреждение, либо просто установить драйвер Kabylake по той же ссылке, что и в ответе Дуга Смитиса.
Byte Commander
Правильно, i7 6820hk - это просто SkyLake, Каби Лэйк - следующее поколение
Csaba Toth

Ответы:

62

Пакет драйверов несколько отстает от ядра. В моем случае отсутствующая прошивка не имеет значения, потому что у меня нет процессора 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

РЕДАКТИРОВАТЬ 3: Для пользователей, которые используют git, этот ответ также хорошо работает.

Дуг Смитис
источник
3
Я успешно установил драйверы GuC и DMC для Skylake и думаю, что предупреждение должно исчезнуть. Благодарю.
Byte Commander
4
Ах, я нашел это. Похоже, что в новом обновлении ядра добавлена ​​поддержка новых процессоров Kabylake Intel, и теперь он также хотел бы иметь драйвер модуля для них. Вероятно, это излишне, поскольку у меня нет процессора Kabylake, но просто чтобы предупредить об этом, я также скачал и установил драйвер kbl DMC с сайта, на который вы ссылались. Теперь все выглядит хорошо.
Byte Commander
2
Что значит «материя»? Разве новое ядро ​​не сможет загрузиться или нет никаких реальных видимых последствий, кроме некоторых предупреждающих сообщений?
MusiKk
3
@musiKk: Если ваш процессор не нуждается в одном из отсутствующих файлов прошивки, это не имеет значения, то есть не будет никаких последствий из-за его отсутствия. Например, только процессор Skylake потребует прошивки "skl".
Даг Смитис
1
@FeryArdiant: Да, предупреждения не связаны с тем, какой процессор вы на самом деле используете, просто если у вас есть прошивка или нет.
Даг Смитис
18

20 мая 2019 Обновление

Чтобы ответить на ваш вопрос, вам не нужно обновлять драйверы для процессора, который вы не используете, но приятно видеть, что предупреждения исчезают, когда вы это делаете.

Сегодня я получил эти предупреждения:

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

Я скачал капли (описанные в следующем разделе) и затем использовал:

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

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

Теперь мои драйверы Sky Lake ( skl) обновлены, и я могу попробовать последние параметры ядра, рекомендуемые в Интернете. Предупреждающие сообщения для будущих процессоров Kaby Lake ( kbl), Cannon Lake ( cnl) и Ice Lake ( icl) исчезли, делая жизнь менее напряженной.


26 мая 2018 Обновление

Незначительная редакция 6 августа 2018 года.

Новый экран загрузки "BLOB-объектов"

Недавно Intel создала новую страницу загрузки и новый макет веб-страницы:

Капли прошивки Intel i915

Файлы для загрузки теперь называются микропрограммными каплями, что является новинкой для драйверов микропрограмм . Он обозначает B inary L arge OB ject (BLOB).

Драйвера отсортированы по процессору:

  • bxt Брокстон, Отменен в 2016 году, преемник процессоров Cherry Trail
  • kbl Kabylake, 7-го поколения, например, i7-7700
  • skl Skylake, 6-го поколения, например, i7-6700

Затем драйверы организуются по подгруппам (полное объяснение здесь ):

  • GUC - GuC предназначен для выполнения графиков рабочей нагрузки на различных графических параллельных движках.
  • DMC - DMC предоставляет дополнительные графические режимы с низким энергопотреблением.
  • HUC - HuC предназначен для разгрузки некоторых функций мультимедиа из CPU в GPU.

Нужно сопоставить сообщение об ошибке с драйвером

Сравните полученное сообщение об ошибке update-initramfsили update-grubнайдите отсутствующий драйвер. В вашем примере сообщение было « /lib/firmware/i915/kbl_guc_ver9_14.bin», поэтому вы пропустили Kabylake GuC: kbl_guc_ver9_14.binна веб-странице, показанной выше. Вы не хотите более новый:kbl_guc_ver9_39.bin

Требуется скачать драйвер

Установочного скрипта больше нет, как в предыдущих версиях. Просто выделите отсутствующий драйвер (blob) и нажмите на него. Этот экран появляется:

Драйверы для Intel i915 download.png

Первоначально вы видите только «шестнадцатеричный дамп», но после нажатия на ссылку под названием plain открывается окно загрузки, как показано выше.

Нажмите «Сохранить файл»

Установите драйвер с помощью простого sudo cp(команда копирования)

После загрузки установка является простой sudo cp(команда копирования), и в ней нет сложных tarкоманд или ./script_nameшагов установки.

Быстрая установка

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

ВАЖНО! Замените kbl_guc_ver9_14.binи bxt_guc_ver8_7.binвыше отсутствующими именами драйверов, которые вы скачали.

VOILA! Новый драйвер установлен. Намного проще, чем предыдущие способы установки отсутствующих драйверов Intel i915!

TL; DR Разведочная установка

У меня уже был установлен драйвер. Этот длительный метод установки дает представление о последствиях копирования 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

Используйте команду locate ниже вместо llocate .


14 февраля 2017 - Intel выпустила драйверы

Согласно этому сообщению об ошибке сегодня ( W: Возможно отсутствующую микропрограмму /lib/firmware/i915/kbl_guc_ver9_14.bin для модуля i915 ) Intel выпустила необходимые Kabylake и Broxton водителей на их ( https://01.org/linuxgraphics/downloads/ прошивка ) веб-страница:

Intel Graphics для драйверов Linux

Скачать недостающие драйверы для Kabylake ( Guc - Ver 9.14 ) и ( DMC - Ver 1.01 ) и Брокстон ( Guc - Ver 8.7 ). Они в .tar.gzи .tar.bz2формате.

Установить драйверы в формате "tar"

Хотя вы можете запускать install.shсценарии, эти инструкции являются самыми простыми.

Перейдите в каталог загрузки и убедитесь, что файлы есть:

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

Извлеките сжатые файлы tar:

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

Скопируйте файлы и обновите 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

Обратите внимание, что сообщения об ошибках (предупреждения) исчезли!

Удалить рабочие файлы

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

Историческая (оригинальная) запись для справки

У меня было два предупреждающих сообщения об отсутствующих драйверах i915 для Kernel 4.6.3, 4.7.1, 4.7.2, 4.7.3 и 4.7.5. Я проигнорировал их, и все было в порядке с моей интегрированной графикой HD4000 Intel. Я бы хотел, чтобы то же самое можно было сказать о Nvidia и Nouvaeu.

Как говорится в одном из ответов в вашей ссылке, вы можете перейти на веб-сайт Intel, чтобы получить самые последние версии драйверов для графической системы Linux по адресу: intel-linux-graphics-firmwares . Однако, когда я прочитал этот сайт несколько недель назад, я был обеспокоен всеми возможными вещами, которые могут пойти не так в разных сценариях, поэтому я отказался.

Вы установили 4.8 релиз кандидата 6 от 24 сентября? Это самый актуальный в Ubuntu, я считаю. Вам не нужно отвечать, но мне любопытно, почему вы пошли с 4.8 вместо 4.7.5, то есть какие различия вам нужны, чтобы исправить ситуацию.

Изменить - 19 октября 2016 г.

Теперь используйте ядро ​​версии 4.8.1 (реальная версия, а не кандидат на выпуск) более недели, и все работает хорошо. Это под Ubuntu 16.04, хотя. Ubuntu 16.10 была выпущена 13 октября, и она использует версию ядра 4.8.0.

Я не планирую постоянно обновлять этот ответ, но я хотел бы сделать вывод, что у кандидатов в версии 4.8 могут быть проблемы. Реальной версии нет.

Изменить - 2 февраля 2017 г.

Сейчас запущена основная версия Kernel версии 4.9.5, которая в настоящее время обновляет ядро ​​до версии 4.4.0-59 в Ubuntu 16.04. Intel изменила свою ссылку на драйверы Intel Graphics для Linux, и я обновил новую ссылку выше.

По-прежнему остаются вопросы о предупреждающих сообщениях, генерируемых sudo update-initramfs -uпри версии ядра> 4.8 (Ubuntu 16.10 и 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

Как указано в отчете об ошибке ( bugs.launchpad.net - ошибка прошивки linux ), драйверов просто не существует, и их не будет, пока не будет выпущен будущий чип под названием «kaby lake».

Сделайте так, чтобы предупреждающие сообщения исчезли

Чтобы предупредить об этом, я сделал следующее:

$ 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

Вуаля! Нет больше предупреждающих сообщений.

Программа "hello" - это 504-байтовая ассемблерная программа с надписью "Hello World!". Вы можете скопировать любой небольшой исполняемый файл в двоичные файлы прошивки, указанные в сообщениях об ошибках. Когда Intel в конечном итоге выпустит их, программа обновления программного обеспечения заменит их реальными версиями.

Как ориентироваться на сайте Intel Graphics для Linux

В комментариях меня спросили, как перемещаться по новому веб-сайту Intel ( 01.org - Linux Graphics Downloads ), где представлен этот экран:

Intel Graphics для Linux 1

Введите Ubuntu 16.04в поле поиска и нажмите Filterкнопку.

Для Ubuntu 16.10 выберите первый результат. В нашем случае Ubuntu 16.04 выберите второй результат, INTEL GRAPHICS UPDATE TOOL FOR LINUX* OS V2.0.2и появится этот экран:

Intel Graphics для Linux 2

В моем случае я выбрал Ubuntu 16.04 64-bit, который загрузил файл intel-graphics-update-tool_2.0.2_amd64.debв мой ~/Downloadsкаталог.

Следующим шагом является открытие терминала и использование:

cd Downloads
sudo dpkg -i intel*.deb

Примечание: Intel использует древние TTF шрифта и ваша установка не будет выполнена , если это не в вашей системе. На данный момент вам нужно использовать:

sudo apt -f install
sudo apt update
sudo apt upgrade

Теперь вы можете запустить Intel Graphics for Linux Updaterинструмент, как показано на этом экране:

Intel Graphics для Linux 3

Добавить Intel подписи для Ubuntu

Во время apt-get updateвы можете увидеть предупреждения / сообщения об ошибках, подобные этому:

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.

Вам нужно будет добавить подписи Intel, используя:

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

Затем обновите в Ubuntu:

sudo apt update
sudo apt upgrade
WinEunuuchs2Unix
источник
2

Я также столкнулся с подобной проблемой, потому что я обновил ядро ​​из приложения «Программное обеспечение» Ubuntu Gnome 16.04 (собственный менеджер пакетов), и оно зависало при обновлении.

Итак, мне запретили загружать Ubuntu снова, потому что образ linux был неудачно сгенерирован.

Для решения этой проблемы я сделал следующее:

  1. Перезагрузите Linux и сразу после экрана материнской платы нажмите, Shiftчтобы войти в меню grub;
  2. Выберите вашу предыдущую версию Linux из меню. В моем случае *4.4.0-21-genericи нажмите Enter;
  3. Как только Ubuntu снова включится, удалите испорченный образ linux. В моем случае *4.4.0-59-generic(я использовал менеджер пакетов Synaptic для него);
  4. Скачайте и установите недостающую прошивку со страницы Intel (так же, как Doug Smythies) . В моем случае я получил KabyLake kbl DMC - Ver 1.01;
  5. И, наконец, установите заново ядро ​​Linux *4.4.0-59-generic(в моем случае) или просто linux-genericдля последнего полного универсального ядра Linux.

Успех! Ядро актуально и все прошивки работают нормально!

С уважением!

Мэтт Мелло
источник
Ссылка на графические прошивки больше не работает. Кто-нибудь знает, где сейчас можно взять прошивки?
Николай Лещов
В самом деле? Я все еще могу открыть это здесь. Тем не менее, также попробуйте следующую ссылку: git.kernel.org/cgit/linux/kernel/git/firmware/…
Мэтт Мелло
1

Если вы используете Debian (у меня Debian GNU / Linux buster), просто выполните следующие действия:

  1. создать папку:

    sudo mkdir -p /lib/firmware/i915
    
  2. скопируйте все файлы из https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915 в эту папку

  3. Переконфигурируйте пакет initramfs-tools:

    sudo dpkg-reconfigure initramfs-tools
    
Кристиан Ноак
источник
Команда для Ubuntu похожа, sudo update-initramfs -uно я звоню по телефону, поэтому не могу подтвердить. Вопросы Debian здесь не по теме, поэтому ваш ответ вряд ли повлияет на многих людей.
WinEunuuchs2Unix