Я использую Freescale QorIQ SDK 1.7. Я изменил конфигурацию ядра «make menuconfig», чтобы включить драйверы USB-гаджетов в качестве модуля и включить либо нулевой гаджет, либо последовательный гаджет в качестве модуля.
Я также скомпилировал периферийное устройство net2280 непосредственно в ядро, и оно отлично загружается и привязывается к устройству PCI.
После того, как я запустил bitbake
, только что созданная rootfs не включает недавно созданные модули гаджетов, но я вижу, что файлы .ko
были созданы:
$ find -name g_zero.ko
./tmp/work/t1040rdb-fsl-linux/linux-qoriq/3.12-r0/git/drivers/usb/gadget/g_zero.ko
./tmp/work/t1040rdb-fsl-linux/linux-qoriq/3.12-r0/image/lib/modules/3.12.19-rt30-QorIQ-SDK-V1.7+g6619b8b/kernel/drivers/usb/gadget/g_zero.ko
но когда я смотрю на изображение, я ничего не получаю.
$ tar -tzvf tmp/deploy/images/t1040rdb/fsl-image-core-t1040rdb.tar.gz | grep g_zero
Одна вещь, которую я нашел в поиске, это то, что было предложено скопировать .config
в meta-fsl-arm/recipies-kernel/linux/
. К сожалению, я использую meta-fsl-ppc
, и похоже, что для конфигурации ядра используется совершенно другая схема.
Во-первых, в meta-fsl-ppc/conf/machine/machine.conf
определена переменная, которая выглядит так:
KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/corenet32_fmanv3_smp_defconfig"
Я подумал, что, возможно, мне нужно перезаписать этот файл. Однако я не понимаю, куда фактически указывает ${S}
.
$ bitbake -e | grep KERNEL_DEFCONFIG
KERNEL_DEFCONFIG="/home/jaket/QorIQ-SDK-V1.7-20141218-yocto/build_t1040rdb_release/tmp/work/ppce5500-fsl-linux/defaultpkgname/1.0-r0/defaultpkgname-1.0/arch/powerpc/configs/corenet32_fmanv3_smp_defconfig"
Что ничего не соответствует моему дереву:
$ find -name corenet32_fmanv3_smp_defconfig
./tmp/sysroots/t1040rdb/usr/src/kernel/arch/powerpc/configs/corenet32_fmanv3_smp_defconfig
./tmp/work/t1040rdb-fsl-linux/linux-qoriq/3.12-r0/sysroot-destdir/usr/src/kernel/arch/powerpc/configs/corenet32_fmanv3_smp_defconfig
./tmp/work/t1040rdb-fsl-linux/linux-qoriq/3.12-r0/package/usr/src/kernel/arch/powerpc/configs/corenet32_fmanv3_smp_defconfig
./tmp/work/t1040rdb-fsl-linux/linux-qoriq/3.12-r0/git/arch/powerpc/configs/corenet32_fmanv3_smp_defconfig
./tmp/work/t1040rdb-fsl-linux/linux-qoriq/3.12-r0/image/usr/src/kernel/arch/powerpc/configs/corenet32_fmanv3_smp_defconfig
./tmp/work/t1040rdb-fsl-linux/linux-qoriq/3.12-r0/packages-split/kernel-dev/usr/src/kernel/arch/powerpc/configs/corenet32_fmanv3_smp_defconfig
Итак, я предполагаю, что у меня вопрос: когда загружаемый модуль настраивается в ядре, ожидается ли, что модуль волшебным образом найдет свой путь в rootfs, или это нечто большее?