[meta-ti] Buidling for am335x_evm
Denys Dmytriyenko
denys at ti.com
Fri Oct 4 14:50:47 PDT 2013
On Fri, Oct 04, 2013 at 02:00:44PM -0700, Rudolf Streif wrote:
> Thanks, Denys. I appreciate your help.
You are very welcome.
> > FAT boot partition is no longer preferred place for kernel images and DTB
> > files - U-boot now wants to see them in /boot directory of the rootfs.
> >
> That is actually a good thing. But I assume one will still need the FAT
> partition for MLO and u-boot itself.
Correct, you still need FAT boot partition for MLO and u-boot.
> Unfortunately, the do_rootfs task does not put dtb or kernel into /boot yet.
You are just using the wrong image :)
core-image-minimal is not installing any kernel modules, hence no kernel
image and no kernel device trees.
Kernel image being pulled by default into /boot was there for long time. And I
pushed the patch earlier today for pulling device trees into /boot. But that
only happens when your image installs anything from the kernel, which
core-image-minimal doesn't do. Try core-image-base instead.
> > Ok, let's debug why you are not getting any DTB files produced. There
> > should
> > be at least 3 of them for the case of am335x-evm, as it covers EVM, EVM-SK
> > and
> > BeagleBone.
> >
> They are not created. I changed the machine to beaglebone to test. No
> dtb's created although the build process finishes without errors.
The machine is not the problem - the problem is the layer setup, as I
suspected... See below.
If you build for beaglebone, you'll only get DTB for beaglebone. If you build
for am335x-evm, you'll get 3 DTBs for EVM, EVM-SK and beaglebone, as I
mentioned before.
> > Can you show me your bblayers.conf file, please?
> >
>
> Of course:
>
> # LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
> # changes incompatibly
> LCONF_VERSION = "6"
>
> BBPATH = "${TOPDIR}"
> BBFILES ?= ""
>
> BBLAYERS ?= " \
> /run/media/rudi/WDPassport-1T/develop/yocto/yocto-dylan/poky/meta \
> /run/media/rudi/WDPassport-1T/develop/yocto/yocto-dylan/poky/meta-yocto \
>
> /run/media/rudi/WDPassport-1T/develop/yocto/yocto-dylan/poky/meta-yocto-bsp \
> /run/media/rudi/WDPassport-1T/develop/yocto/yocto-dylan/bsp/meta-ti \
> "
So, I see the problem here - you placed meta-ti layer at the very bottom,
which prevents it from overriding any files in other layers. Specifically,
meta-ti has a newer linux-dtb.inc to handle in-tree compilation of DTBs and
the new syntax, which happened recently around 3.10-3.12 timeframe...
The way you set it up, you are not using linux-dtb.inc from meta-ti, but
instead using an old one from oe-core (poky/meta in your case). This
particular file has been updated in the master branch of OE-Core and Poky, but
not in Dylan, because Poky/Dylan was frozen on 3.8, like you said before.
We needed the newer one in Dylan, because we have 3.12 in there as well as in
the master.
So, the solution is to have meta-ti before meta. I'm also wondering why you
have meta-yocto and meta-yocto-bsp after meta, but I will leave that to Poky
maintainers... Also, if you have meta-yocto-bsp before meta-ti, you will have
issues with beagleboard machine and recipes in meta-ti, as both those BSP
layers define beagleboard machine. But you don't seem to use beagleboard now.
BTW, meta-yocto-bsp is a reference BSP, you don't need it if you have real BSP
So, I usually compose layer stack as follows:
* Distro
* Apps
* BSP
* Core
This way you have the most flexibility overriding different things in higher
layers from their originals in lower core layers.
In your case, Distro = meta-yocto, Apps is empty, BSP is meta-ti _and_
meta-yocto-bsp, and Core is meta. Try switching them around.
--
Denys
More information about the meta-ti
mailing list