Как перезагрузить модифицированные модули ядра

Как я могу поручить системе перезагрузить все модули ядра, которые изменились? (Я разрабатываю драйвер с несколькими модулями. Мне нужен быстрый и безошибочный способ перезагрузить все модули, которые меняются.)

Ответ 1

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

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

Все, что вы можете сделать, это написать небольшой script, который вызывает rmmod в правильном порядке для удаления модулей, а затем modprobe новых версий в ядро.

Ответ 2

Использование rmmod для удаления добавленных модулей и использование modprobe для повторной загрузки отлаженных модулей - единственное эффективное решение.