Q&A from Live Webinar
Q: How I can use the Yocto project to develop a Linux distribution as a BSP for ARM or other processors and will it be industry standard acceptable in future if i commercialize my product?
A: Yocto is exactly what you want to use for this, and is the most commonly used embedded framework in industry. To create a BSP, see "Yocto Project Board Support Package Developer's Guide " at yoctoproject.org.
Q: Are Linaro tools not compatible with Yocto?
A: Yocto generally builds its own toolchain from source, but it should be possible to use Linaro tools as an external toolchain for Yocto.
Q: How does one decide which branch of Yocto to use for a given project?
A: The choice will often depend on what version your hardware, BSP, or OS vendor supports. The Qt Company's boot2qt, for example, supports up to the Pyro release.
Q: Can I use Yocto to build a package manager (like apt) into a Linux system ?
A: Yocto supports various package formats (e.g. rpm, deb) and you can cross-compile utlilities like apt. Typically, in a commercial embedded product you will want to develop some kind of update manager to hide the command line tools from the end user.
Q: How do you update packages on distro's created by Yocto? Do they work similarly as Debian, Ubuntu work?
A: Yes, see the answer to the previous question.
Q: How do we extend yocto with custom layers for internally developed components?
A: This is covered in documentation like the "Yocto Project Development Manual". This would be a good topic for an ICS blog series, we'll consider doing this.
Q: What's the difference between baking boot2qt or baking qt5?
A: Baking Qt 5 would be building just the Qt libraries. Boot2qt is an entire embedded Linux distribution, of which Qt 5 is a subset.
Q: I often find I need to upgrade a specific package or change its compilation flags... it can be hard to find where to tweak things in the (large) directory structure. What's your general approach?
A: It is generally just something you have to learn. It can sometimes take some detective work with tools like grep. I recommend keeping notes on what you change for future reference.
Q: To make some change in software that is built with Yocto I had to commit my change to its git repository. Because if my change is not commited it is not picked up by Yocto. Could you please suggest any way to try my change without commiting to project git?
A: You can use patches to make changes and have bitbake apply them. Generally it is good practice to keep all code (even patches) in a git or other repository so it can be built in a known, repeatable way.
Q: Which type of licenses should I avoid if I'm building a Yocto based OS for a proprietary project? Should I release any source code?
A: I can't give legal advice on specific licenses. There are significant differences in how to comply with GPL versus LGPL licenses, for example.
Q: Will this work on Cortex-M ARM micros, specifically a board like the STM32F746G Discovery Board, which is a Cortex-M7?? Or does it only work on Cortex-A micros as used in the examples presented?
A: I'm not familiar with this particular board. If it is a low-end board with no MMU that can't run Linux, you won't be able to run the Yocto reference distribution, but you should still be able to use Yocto as your build system.
Q: Is there any sort of license roll-up tool that can compile all the licensing of all the dependencies and let you know how restrictive your project is and why? Is there a tool to generate a combined license from all dependent projects?
A: Yes, Yocto provides tools for managing and documenting all the licenses used. See the section of the Yocto Project Development Manual called "Maintaining Open Source License Compliance During Your Product's Lifecycle".
Q: Let say I am building a distro using yocto for BBB, how the process should be? To secure and update.
A: See the earlier questions - you can use packages to support updates, but will likely want to build some kind of update manager tool or feature in your product. There are also some commercial and open source solutions for this, e.g.http://doc.qt.io/QtOTA/
Q: Is there an abstraction for pre built packages so we can shorten the build time?
A: Not that I am aware of. But once you have built packages, they are cached and stored locally, and could even be shared between users.
Q: Delivering OTA (over the air) updates is an important topic goes together with building a customized Yocto image. But hardly any official support from Yocto Foundation. Any comments?
Q I think this is considered outside the scope of Yocto, but there are some commercial and open source solutions, like the one mentioned earlier: http://doc.qt.io/QtOTA/
Q: Does it become more complex if we wish to build static linked Qt 5 code (commercial license)
A: I haven't done this myself with Yocto but I expect it is doable but more complicated. A quick look at the Qt 5 recipes indicates that there may be some support for this.
Q: What's the difference between normal distribution build by Yocto and boot to Qt distribution?
A: Yocto doesn't dictate any specific Linux distribution, but it provides the Poky reference distribution. Boot2qt is the Linux distribution offered by The Qt Company, most of which is open source.