Как перезагрузить модифицированные модули ядра - PullRequest
10 голосов
/ 10 января 2011

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

Ответы [ 2 ]

15 голосов
/ 10 января 2011

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

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

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

0 голосов
/ 04 января 2019

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

...