Найти тему
Smart home Russia

Устранение ошибки Possible missing firmware и подобных в Debian [ Linux ]

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

Translation to English is here. Также основной канал в telegram.

Как всегда, ничто не предвещало беды. Выполнив в очередной раз команды:

apt update
apt upgrade

Я получил впервые для себя сообщения:

W: Possible missing firmware /lib/firmware/i915/bxt_dmc_ver1_07.bin for module i915
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/glk_dmc_ver1_04.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
W: Possible missing firmware /lib/firmware/i915/kbl_huc_ver02_00_1810.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_huc_ver01_07_1398.bin for module i915
W: Possible missing firmware /lib/firmware/i915/skl_huc_ver01_07_1398.bin for module i915

Возможно, я получал подобные сообщения и ранее, но тогда я совсем не умел читать логи и игнорировал подобное. Также, не столь важно, что у меня не нашлось i915 firmware, был бы у меня другой чип в mini PC, то и для него, скорее всего, была бы такая же проблема.

Напомню, годом ранее и приобрел на барахолке за смешные деньги 4 mini PC и установил на него Debian:

Покупка б/у mini PC для умного дома
Smart home Russia8 марта 2021

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

Я пишу со своих слов и понимания, поэтому если ошибся в терминах, то не пинайте, а пишите в комментарии - я внесу правки. Спасибо за понимание

Вернемся к ошибкам. В Linux есть как минимум два типа ПО free и non-free. Когда я только ставил Debian, то выбрал минимальную free установку, тогда я не понимал, что для простого пользователя, который с Linux только начинает свое общение, так делать не стоит. Первый раз я столкнулся с этим при запуске bluetooth:

Но тогда мне повезло больше, я просто установил недостающие пакеты и счастливо жил дальше... В этот раз получилось немного сложнее, зато я верю, что решил даже те проблемы, которые еще не встретил. На сайте linux.org.ru я нашел несколько тезисов, которые объяснят нам разницу между free и non-free:

...non-free содержит firmware для оборудования и патентованный кодеки..
..репозиторий non-free, в котором собрано некоторое несвободное программное обеспечение, например закрытые драйверы и несвободные прошивки. Конечно, оборудование, которое требует несвободный драйвер или прошивку, будет работать только после включения репозитория non-free и установки того, что требуется оттуда...

Проще говоря, есть драйвера и софт, которые не будут работать на оборудовании или будут работать не так если мы используем только лишь free репозитории, что, собственно, я и делал. И вот мой i915 firmware как раз являлся частью non-free репозитория. Не совсем понятно, как у меня все работало раньше, либо я правда не обращал внимание на предупреждения, либо что-то поменялось в последних версиях пакетов, которые у меня решили обновится.

Решение своей проблемы я нашел тут, но уже когда писал публикацию, то нашел описание общего решения на русском тут. Рекомендация была в том, что нужно установить firmware-linux, который включает в себя firmware-linux-nonfree и firmware-misc-nonfree. Далее еще нам порекомендуют установить intel-microcode.

Однако, добавим теперь non-free репозитории в наш список, т.к. теперь понятно, что они совсем не лишние и игнорировать их не следовала с самого начала. Для этого потребуется отредактировать файл /etc/apt/sources.list и добавить в него следующие строки:

deb http://deb.debian.org/debian buster main contrib non-free
deb http://deb.debian.org/debian-security/ buster/updates main contrib non-free
deb http://deb.debian.org/debian buster-updates main contrib non-free

Затем выполнить команды

sudo apt update
sudo apt install apt-file
sudo apt-file update

Так я и сделал и все заработало, но это не совсем верно. Я просто добавил первые три строки из одного мануала и последние три строки из другого, которые дублируются или вообще неверные.

Первые 3 строки указывают на stretch релиз, а у меня buster, поэтому просто скопировать бездумно данные строки - было неверно, уберем их.

Последние 3 строки указывают уже на buster релиз, что уже, верно, но посмотрим внимательно выше - у меня уже есть данные строки и их не нужно переписывать, а вместо этого нужно просто добавить contrib non-free после main.

main состоит из DFSG-compliant пакетов, которым не требуется другое ПО из других зон. Эти пакеты считаются частью дистрибуции Debian
contrib пакеты содержат DFSG-compliant ПО, но у них зависимостей из зоны main (возможно упакованы в non-free).
non-free содержит ПО, которое не соответствует DFSG.

Upd1: В комментариях было ценное замечание:

У Debian добавили на репозитории ssl. B и надо все http:\\ - поменять на https:\\

Таким образом, после наведения порядка в /etc/apt/sources.list будет выглядеть вполне аккуратно:

-2

Как вывод могу сказать следующее: 1. Linux в очередной раз доказал, что он вполне простой и логичный, работать с ним не так сложно, как кажется, а все проблемы чаще всего создаем мы сами себе 2. Не стоит выполнять советы из интернета даже не попытавшись разобраться в том, что мы делаем. Обе инструкции которые я нашел в интернете были верны, но требовали доработок, которые я не сделал и тем самым раскидал себе грабли по огороду. И кстати, иногда инструкции просто устаревают, это тоже нужно проверять.

Всем добра, учимся на ошибках, пытаемся сделать мир лучше.

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

Также публикации можно найти на других площадках: Instagram, telegram (RU, EN, DE), Medium, LiveJournal, YouTube.

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