Загрузка встроенного драйвера Linux - PullRequest
4 голосов
/ 10 августа 2011

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

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

Спасибо, Рамон.

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

Для вашего первого вопроса, я предполагаю, что вы хотите встроить свой драйвер статически в образ ядра (не как модуль). Сначала вы выбираете каталог в каталоге драйверов, куда вы хотите поместить файлы драйверов. Предположим, вы хотите поместить ваши файлы в drivers/char/. Скопируйте ваши файлы в этот каталог. В каталоге drivers/char/ будет файл Kconfig, откройте его и добавьте запись, подобную этой, перед endmenu.

config MYDRIVER
    bool "This is a driver for something"
    default n
    help
      This is a test driver.

Сохраните файл и откройте Makefile в том же каталоге. Перейдите в конец файла и добавьте следующую запись.

     obj-$(CONFIG_MYDRIVER)            += mydriver.o

Вот и вы добавили файл в дерево ядра. Теперь, как обычно, выполните make menuconfig и выберите MYDRIVER.

Подробнее см. Сборник ядра .

1 голос
/ 11 августа 2011

Вам необходимо собрать драйвер устройства как встроенный . Вы можете либо отредактировать файл ядра .config вручную и изменить "= m" на "= y" для параметра CONFIG, который принадлежит вашему модулю, либо использовать make menuconfig для изменения * От 1007 * до <*> для вашего драйвера устройства.

before -> <M> Your Device Driver Name Here
after  -> <*> Your Device Driver Name Here
...