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

Когда я запускаю обновление ядра или драйвера NVIDIA на своем 16.04, это запускает перестройку initramfs, которая выводит предупреждение ниже:

Processing triggers for initramfs-tools (0.122ubuntu8.1) ...update-initramfs: Generating /boot/initrd.img-4.4.0-34-genericW: Possible missing firmware /lib/firmware/i915/skl_guc_ver6.bin for module i915_bpo

У меня есть ноутбук с двумя графическими чипами, NVIDIA GeForce 940M и встроенной графикой Intel i5-6200U.

Используемое устройство - это моя карта NVIDIA:

$ inxi -GGraphics:  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 336drwxr-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.binlrwxrwxrwx  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.binlrwxrwxrwx  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.binlrwxrwxrwx  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.binlrwxrwxrwx  1 root root     18 Jul 21 17:03 skl_guc_ver4.bin -> skl_guc_ver4_3.bin

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

$ apt-cache policy xserver-xorg-video-intelxserver-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

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

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

РЕДАКТИРОВАТЬ 1: Обратите внимание, что ссылка изменилась, но читатели все равно должны иметь возможность найти то, что им нужно, по новой ссылке, хотя иногда бывает трудно точно определить, что вы ищете.

РЕДАКТИРОВАТЬ 2: Этот ответ должен быть применим к некоторым другим новым требованиям к прошивке, которые появились с момента первоначального написания этого ответа. Например:

W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1_01.bin for module i915W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915

ПРАВКА 3: Для пользователей, использующих git, этот ответ тоже хорошо работает.

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

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

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

update-initramfs: Generating /boot/initrd.img-5.0.1-050001-genericW: Possible missing firmware /lib/firmware/i915/skl_dmc_ver1_27.bin for module i915W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1_04.bin for module i915W: Possible missing firmware /lib/firmware/i915/cnl_dmc_ver1_07.bin for module i915W: Possible missing firmware /lib/firmware/i915/icl_dmc_ver1_07.bin for module i915W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_39.bin for module i915W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver9_29.bin for module i915W: Possible missing firmware /lib/firmware/i915/skl_guc_ver9_33.bin for module i915

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

$ sudo cp ~/Downloads/*.bin /lib/firmware/i915/$ sudo update-initramfs -uupdate-initramfs: Generating /boot/initrd.img-5.0.1-050001-generic

Теперь мой Небесное озеро (skl) драйверы обновлены, и я могу опробовать последние параметры ядра, рекомендованные в Интернете. Предупреждающие сообщения для будущих процессоров Озеро Каби (kbl), Кэннон-Лейк (cnl) и Ледяное озеро (icl) ушли, сделав жизнь менее напряженной.


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

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

Новый экран загрузки "больших двоичных объектов";

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

Intel i915 firmware blobs

Загружаемые файлы теперь называются прошивкой капли что нового - говорите о прошивке водители. Это означает Bинари LНечистая сила лиобъект (BLOB).

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

  • bxt Broxton, отмененный в 2016 году, преемник Cherry Trail processors
  • kbl Kabylake, 7-е поколение, например, i7-7700
  • skl Skylake, 6-е поколение, например, i7-6700

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

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

Сопоставьте сообщение об ошибке с необходимым драйвером

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

Требуется загрузить драйвер

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

Intel i915 drivers download.png

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

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

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

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

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

cd ~/Downloadssudo cp kbl_guc_ver9_14.bin /lib/firmware/i915sudo cp bxt_guc_ver8_7.bin /lib/firmware/i915

важный: Заменять kbl_guc_ver9_14.bin и bxt_guc_ver8_7.bin выше с отсутствующими именами загруженных вами драйверов.

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

TL;DR Исследовательская установка

У меня уже был установлен драйвер. Этот длительный метод установки дает вам представление о последствиях копирования до и после капля:

$ sudo updatedb$ llocate kbl_guc_ver9_14.binACCESS      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.binACCESS      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

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


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

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

Intel Graphics for Linux Drivers

Загрузите недостающие драйверы для Кабилейк (ГУК - Версия 9.14) и (DMC - Версия 1.01) и Брокстон (ГУК - Версия 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.gzfirmware/bxt/guc/bxt_guc_ver8_7/firmware/bxt/guc/bxt_guc_ver8_7/install.shfirmware/bxt/guc/bxt_guc_ver8_7/ReleaseNotes.txtfirmware/bxt/guc/bxt_guc_ver8_7/bxt_guc_ver8_7.bin:~/Downloads$ tar -xjvf kbldmcver101.tar.bz2kbl_dmc_ver1_01/kbl_dmc_ver1_01/kbl_dmc_ver1_01.binkbl_dmc_ver1_01/install.shkbl_dmc_ver1_01/ReleaseNotes.txt:~/Downloads$ tar -zxvf kblgucver914.tar.gzfirmware/kbl/guc/kbl_guc_ver9_14/firmware/kbl/guc/kbl_guc_ver9_14/install.shfirmware/kbl/guc/kbl_guc_ver9_14/kbl_guc_ver9_14.binfirmware/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 -uupdate-initramfs: Generating /boot/initrd.img-4.9.9-040909-generic

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

Удаление рабочих файлов

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

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

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

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

Установили ли вы 4.8 release candidate 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 г.

Сейчас работает основная версия ядра версии 4.9.5, которая в настоящее время Ubuntu 16.04 обновила свое ядро до 4.4.0-59. Intel изменила свою ссылку на Графика Intel для 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 i915W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915

Как указано в отчете об ошибке (ошибки.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 -uupdate-initramfs: Generating /boot/initrd.img-4.9.5-040905-generic

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

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

Как перемещаться по веб-сайту Intel Graphics for Linux

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

Intel Graphics for Linux 1

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

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

Intel Graphics for Linux 2

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

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

cd Downloadssudo dpkg -i intel*.deb

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

sudo apt -f installsudo apt updatesudo apt upgrade

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

Intel Graphics for 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 56A3DEF863961D39E: 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 updatesudo apt upgrade

Я также столкнулся с аналогичной проблемой, потому что я обновил ядро из приложения 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 package manager);
  4. Загрузите и установите отсутствующую прошивку с Страница информации (такая же, как у Дуга Смайтиса). В моем случае я получил KabyLake kbl DMC - Ver 1.01;
  5. И, наконец, снова установите ядро Linux *4.4.0-59-generic (в моем случае) или просто linux-generic для последнего полного универсального ядра Linux.

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

С наилучшими пожеланиями!

Если вы используете 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/plain/i915 в эту папку

  3. Перенастроить пакет initramfs-tools:

    sudo dpkg-reconfigure initramfs-tools

Прошивка-blob-вариант с sudo cp загрязнен, это не чистая установка.

Как чистая установка, подобная этой:

Загрузите новейшую linux-прошивку из здесь и установите сохраненный пакет через терминал с помощью apt:

$ cd Downloads$ sudo apt install ./linux-firmware_1.190_all.deb

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

Сначала он проходит по равнине update-initramfs -u, фиксируя предупреждения о любых отсутствующих файлах прошивки i915. Затем он попытается загрузить файлы с этими именами напрямую из репозитория git прошивки Linux во временный каталог, прежде чем перемещать их в соответствующую папку встроенного программного обеспечения с правильным владельцем и разрешениями.

#!/bin/bashWARNING_PATTERN='(?<=W: Possible missing firmware /lib/firmware/i915/)[\w.]+.bin(?= for module i915)'DOWNLOAD_URL='https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915/{}'FIRMWARE_DIR='/lib/firmware/i915'shopt -s nullglobWORKDIR="$(mktemp -d)"cd "$WORKDIR" || exit 1echo "Will check for missing i915 firmware and download blobs in '$WORKDIR'."sudo update-initramfs -u |&    grep -Po "$WARNING_PATTERN" |    xargs -t -I {} curl -O "$DOWNLOAD_URL"if [[ -n "$(shopt -s nullglob; echo ./*.bin)" ]] ; then    sudo chown root: ./*.bin    sudo chmod 644 ./*.bin    sudo mv ./*.bin "$FIRMWARE_DIR"    sudo update-initramfs -uelse    echo 'No missing firmware found/downloaded.'firmdir "$WORKDIR"

Кажется, это работает нормально для меня, но никаких гарантий.

Я получил “W: Возможно, отсутствует прошивка / lib /firmware / i915 /kbl_dmc_ver1.bin для модуля i915_bpo”, а мой процессор - SKylake с Intel HD в нем.

@CsabaToth kbl означает Kabylake, который является преемником Skylake. Поскольку у вас нет такого процессора, вы можете либо проигнорировать предупреждение, либо просто установить драйвер Kabylake по той же ссылке, что и в ответе Дуга Смайтиса.

Кроме того, я использую версию “1.158” пакета “linux-firmware” вместо основной версии “1.157”, потому что только она обеспечивала рабочую прошивку для моего Wi-Fi (killer wireless).

Правильно, i7 6820hk - это просто SkyLake, Kaby Lake - следующее поколение