Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases now! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Embedded Linux Development Using Yocto Project

You're reading from   Embedded Linux Development Using Yocto Project Leverage the power of the Yocto Project to build efficient Linux-based products

Arrow left icon
Product type Paperback
Published in Apr 2023
Publisher Packt
ISBN-13 9781804615065
Length 196 pages
Edition 3rd Edition
Tools
Arrow right icon
Authors (2):
Arrow left icon
Otavio Salvador Otavio Salvador
Author Profile Icon Otavio Salvador
Otavio Salvador
Daiane Angolini Daiane Angolini
Author Profile Icon Daiane Angolini
Daiane Angolini
Arrow right icon
View More author details
Toc

Table of Contents (20) Chapters Close

Preface 1. Chapter 1: Meeting the Yocto Project 2. Chapter 2: Baking Our First Poky-Based System FREE CHAPTER 3. Chapter 3: Using Toaster to Bake an Image 4. Chapter 4: Meeting the BitBake Tool 5. Chapter 5: Grasping the BitBake Tool 6. Chapter 6: Detailing the Temporary Build Directory 7. Chapter 7: Assimilating Packaging Support 8. Chapter 8: Diving into BitBake Metadata 9. Chapter 9: Developing with the Yocto Project 10. Chapter 10: Debugging with the Yocto Project 11. Chapter 11: Exploring External Layers 12. Chapter 12: Creating Custom Layers 13. Chapter 13: Customizing Existing Recipes 14. Chapter 14: Achieving GPL Compliance 15. Chapter 15: Booting Our Custom Embedded Linux 16. Chapter 16: Speeding Up Product Development through Emulation – QEMU 17. Chapter 17: Best Practices 18. Index 19. Other Books You May Enjoy

Running images in QEMU

We can use hardware emulation to speed up the development process, as it enables a test run without involving any actual hardware. Fortunately, most projects have only a tiny portion that is hardware-dependent.

QEMU is a free, open source software package that performs hardware virtualization. QEMU-based machines allow testing and development without real hardware. ARMv5, ARMv7, ARMv8, MIPS, MIPS64, PowerPC, PowerPC 64, RISC-V 32, RISC-V 64, x86, and x86-64 emulations are currently supported. We will go into more detail about QEMU usage in sw, Speeding Up Product Development through Emulation – QEMU.

OpenEmbedded Core provides the runqemu script tool, which is a wrapper to make use of QEMU easier. The way to run the script tool is as follows:

$ runqemu <machine> <zimage> <filesystem>

Here, <machine> is the machine/architecture to be used as qemux86-64, or any other supported machine. Also, <zimage> is the path to a kernel (for example, bzImage-qemux86-64.bin). Finally, <filesystem> is the path to an ext4 image (for example, filesystem-qemux86-64.ext4) or an NFS directory. All parameters in the preceding call to runqemu <zimage> and <filesystem> are optional. Just running runqemu is sufficient to launch the image in the shell where the build environment is set, as it will automatically pick up the default settings from building the environment.

So, for example, if we run runqemu qemux86-64 core-image-full-cmdline, we can see something similar to that shown in the following screenshot:

Figure 2.5 – The QEMU screen during the Linux kernel boot

Figure 2.5 – The QEMU screen during the Linux kernel boot

After finishing booting Linux, you will see a login prompt, as shown in Figure 2.6:

Figure 2.6 – The QEMU screen during user login

Figure 2.6 – The QEMU screen during user login

We can log in to the root account using an empty password. The system behaves as a regular machine, even when executed inside the QEMU. The process to deploy an image in real hardware varies, depending on the type of storage used, the bootloader, and so on. However, the process of generating the image is the same. We explore how to build and run an image in real hardware in Chapter 15, Booting Our Custom Embedded Linux.

You have been reading a chapter from
Embedded Linux Development Using Yocto Project - Third Edition
Published in: Apr 2023
Publisher: Packt
ISBN-13: 9781804615065
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime