2014-10-08 4 views
0

У меня есть динамически загруженный модуль с драйверами символов с большим числом X, который считывает трафик последовательного порта, а затем приложение обрабатывает трафик последовательного порта с помощью записи/dev/node с майором X.Обновление модуля ядра с минимальным временем простоя и без перезагрузки

Я хочу, чтобы обновить модуль драйвера, так что новый модуль должен получить тот же номер основной X и начать обрабатывать тот же последовательный порт, используя один и тот же вход/Dev узла с Major X.

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

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

Каким должен быть подход?

ответ

0

Я бы посмотрел на фреймворк драйвера устройства и использовал мета-шину, архитектуру устройства и драйвера для регистрации драйверов, создающих виртуальный драйвер над вашими серийными драйверами.

ваше приложение регистрируется с помощью виртуального драйвера.

Вы внедряете логику для виртуального драйвера, чтобы принять регистрацию новых реальных драйверов.

0

В основном, выгрузите его мод с помощью modprobe, добавьте/обновите мод в/lib/modules/YourKernel /, перезагрузите мод, используя modprobe. Не забудьте скомпилировать мод, используя заголовок ядра версии CURRENT!

Смежные вопросы