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

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

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 необходимо иметь исправление для прошивки, и ему нужно будет снова скомпилировать ядро, чтобы сделать его доступным для пользователя. Это правильно?

  • Как узнать имена драйверов?
  • Получение TP-Link TL-WN722N для работы с Kali
  • Почему мое устройство rtl8188cus не может подключиться?
  • Подключенная мышь увеличивает время загрузки
  • настройка для моего беспроводного соединения
  • Получение моего Smart Card Reader для работы в Linux
  • FreeBSD не может использовать WiFi с BCM4360 на MacBook Air
  • Компиляция драйверов для armada 370
  • взаимодействуя с модулями ядра без предоставления пользователям доступа sudo?
  • Изменение драйверов видеокарты в Linux Mint 17
  • Графика Radeon с Linux Mint 18
  • Interesting Posts

    Системные вызовы в Linux

    Linux Mint Petra (16) Обновление Java от JRE 7 до JRE 8 разбивает графическую систему?

    Рекурсивно переименовывать файлы, сохраняя все символы перед символом подчеркивания

    удаленный пользователь по-прежнему является опцией входа в gnome в Debian 6

    функция forward и переменные в sudo su – <user> << EOF

    Ошибка обновления Yum: «невозможно запустить новый поток»

    Может ли «grub-emu» внести какие-либо изменения в мою систему?

    Настройка анонимного демона rsync

    как смонтировать общий ресурс CIFS, поэтому я могу полностью контролировать смонтированный том на клиенте

    Шифрование и обфускация имен файлов

    Как указать совпадающие шаблоны, исключая некоторые файлы с PATTERN в именах файлов

    почему сообщение postfix smtp отключено?

    В inittab, пытаясь установить переменную среды перед выполнением скрипта

    Как просмотреть информацию о экране в верхней части терминала?

    Что означает эхо "{@@ ##}"?

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