Yocto: добавление рецепта модуля ядра в образ, но он не загружается при загрузке

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

SUMMARY = "Example of how to build an external Linux kernel module"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"

inherit module

PR = "r0"
PV = "0.1"

SRC_URI = "file://Makefile \
           file://hello.c \
           file://COPYING \
          "

S = "${WORKDIR}"

# The inherit of module.bbclass will automatically name module packages with
# "kernel-module-" prefix as required by the oe-core build environment.

hello.c Файл очень прост.

#include <linux/module.h>

int init_module(void)
{
    printk("Hello World!\n");
    return 0;
}

void cleanup_module(void)
{
    printk("Goodbye Cruel World!\n");
}

MODULE_LICENSE("GPL");

Теперь я добавил этот модуль в свой рецепт изображения.

SUMMARY = "A console-only image that fully supports the target device \
hardware."

IMAGE_FEATURES += "splash package-management"

IMAGE_INSTALL += "test-mod autoconf automake binutils make busybox"

LICENSE = "MIT"

inherit core-image

Когда я загружаю образ, я вижу тест "hello.ko" в каталоге / lib / modules, но когда я проверяюdmesgЯ не вижу вывод, указывающий загруженный модуль ядра.

Когда я запускаю вручнуюinsmod наhello.koЯ получаю вывод. Кроме того, когда я бегуrmmodЯ получаю вывод.

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

редактировать:

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

/ # dmesg | grep "Hello"
/ # insmod hello.ko 
[   68.503689] Hello World!
/ # rmmod hello.ko 
[   72.702035] Goodbye Cruel World!

Ответы на вопрос(1)

Ваш ответ на вопрос