36
Kommentar:
|
6902
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 1: | Zeile 1: |
Describe EmbeddedLinuxFragen here. | ## page was renamed from EmbeddedLinuxSimmonsQuestions ## page was renamed from EmbeddedLinuxFragen #format rst #language de 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. 1. 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. 1. 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. 1. 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. .. Omitted: Porting U-Boot to a new board (p. 61) .. Omitted: KConfig and U-Boot (p. 62) #. 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. 1. 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 1. 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. 1. 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. 1. Welche Baukästen fuer Embedded Linux kennen Sie? #. Welche Hauptaufgaben hat ein Buildsystem? #. Wie konfiguriert und baut man Buildroot für ein bestimmtes Board, das bereits in Buildroot unterstützt wird? #. Aus welchen Bestandteilen besteht das Yoctoproject? #. Wie baut man mit Yocto ein komplettes GNU/Linux Betriebssystem für das Beagle Bone Black? #. Was bedeuten die "meta-" Einheiten in Yocto? Geben Sie ein paar Beispiele. #. Welches Programm verwendet Yocto zum Steuern der Kompilierung der Pakete? Chapter 8: Introducing Device Drivers ===================================== Pages 197 to 228. 1. Welche grundsaetzlichen Arten von Geraetetreibern gibt es? #. Was sind "major" und "minor numbers"? Wo sind diese Zahlen definiert? #. Wie kann man die Geraetedateien anlegen? #. Wozu braucht man Blocktreiber? #. Wozu dient das /proc Filesystem? #. Wozu dient das /sys Filesystem? #. Wozu verwendet man die folgenden Dateien:: /sys/devices /sys/class /sys/block #. Wie greift man aus dem *user-space* in der Regel auf Hardware zu? (bitte mit Beispielen) #. Wie reagiert man auf GPIO Interrupts im *user-space*? (hier sollte man das C Beispiel aus dem Buch verstehen) #. Wie steuert man LEDs im *user-space* an? #. Ueber welche Geraetedatei kann man die SPI Schnittstelle ansteuern? #. Ueber welche Geraetedatei kann man die I2C Schnittstelle ansteuern? #. Skizzieren Sie, wie man einen Geraetetreiber schreibt, kompiliert und laedt. #. Was ist der Unterschied zwischen einem *device tree* und *platform data*? Chapter 12: Debugging with GDB ============================== Pages 295 to 321. Chapter 14: Real-time programming ================================= Page 353 to 373. |
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 Baukästen fuer Embedded Linux kennen Sie?
- Welche Hauptaufgaben hat ein Buildsystem?
- Wie konfiguriert und baut man Buildroot für ein bestimmtes Board, das bereits in Buildroot unterstützt wird?
- Aus welchen Bestandteilen besteht das Yoctoproject?
- Wie baut man mit Yocto ein komplettes GNU/Linux Betriebssystem für das Beagle Bone Black?
- Was bedeuten die "meta-" Einheiten in Yocto? Geben Sie ein paar Beispiele.
- Welches Programm verwendet Yocto zum Steuern der Kompilierung der Pakete?
Chapter 8: Introducing Device Drivers
Pages 197 to 228.
- Welche grundsaetzlichen Arten von Geraetetreibern gibt es?
- Was sind "major" und "minor numbers"? Wo sind diese Zahlen definiert?
- Wie kann man die Geraetedateien anlegen?
- Wozu braucht man Blocktreiber?
- Wozu dient das /proc Filesystem?
- Wozu dient das /sys Filesystem?
- Wozu verwendet man die folgenden Dateien:: /sys/devices /sys/class /sys/block
- Wie greift man aus dem user-space in der Regel auf Hardware zu? (bitte mit Beispielen)
- Wie reagiert man auf GPIO Interrupts im user-space? (hier sollte man das C Beispiel aus dem Buch verstehen)
- Wie steuert man LEDs im user-space an?
- Ueber welche Geraetedatei kann man die SPI Schnittstelle ansteuern?
- Ueber welche Geraetedatei kann man die I2C Schnittstelle ansteuern?
- Skizzieren Sie, wie man einen Geraetetreiber schreibt, kompiliert und laedt.
- Was ist der Unterschied zwischen einem device tree und platform data?
Chapter 12: Debugging with GDB
Pages 295 to 321.
Chapter 14: Real-time programming
Page 353 to 373.