Как я могу поручить системе перезагрузить все модули ядра, которые изменились? (Я разрабатываю драйвер с несколькими модулями. Мне нужен быстрый и безошибочный способ перезагрузить все модули, которые меняются.)
Как перезагрузить модифицированные модули ядра
Ответ 1
Нет простого, безошибочного способа, поскольку ошибка в коде, который добавляет/удаляет драйвер из ядра, может сделать невозможным избавиться от модуля. Аналогичным образом ошибка в драйвере может вызвать тупик в некоторых обработчиках прерываний, поэтому ядро никогда не сможет выгрузить модуль.
Кроме того, нет автоматического способа сделать это, так как ядро не проверяет файлы модулей для изменений.
Все, что вы можете сделать, это написать небольшой script, который вызывает rmmod
в правильном порядке для удаления модулей, а затем modprobe
новых версий в ядро.
Ответ 2
Использование rmmod для удаления добавленных модулей и использование modprobe для повторной загрузки отлаженных модулей - единственное эффективное решение.