Я использую Freescale QorIQ SDK 1.7. Я изменил конфигурацию ядра «make menuconfig», чтобы включить драйверы гаджета USB в качестве модуля и включить либо гаджет-ноль, либо серийный гаджет в качестве модуля.Развертывание модулей ядра гаджета USB в rootfs с помощью yocto
Я также скомпилировал периферийное устройство net2280 непосредственно в ядро, и оно очень просто загружается и привязывается к устройству PCI.
После бегаю bitbake
, недавно построенные корневой файловой системы не включает недавно построенные гаджет модули еще можно увидеть .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 или есть больше, чем это?
Я бы посмотрел в каталоге, где хранятся все пакеты. Просто создание модуля ядра не означает, что он будет установлен - по крайней мере, с базовым Yocto, я не знаком с слоями Freescale. С базовым Yocto каждый модуль ядра упаковывается в свой собственный пакет, и вы должны сообщить Bitbake также об установке пакета для каждого отдельного модуля ядра, который вы хотите иметь на изображении. – volker