Нажатие изменений в репозитории драйверов

Мое понимание dkms – это способ динамического управления всеми подключенными / отключенными драйверами устройств в системе Linux. Если это так, то я должен представить, что он позволяет настроить «репо», где драйверы устройств могут быть установлены, так что, как только к нему подключено устройство с возможностью горячей замены, он обнаруживает, что драйвер устройства (в этом репо) и загружает его.

Если это правильно, то где это репо и настраивается ли это местоположение? Может ли он быть настроен на поиск драйверов в удаленном месте (с использованием HTTP, TCP и т. Д.)?

Кроме того, поддерживает ли dkms динамическое обновление / обновление драйверов устройств во время выполнения? Было бы неплохо подтолкнуть обновления драйверов устройства к этому репо, а затем dkms автоматически выпустить / выгрузить драйвер, перезаписать старый драйвер с новым / обновленным, а затем перезагрузить новый драйвер.

One Solution collect form web for “Нажатие изменений в репозитории драйверов”

Ни udev, ни DKMS не могут быть адекватно описаны как «способ динамического управления всеми подключенными / отключенными драйверами устройств в системе Linux». Udev динамически управляет устройствами , а не драйверами – он создает записи в /dev когда устройство подключено. DKMS касается драйверов, но это не имеет никакого отношения к поиску драйвера для устройства: это способ скомпилировать сторонние драйверы из источника при установке ядра.

Когда ядро ​​обнаруживает устройство, для которого нет драйвера, он вызывает программу modprobe чтобы попытаться загрузить модуль, который предоставляет этот драйвер. Программа modprobe в свою очередь, обращается к базе данных, созданной depmod которая перемещает файлы модулей ( *.ko ), расположенные под /lib/modules/ VERSION / . См. Debian не обнаруживает последовательную PCI-карту после перезагрузки для более подробного описания этого механизма.

Номинальная последовательность событий, когда устройство подключено и в памяти нет драйвера, является:

  1. Ядро вызывает modprobe для загрузки драйвера.
  2. modprobe загружает файл модуля из /lib/modules .
  3. Теперь, когда драйвер доступен, ядро ​​уведомляет udev о наличии нового устройства.
  4. udev создает запись под /dev для нового устройства.

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

DKMS вмешивается, когда драйвер не является частью ядра Linux. Трудно создать двоичный модуль, который работает в версиях ядра и вариантах компиляции. DKMS является основой для автоматической компиляции модулей для установленного ядра (я); модули распространяются как исходный код.

  • Сохраняйте раскладку клавиатуры при вставке внешней клавиатуры
  • Существует ли единый способ обнаружения информации об устройствах?
  • Правила udev, похоже, не работают
  • Предотвращение / dev / sda *, sdb * от создания, оставляя / dev / disk / by-uuid / * или / dev / disk / by-label / * intact
  • Как получить дополнительную информацию об этом устройстве?
  • udev не применяет правила
  • Проблема Kodak с неподвижной камерой udev
  • предотвращение перезаписи символики udev
  • Будет ли ключ usb иметь одно и то же имя каждый раз, когда я монтирую его?
  • Постоянное именование NIC во FreeBSD
  • Как предотвратить / sda / sdb изменения между загрузками?
  • Interesting Posts

    Могу ли я «экспортировать» функции в bash?

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

    TeamSpeak отключает другие приложения

    Удаление файла, который не имеет никаких разрешений и атрибутов

    linux-firmware-nonfree зависает моя система, но мне она нужна для 3D-графики

    поиск и имена эхо-файлов только с найденным шаблоном

    Команда поиска возвращает неверные файлы

    Bash не правильно вычисляет длину подсказки

    Cinnamon: как получить путь в тексте в окне графического интерфейса пользователя и как открыть терминал в текущем месте в графическом интерфейсе?

    Почему я получаю сообщение об ошибке при попытке захватить сигнал SIGINT?

    Почему мне нужно дважды вводить exit в моем терминале?

    Arch Linux – установка со старым изо-изображением

    Где меню «Сессия» в fedora 21 gnome desktop login

    компиляция оболочки nginx не выполняется

    Proftpd не отвечает команде «PASV»

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