What is Arago? Learning more about TI support of the Yocto Project
Are you starting to engage with a Mainline Linux design and looking to better understand the role that the Yocto Project plays? This training session will provide a high level overview of the Yocto Project and explain TI's engagement with the Arago distribution.
Resources
The presentation "What is Arago?" is a part of the Sitar ARM processors boot camp training. You're probably wondering, what is Arago, and why on Earth should you care? Two very important questions that I'll provide answers to as we go through this presentation.
Hi, my name is Franklin Cooper Jr. an application engineer at Texas Instruments. I'm a part of the Sitara software application team. And I'm responsible for developing the Sitara Linux SDK, which combines the scripts, documentation, training, and software from our team and various teams across TI. So the very first question is, what is Arago? Arago is a Linux distribution tailored for TI's embedded devices.
It was created by Texas Instruments to provide a stable and supported foundation for customers to build on top of. It is the Linux distribution used in various TI Linux SDKs, including the Sitara Linux SDK. Arago is built using the Openembedded and Yocto framework and is completely open and free to use. You may have used the Arago distribution without being aware of it.
For example, if you purchase one of our am335x EVMs with a built-in display, such as the am335x starter kit, you will see this fancy application called Matrix. Matrix is the application launcher used to display and run various demos to showcase some of the various aspects of our Arago base SDKs. Or if you have connected to one of our boards via serial console, Telnet, or SSH and seen this fancy prompt, then you have used Arago already.
There are two version Arago that exist. In the past, if someone was referring to Arago, most likely they were referring to what I like to call Arago Classic. Arago Classic was built on the legacy Openembedded framework also known as OE Classic. Arago Classic and OE Classic are rarely updated. And usually, the updates are just bug fixes. Because it is outdated, it isn't recommended to be used for new projects.
Meta-Arago is the latest version of Arago and is built on the latest Openembedded framework and, at its core, depends on oe core that I'll talk about in the next slide. Meta-Arago and all the layers that it depends on are actively being developed and maintained. And it's recommended for new projects. Going forward, when I refer to Arago, I'm speaking about this latest version, Meta-Arago.
So before we get started and explain the different layers, two important keywords that I would like to talk about in case you're not familiar with Openembedded. First, a recipe is meta-data that contains all the instructions to build and package a given piece of software from scratch. Layer. A logical grouping of recipes and other useful files. Those are just very high-level definitions of what a recipe and layer is. But it's good enough for this presentation.
So today Arago distribution is built on using four layers in the oe core Yocto framework. For those of you who are not familiar with Openembedded you can think of layers as building blocks. And building blocks that can be built on top of previous layers. So at the very bottom, it's the Openembedded core layer, also known as OE core. OE core contains the bulk of the recipes and classes used by distribution built using the Openembedded framework.
Next is Meta-Openembedded, also known as meta-oe. This layer introduces some additional recipes and classes that aren't a good fit for oe core, and may even tweak or override some things in oe core. Next, you get into a TI-specific layer called Meta-TI. This layer contains the board support package, also known as BSP, for TI devices. This is where you would go to find various recipes for the Linux kernel U-boot, graphics SDK, and other TI software and device drivers. Finally, you would get to Meta-Arago, which contains even more classes and recipes that are specific to the Meta-Arago distribution.
So the second question is, why should you care? If you're familiar with Linux in general, you probably use or know the Ubuntu distribution. Or if you used one of our very popular community boards, BeagleBoard or BeagleBone, the you probably know of the Angstrom distribution. So why did we create another one? Well, for three very important reasons.
First, its support in. Arago is one of the distributions supported by Texas Instruments. So if you have a problem and need help, feel free to post a question on E2E Meta- Arago mailing list, #Arago IRC channel, or contact your local Texas Instruments contact for support. Second, it integrates various TI software. We already did the hard work to integrate various Open Source software and TI software to ensure that they are working together.
Third, it's tested. We verified and tested that all these pieces work together and fixed bugs encountered during our testing process. I'll elaborate a little bit more on points 2 and 3. As I mentioned earlier, many separate teams within TI create software or add support for TI devices in the existing software. We may have separate teams that work on the U-boot, the kernel, the graphics, or SGX core that some devices support, and wireless to add support for the Y-link wireless module. And if you want to use Qt with SGX integration, then tweaks need to be made to Qt.
So if you want to take the long boring approach, then you have a lot of reading to do. For each piece of software, you need to find the latest version that worked for your device, read the user's guide to understand how to configure, build and install a piece of software. If you have trouble, read the troubleshooting guide. Depending on the piece of software, there might be even more documentation you need just to get up and running.
So let's go through a little example of something a customer might end up doing. Warning, what you're about to see are actual screenshots of documentation. These are only a handful of documents that you may end up reading. And the documents are a lot longer than what you see here.
So you're working on a fancy wireless product with a display, and you decide to use the am335x, along with a TI Y-link module. You find the right documentation on how to build the software to get WLAN working on the Y-link module. Compiling is failing because there are software dependencies you need to build and configure first. And there's documentation for that.
You download the latest version of these software dependencies and everything builds find. You think you're done, but you realize you need to go through the same process to get Bluetooth working. Once that's done, you boot up the board and realize the wireless and Bluetooth is not working because you missed a part of the documentation, which mentioned that you need a very specific version of the software dependencies that you ran into issues previously.
Eventually, you manage to get Y-link working. So your next task is to integrate the drivers and libraries provided by the graphics SDK. This SDK contains everything you need to use the SGX core that your company paid extra for. You find the user's guide and manage to build the graphics SDK. Confident, you speed through the guide on how to integrate the graphics SDK with Qt.
Qt Takes a long time to build. So you may not realize you made a mistake until four hours into the build process when you get a compiling error. Or after it finished building and you test it out, you realize you configured it incorrectly. So why go through all the hassle of reading these documentation when the work has already been done for you. Simply pick what you want and know that it'll be configured and built properly for you.
You want to add Y-link, Wi-Fi, and Bluetooth support, and avoid dealing with the build and dependency issues? Simply use the packagegroup-arago-tidsk-connectivity.bb recipe. Want to enable the SGX features also? Include the packagegroup-arago-tisdk-graphics.bb recipe. Want to add Qt and automatically integrate SGX support and get it right the first time? Use the packagegroup-arago-tisdk-qte.bb recipe.
Since SDKs such as the Sitara Linux SDK are built using Arago, a lot of testing is done to ensure things are working together as expected for TI devices. This means software created by various teams are brought together for the first time and ran simultaneously to ensure everything runs as expected. Sometimes the unexpected happens, and it's better for us to run into these issues before you do.
We didn't expect the [INAUDIBLE] or FPDev plugin to break on the am335x. But once we found out, we were able to push a patch and add it to the Arago distribution to make sure you don't run into the same issue. Sometimes these issues are discovered after a given piece of software has been released and must wait for the next version, several months away, to incorporate the fix. Well, Arago users don't have that problem.
Once a fix has been created, a patch can be pushed and available for Arago users in hours or days, rather than weeks or months. If a given piece of software is a part of the Arago distribution, rest assured that it will just work, unless some release note says otherwise.
In this presentation, we covered two very important topics. One, what is Arago? Arago is a Linux distribution created and maintained by Texas Instruments, built using the tools and framework provided by the Openembedded and Yocto project. Why should you care? One, it's supported. Get the help you need from TI when you're stuck. Two, integrates various TI software. Spend time learning how to differentiate, instead of wasting it on how to integrate. Three, tested. Leverage the time, money, and resources TI has spent to test and validate that everything is working as smooth as possible.
Thanks for taking the time to watch this presentation. And if you want to learn more, please visit ti.com/sitarabootcamp. Additional training about various components of our Sitara SDK is included. Coming soon is in depth Yocto and OE core training. Thank you.