2013-11-01 2 views
2

Я выполнил ядро ​​Linux с драйвером последовательного устройства статически i.e obj-y.Извлечение модуля драйвера устройства, который был статически выполнен

Теперь я работаю над простым серийным драйвером, и я хочу его протестировать, но поскольку модуль загружается при загрузке ядра, области ввода-вывода (0x3f8 и далее) регистрируются в последовательном модуле. Мне нужно удалить (отменить) его, чтобы я мог выделить его моему драйверу.

Итак, есть ли способ удалить статически связанный драйвер устройства? или мне следует перекомпилировать все ядро:/

ответ

4

Вы должны перекомпилировать все ядро ​​и сделать этот драйвер obj-m.

После того, как он загружен (либо делается автоматически modprobe или вручную с insmod), вы можете удалить его (с помощью rmmod), изменить код, скомпилировать его снова и загрузите его снова.

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

+0

yep, спасибо за ваш быстрый ответ. Уже началось компиляция :-D –

+0

Еще одна возможная идея на тот случай, если мы не хотим снова создавать ядро, отключить драйвер, а затем загрузить/привязать новый пользовательский драйвер. –

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