Что такое linux firmware nonfree

Содержание
  1. Что такое linux firmware nonfree
  2. Добавление non-free в список источников и микропрограммное обеспечение (прошивка)
  3. Список источников
  4. Определение несвободной прошивки
  5. Прошивки на флешке
  6. Только самое нужное. Избавляем Linux от багажа прошивок для оборудования
  7. Содержание статьи
  8. Основы
  9. Ищем исходники модулей
  10. Находим все включенные в конфиге модули
  11. Продолжение доступно только участникам
  12. Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
  13. Пакет: firmware-linux-nonfree (20210315-3
  14. Ссылки для firmware-linux-nonfree
  15. Ресурсы Debian:
  16. Исходный код firmware-nonfree:
  17. Сопровождающие:
  18. Подобные пакеты:
  19. Binary firmware for various drivers in the Linux kernel (metapackage)
  20. Другие пакеты, относящиеся к firmware-linux-nonfree
  21. Загрузка firmware-linux-nonfree
  22. Zone PC
  23. Добавление пакетов с прошивками после установки debian
  24. Пакет: firmware-linux-nonfree (20190114-2
  25. Ссылки для firmware-linux-nonfree
  26. Ресурсы Debian:
  27. Исходный код firmware-nonfree:
  28. Сопровождающие:
  29. Подобные пакеты:
  30. Binary firmware for various drivers in the Linux kernel (meta-package)
  31. Другие пакеты, относящиеся к firmware-linux-nonfree
  32. Загрузка firmware-linux-nonfree

Что такое linux firmware nonfree

Добавление non-free в список источников и микропрограммное обеспечение (прошивка)

Список источников

Как известно, ISO-образ aptosid содержит только свободное ПО согласно DSFG, но существует возможность добавить contrib non-free в файл /etc/apt/sources.list.d/debian.list :

Запись в файл должена выглядеть таким образом, чтобы выбор зеркального сервера мог варьироваться. Прочитайте также: Список текущего состояния Debian серверов и зеркал.:

После изменений источников серверов Вам нужно выполнить команду в терминале apt-get update перед поиском и установкой новых пакетов (‘apt-get update’ является для каждой установки рекомендуемым).

Определение несвободной прошивки

Со следующей командой устанавливаются несвободные прошивки, (предположительно contrib non-free были добавлены в список источники):

Необходимую прошивку можно определить с помощью следующего списка устройств или прошивок или с скриптом fw-detect, который находится в пакете aptosid-scripts).

Выдача скрипта fw-detect описывает команды, которые нужны чтобы инсталлировать и активировать прошивку:

Чтобы установить прошивку из репозитория git, введите:

Прошивки на флешке

Если Вы нуждаетесь в прошивке уже перед инсталляцией, Debian-пакеты прошивки должны быть на USB-флешке. Чтобы перезаписывать их на другой компьютер, их надо сохранить либо как файл *.zip, либо как архив *.tar.gz от http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/sid/current/ и распаковать в каталоге «firmware», в котором находятся после этого ряд файлов с окончанием *.deb.

Затем загрузите файл http://packages.debian.org/sid/firmware-linux-free*.deb и добавьте этот ко всем другим *.deb в папке, к которой Вы извлекли прошивку. Тогда передайте их с флешкой на компьютер, который нуждается в прошивку и:

Мы стараемся предоставлять пакеты для легально распространяемых прошивок от наших несвободных репозиториях, но не все изготовители позволяют это.

Источник

Только самое нужное. Избавляем Linux от багажа прошивок для оборудования

Содержание статьи

С железом нередко бывает так, что одного драйвера в пространстве ядра ОС для его работы недостаточно. Нужна также прошивка (firmware), которая загружается в само устройство. Точный формат и назначения прошивки зачастую известны только производителю: иногда это программа для микроконтроллера или FPGA, а иногда просто набор данных. Пользователю это не важно, главное, что устройство не работает, если ОС не загрузит в него прошивку.

Читайте также:  Beta telegram mac os

В свободных операционных системах прошивки нередко вызывают споры. Многие из них распространяются под несвободными лицензиями и без исходного кода. Авторы OpenBSD и ряда дистрибутивов GNU/Linux считают это проблемой и со свободой, и с безопасностью и принципиально не включают такие прошивки в установочный образ.

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

Полный набор из linux-firmware занимает более 500 Мбайт в распакованном виде. При этом каждой отдельно взятой системе требуется только небольшая часть этих файлов, остальное — мертвый груз.

Даже в современном мире с дисками на несколько терабайт еще много случаев, когда размер имеет значение: встраиваемые системы, образы для загрузки через PXE и подобное. Хорошо, если о board support package позаботился кто-то другой, но это не всегда так.

Если ты точно знаешь полный список нужного железа, можно извлечь файлы вручную. Впрочем, даже в этом случае найти нужные файлы может быть непросто — linux-firmware представляет собой не очень структурированную кучу файлов, и списка соответствия файлов именам модулей ядра там нет. А если ты хочешь дать пользователям возможность легко собрать свой образ, тут и вовсе нет выбора — нужно автоматическое решение.

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

Примеры кода в статье упрощенные. Готовый и работающий скрипт ты можешь найти на GitHub.

К примеру, можно им просмотреть список прошивок для включенных в .config драйверов сетевых карт Realtek.

Основы

В ядре Linux нет глобального списка прошивок и кода для их загрузки. Каждый модуль загружает свои прошивки с помощью функций из семейства request_firmware . Логично, если учесть, что процедура загрузки прошивки у каждого устройства разная. Соответственно, информация о нужных прошивках разбросана по множеству отдельных файлов с исходным кодом.

На первый взгляд, некоторую надежду дает опция сборки FIRMWARE_IN_KERNEL . Увы, на деле она встраивает в файл с ядром только файлы, которые ты явно укажешь в EXTRA_FIRMWARE . Так что файлы все равно сначала придется найти.

Поиск по вызовам request_firmware() тоже не очень перспективен. Некоторые модули поддерживают несколько разных прошивок, да и имя файла часто хранится в переменной. В качестве примера можно посмотреть на фрагмент кода из драйвера сетевой карты Intel e100.

К счастью для нас, модули должны указывать нужные им файлы прошивок с помощью макроса MODULE_FIRMWARE() . Пример можно найти в e100. Этот макрос определен в файле include/linux/module.h .

Читайте также:  What file system linux support

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

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

Здесь и далее будем считать, что все ненужные модули отключены в конфиге сборки ядра (Kconfig). Если мы собираем образ для конкретной системы или ограниченного набора систем, это вполне логичное предположение.

Ищем исходники модулей

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

Находим все включенные в конфиге модули

Это самая простая часть. Конфиг сборки ядра имеет простой формат «ключ — значение» вроде CONFIG_IWLWIFI=m . Значение может быть n (не собирать), y (встроить в ядро) или m (собрать в виде модуля).

Нас интересуют только ключи, а какое значение там, y или m , нам не важно. Поэтому мы можем выгрести нужные строки регулярным выражением (.*)=(?:y|m) . В модуле re из Python синтаксис (. ) используется для незахватывающих групп (non-capturing group), так что захвачена будет только часть в скобках из (.*)= .

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Источник

Пакет: firmware-linux-nonfree (20210315-3

Ссылки для firmware-linux-nonfree

Ресурсы Debian:

Исходный код firmware-nonfree:

Сопровождающие:

Подобные пакеты:

Binary firmware for various drivers in the Linux kernel (metapackage)

This package depends on non-free firmware which may be used with drivers in the Linux kernel.

Другие пакеты, относящиеся к firmware-linux-nonfree

  • зависимости
  • рекомендации
  • предложения
  • enhances
  • dep: firmware-amd-graphics (= 20210315-3

    bpo10+1) Binary firmware for AMD/ATI graphics chips
    dep: firmware-misc-nonfree (= 20210315-3

    bpo10+1) Binary firmware for various drivers in the Linux kernel

  • rec: amd64-microcode Processor microcode firmware for AMD CPUs
  • rec: intel-microcode Processor microcode firmware for Intel CPUs

Загрузка firmware-linux-nonfree

Загрузить для всех доступных архитектур

Архитектура Размер пакета В установленном виде Файлы
all 23,0 Кб 29,0 Кб [список файлов]

Эта страница также доступна на следующих языках (Как установить язык по умолчанию):

Чтобы сообщить о проблеме, связанной с веб-сайтом, отправьте сообщение (на английском) в список рассылки debian-www@lists.debian.org. Прочую контактную информацию см. на странице Debian Как с нами связаться.

Авторские права © 1997 — 2021 SPI Inc.; См. условия лицензии. Debian это торговый знак компании SPI Inc. Об этом сайте.

Источник

Zone PC

Добавление пакетов с прошивками после установки debian

При установке debian netinstall при опознавании некоторого оборудования, могут появляться сообщения что нужны файлы firmware. Например на HP серверах нужны были q12300_fw.bin и tigon/tg3_tso.bin.

Если под рукой нет флешки с нужными файлами но система установилась можно добавить прошивки после установки.

С помощью dmesg находим какие прошивки не удалось загрузить. И проверяем на сайте http://wiki.debian.org/Firmware какие пакеты нужно установить. Нужно немного изменить список рипозиториев просто добавим после main секцию non-free для этого отредактируем файл /etc/apt/sources.list чтобы получилась такая строчка:

Теперь обновляем рипозиторий:

Для примера возьмем сетевушку tigon проверим ошибки в системном логе:

Ошибка может выглядеть так:

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

Поставим пакет с прошивками:

После перезагрузки ошибка должна исчезнуть.

Далее займемся картой Qlogic:

Здесь похожая ошибка:

Так же не найдена прошивка. В этот раз нам нужен пакет с прошивками для qlogic.

Перезагружаемся и ошибки должны исчезнуть.

Файлы прошивок могут располагаться в следующих папках:

  • /lib/firmware/$(uname -r) — Прошивки из пакетов для определенных ядер.
  • /lib/firmware/ — Прошивки из пакетов для всех ядер.
  • /usr/local/lib/firmware — Прошивки установленные вручную.
  • /usr/lib/hotplug/firmware — Прошивки из пакетов для всех ядер.

Источник

Пакет: firmware-linux-nonfree (20190114-2

Ссылки для firmware-linux-nonfree

Ресурсы Debian:

Исходный код firmware-nonfree:

Сопровождающие:

Подобные пакеты:

Binary firmware for various drivers in the Linux kernel (meta-package)

This package depends on non-free firmware which may be used with drivers in the Linux kernel.

Другие пакеты, относящиеся к firmware-linux-nonfree

  • зависимости
  • рекомендации
  • предложения
  • enhances
  • dep: firmware-amd-graphics (= 20190114-2

    deb9u1) Binary firmware for AMD/ATI graphics chips
    dep: firmware-misc-nonfree (= 20190114-2

    deb9u1) Binary firmware for various drivers in the Linux kernel

  • rec: amd64-microcode Processor microcode firmware for AMD CPUs
  • rec: intel-microcode Processor microcode firmware for Intel CPUs

Загрузка firmware-linux-nonfree

Загрузить для всех доступных архитектур

Архитектура Размер пакета В установленном виде Файлы
all 17,9 Кб 24,0 Кб [список файлов]

Эта страница также доступна на следующих языках (Как установить язык по умолчанию):

Чтобы сообщить о проблеме, связанной с веб-сайтом, отправьте сообщение (на английском) в список рассылки debian-www@lists.debian.org. Прочую контактную информацию см. на странице Debian Как с нами связаться.

Авторские права © 1997 — 2021 SPI Inc.; См. условия лицензии. Debian это торговый знак компании SPI Inc. Об этом сайте.

Источник

Читайте также:  Windows on macbook parallels
Оцените статью