On-Demand Webinar - An Introduction to the Yocto Embedded Framework

 

 
Q&A from Live Webinar
 

Q - Once you've defined the recipes for the target build, does the SDK come "for free" or must it be configured separately?
A - You need to build the SDK explicitly, typically by adding the option "-c populate_sdk" to the bitbake command line.

Q - What is the best approach to debugging recipes?
A - Bitbake has options (-v and -D) to enable more verbose logging of errors. This, as well as logging at the log files produced, will usually indicate the source of problems.

Q - Does Yocto help with management of a mix of binary images and source?
A - I'm not sure exactly what you are asking, but Yocto does help by allowing you to know what source files were used to build the binaries, and keeping local copies of the source files.

Q - Does Yocto address security concerns of the components used for the builds? How do I know there aren't any backdoors being introduced?
A Yocto doesn't automatically check code for backdoors, etc. but it does ensure that source code came from a known location. You could add QA tests to the Yocto recipes to check for things like file locations, permissions, and ownership, or run some other external tool to check for security issues. Yocto also allows you to apply patches to code, if you know what patches are needed.

Q - Is VNC support an option for a Yocto build?
A You could include a VNC server in your embedded build if desired.

Q - Why would I use Yocto on Raspberry Pi instead of Raspbian?
A - If you are using a Raspberry Pi for an embedded application rather than as a desktop, you might want a smaller Linux distribution that would make it more secure, boot faster, etc. Yocto would allow you to do this. It also makes a good low-cost platform for learning Yocto.

Q - Are there any BSPs for Raspberry Pi Zero available? Can the standard Raspberry PI BSP be used for it?
A - I haven't used the Raspberry Pi Zero, but I've heard reports that the Yocto recipes work with it. See, for example: http://www.jumpnowtek.com/rpi/Raspberry-Pi-Systems-with-Yocto.html

Q - How does the Yocto Embedded Framework help in the further development of the Linux platform?
A - Because Yocto is an open source community effort, it encourages people to contribute back changes, which help improve embedded Linux in general.

Q - What's the restrictions on using boot2qt if it's open source?
A - You will have to discuss this with The Qt Company and your own legal counsel.

Q - If you need to edit the Yocto source, is that in C? Is there documentation on that?
A - Most of the Yocto software is shell scripts and Python scripts. There is documentation on the yoctoproject.org web site.

Q - Could you make a simple example of deploying a file?
A - I will see if we can cover this in a future ICS blog post.

Q - If I am using Yocto on commercial product, what licensing should I be abiding to when it is GPL3?
A - Yocto itself is licensed under different licenses - a mix of MIT and GPLv2. The components in your Yocto-generated build will likely fall under several different licenses. You will need to comply with all of these licenses, but I can't provide legal advice on the details.

Q - Which is better - buildroot or Yocto?
A - In my opinion, Buildroot can be simpler for small projects and have a shorter learning curve, but Yocto is more powerful and flexible. Either one can be a good choice depending on the requirements of your specific project.

Q - What are the limitations of using Toaster?
A - Some of them include needing to run on a Linux system, and not everything that you might want to configure may be available from the web interface. It is most useful for allowing people who aren't Yocto experts to perform builds.

Q - Difference between SDK and toolchain?
A - A toolchain often means just the cross-compiler, cross-linker, and cross-debuger, while an SDK also includes the system root, libraries, headers files, etc. but essentially they are the same. Yocto also uses the term ADT (Application Development Toolkit).

Q - How did you copy the hello exe to qemuarm?
A - The QEMU emulator supports networking so I copied the files using ssh (scp). Another option is to configure QEMU with a shared folder that is shared between the host and emulator. That requires some configuration that is covered in the QEMU documentation.

Q - Will there be an advanced webinar on how to write to write custom recipes and kernel files?
A - We'll see if we can do this in the future. We are also planning to expand the coverage of Yocto in our 5 day "Programming with Qt for Embedded Devices" course.

Q - Jeff, how about making basic tutorial about Boot2qt (to Rpi)?
A - That is a good suggestion and we'll consider this for a future ICS blog post.

Q - How do you control whether X or Wayland/Weston are included in a Yocto image?
A - There is some documentation on how to do this here: https://wiki.yoctoproject.org/wiki/Wayland

Q - In your opinion, can we use Yocto framework on Integrity and VxWorks in the future?
A - I'm not aware of any plans to expand Yocto to support platforms other than embedded Linux.

Q - How to create your own bsp layer? Any documentation to refer to?
A - See the Board Support Packages (BSP) - Developer's Guide https://www.yoctoproject.org/docs/1.8/bsp-guide/bsp-guide.html or chapter 10 of the Streif book.

Q - What's required to update an image from, say, Qt 5.5.1 to Qt 5.7.1? What's the general process look like? Any gotchas to look out for?
A - The Qt Yocto recipes generally get updated regularly for new Qt releases. They also supported building it from git. If you need to build a newer version, you may need to correct some errors which should be obvious from the bitbake log files. If you use a packaging format you can update the version on the embedded system using a package tool, like opkg or rpm.

Q - What about using custom touch displays, in this case drivers for this device must be presented by hardware factory for adding them to compile? How it was in popular cases? May be you can tell popular brands?
A - Yocto can build them, but you will need drivers for any display hardware you want to use. Typically the hardware vendors will supply these or indicate if they are supported by the standard Linux kernel. There are too many different vendors to list them.

Q - Is there a real time operating system (RTOS) variant of Yocto?
A - I'm not aware of any plans to expand Yocto to support platforms other than embedded Linux.

Q - Is it possible to use Yocto in developing another framework as well?
A - I'm not aware of any plans to expand Yocto to support platforms other than embedded Linux, if that is what you are asking.

Q - What type of applications can be created in line of the Yocto framework using Bitbake?
A - The applications built by Yocto can be anything you might develop in any programming language. You just need to specify in recipes how to build it and where to install the files.

Q - Does Yocto project aims to build a embedded platforms that does not only run under Linux system?
A - I'm not aware of any plans to expand Yocto to support platforms other than embedded Linux.

Q - Yocto support for cross-building other libraries (e.g. 'boost')?
A - Yes, Yocto can build any needed libraries including cross-compiling Boost. Yocto recipes exist to build Boost.

Q - Is SDK generated from Yocto and Qt different? Do I need both do deploy applications built in Qt?
A - You will want to install Qt to get Qt Creator, Designer, Assistant, etc. The precompiled versions of Qt support native and mobile development, but not embedded. You'll typically also need to use Yocto to generate a suitable SDK for the cross-compiler for your embedded platform.

Q - How do I configure QtCreator to use a Yocto-generated cross toolchain and SDK?
A - This would be a good topic for a future ICS blog post. This blog may help, it is for a Raspberry Pi but is similar: https://www.ics.com/blog/configuring-qt-creator-raspberry-pi

Q - Why people prefer GPL over WTFPL?
A - The WTFPL is much more permissive than the GPL and essentially has no restrictions. Some authors prefer the GPL to ensure that changes made are shared with others and that no one can claim a copyright or other ownership of the software. In the end, the choice of what license to use is a personal choice of the software developer.

Q - How easy can it be to setup a Yocto project in Jenkins auto build? What can be the complications or scripting needed?
A - I haven't used Yocto with Jenkins, but it should be straightforward to configure it to run bitbake to generate builds. You might instead want to consider using Toaster, as it provides a web interface to Yocto.