2015-01-21 4 views
1

Я использую 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 или есть больше, чем это?

+0

Я бы посмотрел в каталоге, где хранятся все пакеты. Просто создание модуля ядра не означает, что он будет установлен - по крайней мере, с базовым Yocto, я не знаком с слоями Freescale. С базовым Yocto каждый модуль ядра упаковывается в свой собственный пакет, и вы должны сообщить Bitbake также об установке пакета для каждого отдельного модуля ядра, который вы хотите иметь на изображении. – volker

ответ

0

Тот факт, что вы находите .ko в каталоге/каталоге каталога каталога ядра (в котором находится ядро ​​«make install»), но не для пакетов-split подразумевает, что модуль ядра фактически не упакован. Вам нужно будет проверить путь, по которому он будет установлен, чтобы понять, почему он не упакован, а затем добавить пакет, который он попадает в корневые файлы, поскольку модули ядра упаковываются индивидуально.