[yocto] how to build external firmware for kernel

lothar at denx.de lothar at denx.de
Tue Aug 6 05:45:48 PDT 2013


Am 2013-08-05 16:38, schrieb Paul Eggleton:
> On Monday 05 August 2013 14:41:04 lothar at denx.de wrote:
>> How may I work with the STAGING_KERNEL_DIR, since I first run the
>> firmware.bb and then the kernel.bb. I think I did not understand well,
>> how I may achieve this. Do I need to install the firmware blob into
>> something like $STAGING_KERNEL_DIR/firmware? How may I proceed here,
>> could you please explain a bit more?
> 
> Sorry, I misunderstood your original explanation - in that case you 
> cannot use
> STAGING_KERNEL_DIR because it will only exist after the kernel has been 
> built.
> 
> It seems a bit odd that you'd need to build the firmware first and
> then use that
> as an input to the kernel build - is it baking the firmware into the 
> module
> instead of loading the firmware at runtime like most other drivers?
> 
> Cheers,
> Paul

Hi,

I think I found a solution to my issue myself, at least it works out. I 
don't
know if it is nice.

Rethinking about the problem, and playing around with the information of 
the
answer Paul gave me I did the following modifications.


## in firmware.bb now I do the following
(...)
do_install(){
     install -d ${base_libdir}/firmware/imx/sdma || die "something wrong 
with firmware path"
     install -m 755 sdma-imx53.bin 
${base_libdir}/firmware/imx/sdma/sdma-imx53.bin
}


## in kernel.bb
(...)
DEPENDS = "firmware-native"
do_configure_prepend(){
     ## set option to use the firmware
     echo 'CONFIG_EXTRA_FIRMWARE="imx/sdma/sdma-imx53.bin"' >> 
${WORKDIR}/defconfig

     ## fetch the firmware blob
     cp -arv ${STAGING_DIR_NATIVE}/lib/firmware/imx ${S}/firmware/ || die 
"no sdma-firmware found"
}

then the kernel compilation works just perfectly

BR,
L




More information about the yocto mailing list