[yocto] linux-yocto custom device tree in overlay

Bruce Ashfield bruce.ashfield at windriver.com
Wed May 7 12:37:02 PDT 2014


On 14-05-07 11:33 AM, Andreas Galauner wrote:
> Hi Yocto Community,
>
> I'm currently trying to build a custom image for a beaglebone black for
> which I need to enable the can-controllers on the SoC. I managed to
> create an overlay which already deals with building a few tools for CAN
> communication, I created a kernel config snippet for linux-yocto to
> enable CAN-support in the kernel and it already works with a USB
> transceiver.
>
> Now I need to modify the device tree for the board to enable the SoC
> controllers. How do I put the device tree into my overlay? I tried
> several ways, but the kernel buildsystem doesn't seem to find the dts
> file to be compiled.
>
> That definitely doesn't work:
>> SRC_URI += "file://can.cfg \
>>              file://am335x-boneblack-cansniff.dts"
>> KERNEL_DEVICETREE = "am335x-boneblack-cansniff.dtb"
>
> Any ideas? Google wasn't too fruitful either.
> With non-yocto kernels I always put the device tree into the whole path
> like 'git/arch/arm/boot/dts/mydevicetree.dts'  but that also doesn't
> seem to work on linux-yocto because it uses another layout in its
> working directory.

I use device trees all the time with linux-yocto based kernels, and
what you have above is fundamentally correct, except (as you noted)
the dts is going only be in ${WORKDIR} and not somewhere the kernel
build can find it.

So you can either patch it into the kernel, or do a bbappend with
that copies it into the source tree 
(linux/arch/arm/boot/dts/mydevicetree.dts).

Cheers,

Bruce

>
> I'd rather not want to create my own git repo for linux-yocto like I did
> for another project where I needed the same.
>
> Thanks for your help,
> - Andy
>




More information about the yocto mailing list