Загрузка моего собственного драйвера устройства как встроенного в Yocto на моем собственном мета-слое - PullRequest
0 голосов
/ 20 сентября 2018

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

http://wiki.kaeilos.com/index.php/Howto_build_a_kernel_module_out_of_the_kernel_tree

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

Спасибо за ваше время.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Я надеюсь, что ваш начальный модуль будет иметь вызовы module_init () и module_exit.

Чтобы сделать этот usb-модуль частью встроенного ядра, самое первое, что нужно изменить, это изменить исходный код, чтобы удалить вызовы module_init или module_exit.добавить вызовы платформы probe, init и т. д. /

Скопируйте исходный файл в соответствующий каталог с исходным кодом, например "driver / usb / *"

Добавьте запись в файл KCONFIG с некоторым описанием этого драйвераа также добавить правила для его зависимостей

Добавить запись в Makefile для условной компиляции.

Сконфигурировать ваше ядро, используя make menuconfig, чтобы включить тэг config и собрать ядро ​​

0 голосов
/ 20 сентября 2018

Вы не можете иметь внешние модули, встроенные в ядро ​​Linux.Таким образом, вам нужно поместить ваш драйвер в drivers/usb/ (в зависимости от типа оборудования его нужно поместить в drivers/usb/host/, если это драйвер хост-контроллера или drivers/usb/dwc* или drivers/usb/gadget/udc, если это драйвер гаджета) вашего ядра Linux.tree.

Затем вам необходимо добавить соответствующую конфигурацию в Kconfig и Makefile в drivers/usb.Наконец, вам нужно включить это как встроенный драйвер в defconfig / .config для сборки.

Короче говоря,

  1. Поместите ваш драйвер в drivers/usb
  2. ДобавитьKconfig и Makefile.Например, CONFIG_USB_HW_HCD
  3. Добавить в defconfig как CONFIG_USB_HW_HCD=y.В Yocto вы можете указать файл defconfig как file://defconfig в вашем SRC_URI.

EDIT: Поскольку вы используете непосредственно meta-intel, вы можете создавать патчи и bbappend.к этому.Для этого

  1. git clone "intel kernel repo"
  2. Добавьте драйвер, как указано выше.Скопируйте в drivers/usb, добавьте Kconfig, Makefile запись.
  3. Добавьте этот драйвер в git repo, используя git add + git commit
  4. Создайте патч, используя git format-patch
  5. Создайте файл .bbappend и добавьте этот патч.Вы можете поместить этот файл .bbappend в любой пользовательский слой или в саму meta-intel.
  6. Добавить фрагмент defconfig также в файл .bbappend для своего ядра Linux.

Таким образом, вам не нужно иметь отдельное репо с тем же ядром Linux.

...