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.

Confused about Arago

I feel like I keep going around in circles on this and I'm looking for some wisdom and direction. I hope that I am posting this in the correct place.

 I'm trying to get a Linux image setup for my custom board based on the AM335x.

I assume that I want to use the meta-arago layer because it has all the latest tested stuff. Correct?

 Our board will not have any sound, screen, usbgadget, or video support so I assume that I'll want to create a new MACHINE, probably based on meta-arago/meta-arago-distro/conf/machine/arago-armv7.conf (correct?) but with a different definition for MACHINE_FEATURES. Is this the correct thing to do? Do I start with a completely scratch machine definition coping bits and pieces from the arago machine definitions, or do somehow inherit or include the definitions from the arago files and somehow override or filter out stuff that I don't want?

 Next, I don't understand if I need to create a new distribution. It doesn't seem like I should, but I can see that meta-argo/meta-argo-distro/conf/distro/arago.conf defines DISTRO_FEATURES to include many things that my system won't need, including alsa, pcmcia, usbgadget, wifi, etc. I can't seem to find a complete description for what DISTRO_FEATURES does (same goes for MACHINE_FEATURES and IMAGE_FEATURES), does it mean that all of the things listed will be included in images based on the distribution or? Ultimately the question is: do I need to create a new distribution? And if I do how best to go about it.

 Finally, I think that I need to create a new image that only includes the packages that I want, I would think that I would want to base it on one of the arago images (i.e. include something like arago-base-image.bb in my image). However when I look at arago-base-image.bb I see that it includes packagegroup-arago-base which RDEPENDS on alsa-lib and alsa-utils-aplay both of which I don't think are needed since my board doesn't support sound. Does this mean that I shouldn't base my image on an arago-base-image or is there a way to filter these packages out?

 I really appreciate any help, and I really need some direction, I feel like I'm starting to learn how to get around the open-embedded stack but there is still a lot that I have to learn.

 

Matt S. 

  • Hi Matthew,

    I would recommend that you read through the Getting Started with Openembedded presentation from the Sitara Training page. I think that page answers some of your questions and will explain concepts required to customize what we provide in meta-arago to fix your custom device/project.


    A couple of answers:
    I believe the arago-armv7 machine is only for testing purposes. If you are creating a custom board then you should use the am335x-evm machine in meta-ti as a reference.

    All things in OE is about adding what you want and removing what you want. So if there are features you don't need like sound, touchscreen etc.. then you can make those changes to MACHINE_FEATURES and DISTRO_FEATURES.

    DISTRO_FEATURES are a list of distribution specific features that may enable or disable certain things from other recipes/software. For example some distributions use x11 so in their DISTRO_FEATURES they will add x11 and when they build other components the recipes may check to see if x11 is apart of the distro and if so will enable x11 specific features of if x11 isn't supported in the distro disable x11 features or throw an error.


    Similar concept applies for MACHINE_FEATURES.

    Yes it is recommended to create a new distribution but you simply can reuse what is used in the Arago distribution. So your custom distribution may simply just disable and add things to the DISTRO_FEATURES variable and leave everything else the same. Or you can do more. It really just depends on how much you want to customize the Arago distribution.

    Please take a look at that Getting Started with Openembedded presentation. Also in the future I would recommend that you send meta-arago/meta-ti questions to their mailing list meta-arago@arago-project.org and meta-ti@yoctoproject.org. That mailing list includes myself and other OE users who will be able to help with these types of questions.

  • Thanks for the reply Franklin

    You are correct about the arago-armv7 machine, once I realized that I started to use the beaglebone machine for a reference. It's more than a little confusing to have machine definitions in Arago that aren't real and should be ignored. 

    I've been through all the tutorials, videos, and training pages, they help with the fundamentals but they don't make good recommendations and don't go over many, many details.  They also don't tell one when you need to create a new distribution, machine, or image or all 3. Many of them cover the same things over and over again never really getting to the meat of the issue. 

    For instance you say that it is recommended to create a new distribution, where is that recommendation I haven't seen it. Furthermore, if it is recommended that I create a new distribution then what is the purpose of the Arago distribution? 

    You also say that in creating a custom distribution I can disable or add to the Arago distribution, how do I go about that? Do I included the Arago distribution in my own distro file and then somehow add or remove things from DISTRO_FEATURES, etc (what functions or features of OE do I used to modify those variables?) or do I make a copy of the Arago distribution files in my own layer and just edit them? What is recommended? 

    I sent this exact question to the meta-arago@arago-project.org mailing list on Friday and got zero response. I've been monitoring the meta-arago list for a while now and have even sent other questions to it and I really get the feeling, and was told, that the e2e lists should be the first place to go. 

    Thanks again for the response, I am getting there but it is a frustrating system to learn with a steep learning curve. 
    Matt S.