Почему некоторые драйверы по-прежнему требуют прошивки?

В дереве ядра Linux есть тонна драйверов с обратным преобразованием. Однако некоторые драйверы, особенно беспроводные драйверы, требуют, чтобы бинарные капли встроенного программного обеспечения работали должным образом.

Что мешает кому-то перепроектировать это тоже, и сделать драйвер на 100% бесплатным? Или это разные для разных драйверов?

2 Solutions collect form web for “Почему некоторые драйверы по-прежнему требуют прошивки?”

Прошивка – это программное обеспечение, которое работает на процессоре в самом устройстве, а не на главном CPU. Прошивка, скорее всего, будет закрытой, чем драйверы по разным причинам.

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

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

Прошивка намного сложнее переделать, чем код драйвера. Часто периферийные устройства не могут легко отлаживаться, в отличие от драйверов, работающих на основном процессоре. Кроме того, прошивка работает в среде, которая часто плохо документирована, если вообще (в то время как существует несколько типов ЦП, какие устройства ввода / вывода сопоставляются с тем, какие адреса являются чрезвычайно переменными).

В случае драйверов wifi есть дополнительная проблема. Закон в большинстве мест запрещает использование определенных радиочастот и требует, чтобы потребительские устройства были защищены от трансляции на этих запрещенных частотах. Часто аппаратное обеспечение довольно гибкое и единственная защита в прошивке. Если производитель сделал слишком простое изменение прошивки для трансляции на запрещенных частотах, они могут нарушить эти правила.

Вы правы, что разные для разных драйверов. Многие из этих драйверов охватываются патентом или NDA, что исключает это действие.

  • Какой инструмент для тегов mp3 для Linux?
  • Как прошивать прошивку под Linux на практике?
  • SIOCSIFFLAGS: операция не разрешена (прошивка wifi)
  • почему некоторые сетевые карты должны загружать внешнюю прошивку?
  • Ошибка сообщения об ошибке прошивки на Arch на Apple
  • загрузка пользовательского ядра и прошивки
  • Как запустить мой USB-адаптер RTL8191SU Wi-Fi в режиме монитора в Linux?
  • Linux на Dell Inspiron 630m
  • Прошивка ethernet "Tigon": сообщение об ошибке, хотя работает
  • Как использовать параметр EXTRA_FIRMWARE_DIR?
  • Декомпилировать / запустить исполняемый файл MIPS под x86_64 Ubuntu
  • Ядро 4.12.3 не взаимодействует с bcmwl-kernel-source (Mint 18.2)
  • Linux и Unix - лучшая ОС в мире.