This project is a comprehensive guide and set of resources for learning embedded Linux development using QEMU, provided by Bootlin. The materials include lab exercises, a tarball with additional files, and presentation slides.
embedded-linux-bootlin/
├── embedded-linux-qemu-labs.pdf # Lab exercises PDF
├── embedded-linux-qemu-labs.tar.xz # Tarball with additional lab files
├── embedded-linux-qemu-slides.pdf # Presentation slides PDF
To get started with this project, follow these steps:
-
Download and extract the lab files:
tar -xf embedded-linux-qemu-labs.tar.xz -C /path/to/extract/
-
Read the lab exercises: Open
embedded-linux-qemu-labs.pdf
to understand the exercises and follow the instructions provided. -
Review the presentation slides: Open
embedded-linux-qemu-slides.pdf
to get an overview and in-depth knowledge of embedded Linux using QEMU.
To work through the exercises in this project, you need the following tools installed on your development machine:
- QEMU
- GCC (GNU Compiler Collection)
- Make
- Linux kernel source code (as specified in the labs)
- A Linux-based operating system (recommended)
You can install these tools using the following commands:
sudo apt-get update
sudo apt-get install qemu gcc make
sudo dnf install qemu gcc make
sudo pacman -S qemu gcc make
To start QEMU with a specific configuration, follow the steps in the lab exercises PDF. Generally, you will use a command like this:
qemu-system-x86_64 -kernel /path/to/kernel -initrd /path/to/initrd -append "root=/dev/ram rdinit=/sbin/init"
To compile and build the Linux kernel for QEMU, you need to configure it properly:
-
Navigate to the kernel source directory:
cd /path/to/linux-source
-
Configure the kernel:
make menuconfig
-
Build the kernel:
make -j$(nproc)
QEMU provides various options for debugging:
qemu-system-x86_64 -s -S -kernel /path/to/kernel
This command starts QEMU in a halted state and waits for a GDB connection on port 1234.
Here are some valuable resources for further reading and understanding:
- Bootlin's Training Materials: Official training materials for embedded Linux.
- QEMU Documentation: Official QEMU documentation.
- Kernel Newbies: A community for aspiring Linux kernel developers.
This project is licensed under the GPL License.