Как добавлена ​​новая аппаратная поддержка ядра linux?

Представьте, что есть компания A, которая выпускает новый графический адаптер. Кто управляет процессом, который приводит к тому, что новый графический адаптер будет поддерживаться ядром Linux в будущем? Как это происходит? Мне любопытно, как обрабатывается поддержка ядра для любого нового оборудования; на Windows компании сами разрабатывают драйверы, но как Linux получает конкретную аппаратную поддержку?

  • Как мне grep и сортировать с помощью этого конкретного шаблона?
  • Как обнаружить, что выполняется менее чем x процессов
  • Linux / bash не выполняет исполняемый файл, который «который» говорит мне
  • Проблема регулярных выражений в Bash: , похоже, не работает
  • Использование файлов / etc / sysconfig / network-scripts / ifcfg-eth *
  • Установка модулей отдельных модулей Yum
  • Неактивная память Linux
  • Безголовый firefox потерпел неудачу на aws amazon linux
  • Systemd: как выполнять скрипт только при выключении (не при перезагрузке)
  • Сценарий для сравнения 2 входных параметров и отображения общих букв (ов)
  • Как определяется конфигурация ядра Linux?
  • разные MTU по одной ссылке
  • 2 Solutions collect form web for “Как добавлена ​​новая аппаратная поддержка ядра linux?”

    Поддержка драйверов работает так же, как и с открытым исходным кодом: кто-то решает поцарапать свой собственный зуд.

    Иногда драйвер предоставляется компанией, предоставляющей аппаратное обеспечение, как и в Windows. Intel делает это для своих сетевых чипов, 3ware делает это для своих RAID-контроллеров и т. Д. Эти компании решили, что в их интересах предоставлять драйвер: их «зуд» заключается в продаже продукта пользователям Linux, а это означает, что что есть водитель.

    В лучшем случае, компания работает, чтобы получить их водитель в соответствующий источниковой базе, которая поставляется с дистрибутивами Linux. Для большинства драйверов это означает ядро ​​Linux. Для графических драйверов это означает X.org . Существуют также CUPS для драйверов принтеров, NUT для драйверов ИБП, SANE для драйверов сканера и т. Д. Очевидным преимуществом этого является то, что дистрибутивы Linux после принятия драйвера будут поддерживать оборудование из коробки. Самым большим недостатком является то, что для работы с проектом с открытым исходным кодом больше усилий для того, чтобы получить свой драйвер, по тем же основным причинам двум координаторам сложно координировать что-либо.

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

    Редкие немногие компании предоставляют только двоичные драйверы вместо исходного кода. Примером могут служить более продвинутые 3D-драйверы от таких компаний, как NVIDIA. Как правило, причиной этого является то, что компания не хочет раздавать информацию, которую они считают собственностью. Такие драйверы часто не работают с таким количеством дистрибутивов Linux, как в предыдущих случаях, потому что компания, предоставляющая оборудование, не потрудилась перестроить свой драйвер для отслеживания изменений API и ABI. Конечным пользователям или поставщику дистрибутива Linux может помочь настроить драйвер, предоставленный в качестве исходного кода, для отслеживания таких изменений, поэтому в предыдущих двух случаях драйвер обычно может работать с большим количеством систем, чем с двоичным драйвером.

    Когда компания не предоставляет драйверы Linux, кто-то из сообщества просто решает это сделать. Есть несколько крупных классов аппаратного обеспечения, где это распространено, например, с ИБП и принтерами. Требуется редкий пользователь, который: a) имеет аппаратное обеспечение; б) имеет время; c) обладает навыком; и d) имеет склонность тратить время на разработку драйвера. Для популярного оборудования это обычно не проблема, потому что с миллионами пользователей Linux эти немногие существуют. У вас возникают проблемы с необычным оборудованием.

    Чтобы понять это подробно, недавно появилась малина Pi 3 и добавлена ​​чип bluetooth. Теперь это чип Broadcom BLE и ядро ​​Raspberry Pi не поддерживают его, поэтому библиотека bluez для Linux не работает. Теперь, в идеале, для этого чипа BLE необходимо иметь исправление для прошивки, и ему нужно будет снова скомпилировать ядро, чтобы сделать его доступным для пользователя. Это правильно?

    Linux и Unix - лучшая ОС в мире.