This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Building Custom SDK 7 code by OpenEmbedded

I'm trying to build custom code based on the TI SDK v07.00.00 using OpenEmbedded. I have found the following wiki: http://processors.wiki.ti.com/index.php/Sitara_Linux_Training:_Getting_Started_with_Openembedded

And am using that as a starting point, but I've come up with some questions. I followed the prerequisites section with only one change, the setup script I ran was for TI SDK 7 instead of 6. Here's my command:

./oe-layertool-setup.sh -f ./configs/amsdk/amsdk-07.00.00.00-config.txt

Now the ti-sdk7 that I've build previously uses linux-3.12.10-ti2013.12.01  and u-boot-2013.10-ti2013.12.01. Before I build or change anything I wanted to make sure that I was building the correct versions of the Linux kernel and the bootloader. When I search around a little, I found a number of different u-boot versions:

~/tisdk/sources/meta-ti/recipes-bsp/u-boot$ ls
u-boot                      u-boot-am37x-2012.04.01
u-boot_2011.12.bb           u-boot-am37x_2012.04.01.bb
u-boot_2013.01.01.bb        u-boot-beagleboard_2011.09.bb
u-boot-am180x-2010.12       u-boot-glsdk_2013.01.01.bb
u-boot-am180x_2010.12.bb    u-boot-keystone_2013.01.bb
u-boot-am33x_2011.10rc.bb   u-boot-ti.inc
u-boot-am33x_2013.01.01.bb  u-boot-ti-staging_2013.01.01.bb
u-boot-am3517_2011.09.bb    u-boot-ti-staging_2013.10.bb

and a number of different kernel versions:

~/tisdk/sources/meta-ti/recipes-kernel/linux$ ls
files                    linux-keystone-rt_3.10.bb     linux-ti33x-psp-3.2
linux                    linux-mainline-3.2            linux-ti33x-psp_3.2.bb
linux-3.3.7              linux-mainline_3.2.bb         linux-ti-glsdk
linux_3.3.7.bb           linux-omap                    linux-ti-glsdk_3.8.bb
linux-am335x-psp-3.2     linux-omap_2.6.37.bb          linux-ti-staging
linux-am335x-psp_3.2.bb  linux-omap4-3.4               linux-ti-staging_3.12.bb
linux-dtb.inc            linux-omap4_3.4.bb            linux-ti-staging_3.8.bb
linux.inc                linux-omapl138-psp-2.6.37     multi-kernel.inc
linux-keystone           linux-omapl138-psp_2.6.37.bb  setup-defconfig.inc
linux-keystone_3.10.bb   linux-omap-psp-2.6.37         tipspkernel.inc
linux-keystone-rt        linux-omap-psp_2.6.37.bb

So my first question:

1) How can I be sure that the correct version of u-boot (2013.10) and the correct version of the kernel (3.12.10) is what will be built? I don't see anything calling out the specific recipes that I think need to get built.

My second question:

2) I want to build custom code, that is code which started with the base 2013.10 bootloader and the 3.12.10 kernel and then  make changes to run on my custom hardware. I think the correct way to do this will be follow Lab 2 and have all the changes I made placed in the patch files and added to a SRC_URI variable. Is that correct?

My final 2 questions are:

3) Can I build the base code first and then tweak the recipes to use my patch files and then issue a "rebuild"? Ideally I would like to build the TI SDK 7 content for the AM335x evm:

MACHINE=am335x-evm bitbake tisdk-rootfs-image

Make sure that works on the EVM then add my patch files and rebuild for my custom hardware platform.

4) And also, if I want to build the tisdk  tisdk-rootfs-image-am335x-evm.tar.gz filesystem content with OpenEmbedded is what I supplied above the correct target "tisdk-rootfs-image" or is there something else I should pass there?

  • Hi Mike,

    I will ask somebody from the Linux team to answer this.

  • Hi Mike,

    Answers

    1) If you an SDK config you are guaranteed that it will point to the correct U-boot and kernel. That config is the same exact config used to build the specific SDK.

    The longer answer is that we use a combination of PREFERRED_VERSIONS and PREFERRED_PROVIDERS. meta-arago-distro/conf/distro/include/arago-prefs.inc and machine include files meta-ti//conf/machine/include/ti33x.inc are the typical places that we use to insure that the correct recipe version and recipe is used.


    2) Yes.

    3) Yes. As long as you increase the PR for the recipe that you tweaked the next time you build it directly or indirectly (ex filesystem image) the recipe will be rebuilt.

    4) Yes

    I would highly recommend that you run through the OE training atleast once and stick with SDK 6.0 for the training. There are parts of the training and labs that will differ when ran on SDK 7.0 and unless you understand some of the basics you will end up getting stuck. However, once you gone through the training it will be trivial for you to apply what you learn on SDK 7.