Questions for the textbook
Chris Simmonds, Mastering Embedded Linux Programming, Packt Publishing 2015
<Hubert.Hoegl@hs-augsburg.de>, April 2016
Chapter 1: Starting Out
Pages 1 to 12.
- Why does your TV run Linux? (6 item points)
- What hardware conditions must be given to run Linux?
- What skills do you need to start a Linux project?
- What are the main players?
- Name the "four elements"
- What do you know about Open-Source licenses?
- Beagle Bone Black. Write down the main technical data.
- What is Qemu? How can I use it?
- For which purpose do you need the uml-utilities?
Chapter 2: Learning About Toolchains
Pages 13 to 39.
- Which components are in the standard GNU toolchain?
- Compare native and cross toolchains.
- What are the capabilities of the target CPU, which are essential for the toolchain?
- What reports the command gcc -dumpmachine?
- Which C libraries do you know?
- Which alternatives do you know to get a toolchain?
- Create a toolchain using crosstool-ng!
- Follow the istructions in the "Anatomy of a toolchain" section.
- How do you cross-compile a program?
- How do you compile a program which uses the GNU autotools?
Chapter 3: All about bootloaders
Pages 41 to 68.
- Describe the three phases of booting.
- Which information is passed from bootloader to kernel?
- What is a "device tree"?
- From which technology are the device trees derived?
Device tree basics
XXX add a device tree example here which should be explained (reg, phandles, interrupts, include files, compiling a DT)
- Which bootloaders do you know? (which is the most widely used?)
- Describe the steps needed to compile and install U-Boot.
Describe how to use U-Boot? Cover the following items:
- Environment variables
- Boot image format
- Loading images from cards and network
- Start the Linux kernel
- How can you automated the boot process?
- Which are the board specific U-Boot files?
- How to build the Barebox bootloader?
Chapter 4: Porting and configuring the kernel
Pages 69 to 94.
- When was the Linux project started?
- Which three main jobs has the kernel?
- Describe the structure of user space and kernel space and how they interact.
- How does kernel version numbering work? What kernel version do you use?
- What are mainline, stable and long-term kernels?
- How is the kernel licensed? Can you run proprietary (closed) applications in user space?
Questions about the kernel sources
- How many files has the current kernel for your board?
- How does the kernel configuration work?
- How do you run menuconfig for cross-compilation?
- How do you configure the kernel with a default configuration for the BBB?
- How do you compile a zImage or uImage?
- Which information is displayed when you compile the kernel? How can you display all commands to the output?
- How do you compile the device trees?
- How do you compile and install modules?
- What does the kernel need after it has started?
- How does the initialization of user space work?
- How are the kernel log messages organized? Which messages are displayed if the log level is set to 7?
- What is the kernel command line and where is it described?
Chapter 5: Building a root filesystem
Pages 95 to 128.
- Welche Komponenten muss man mindestens im Root-Filesystem haben?
- Was bedeutet FHS?
- Wie funktionieren die file permission bits?
- In welchem Programm sind alle wesentlichen Werkzeuge fuer das Root-FS enthalten?
- Wofuer wird das staging directory verwendet?
- Mit welchen Kommandozeilenaufrufen baut man dieses Programm?
- Was sind device nodes und wie erzeugt man sie?
- Welche Bedeutung haben die Filesysteme /proc und /sysfs und wie mountet man sie?
- Wie installiert man Kernelmodule?
- Welches sind die drei Varianten, mit denen man dem Kernel das Root-FS servieren kann?
- Wie erzeugt man ein initramfs?
- Wie kann man das Root-FS ueber NFS bereitstellen?
- Es gibt drei Alternativen, mit denen man dynamisch Geraetedateien erzeugen kann. Wie heissen sie?
- Warum sind statisch generierte Geraetedateien gar nicht so schlecht?
- Wie funktioniert der Init Prozess?
- Wie konfiguriert man die user accounts?
- Mit welchem Programm kann man das neu gebaute Root-FS simulieren?
Chapter 6: Selecting a build system
Pages 129 to 157.
- Welche Baukaesten fuer Embedded Linux kennen Sie?
- ...
Chapter 8: Introducing Device Drivers
Pages 197 to 227.
Chapter 12: Debugging with GDB
Pages 295 to 321.
Chapter 14: Real-time programming
Page 353 to 373.