1. Introduction
1.1. An overview of operating systems
1.2. Overview of embedded systems
1.3. Brief history of linux and GNU
1.4. GNU/Linux as an embedded operating system
1.5. Virtualisation
1.6. Conventions used in this book
1.7. Book outline
References
2. Overview of GNU/Linux
2.1. The bootloader
2.2. The kernel
2.3. The init process
2.4. The root filesystem
2.5. Process management
2.5.1. Signals
2.5.2. Job control
2.6. Process input/output
2.7. The process environment
2.7.1. Shell parameters
2.7.2. Quoting
2.7.3. Positional parameters
2.7.4. Special parameters
2.8. Summary
References
3. The filesystem in detail
3.1. GNU/Linux file space
3.1.1. Permissions
3.2. The filesystem
3.2.1. Pseudo filesystems
3.3. Partitions
3.3.1. Partitions and boot sectors
3.3.2. Extended partitions
3.4. Summary
Reference
4. Building an embedded system (first pass)
4.1. Creating the root filesystem
4.2. Building a linux kernel
4.3. Build the root filesystem
4.4. Running UML
4.5. Networking
4.6. Summary
Reference
5. Building an embedded system (second pass)
5.1. Preliminaries
5.2. Glibc
5.3. Optimisation
5.4. Ncurses
5.5. Busybox
5.6. Bash
5.7. Sysvinit
5.8. Devices (/dev)
5.9. Administrative files and directories
5.10. Start-up scripts
5.11. Test with UML
5.12. Running the system natively
5.12.1. Compiling the kernel
5.12.2. The filesystem
5.12.3. The bootloader
5.12.4. Booting the system
5.13. Summary
References
6. Compiler toolchains
6.1. GCC
6.1.1. The preprocessor
6.1.2. Optimisation
6.1.3. The assembler
6.1.4. The linker
6.2. Build an ARM cross toolchain
6.3. Binutils
6.3.1. GCC (Bootstrap compiler)
6.3.2. Newlib
6.3.3. GCC
6.4. Testing the toolchain
6.5. Summary
7. Embedded ARM devices
7.1. Raspberry Pi
7.1.1. Installing an operating system
7.1.2. Using the Raspberry Pi serial port
7.1.3. Remote serial port
7.2. BeagleBone
7.2.1. Setting up the BeagleBone
7.2.2. Physical computer programming on the BeagleBone
7.3. Summary
References
8. Openwrt
8.1. Open-mesh
8.1.1. Building OpenWRT
8.2. Dragino
8.2.1. Booting up the Dragino for the first time
8.2.2. Running Arduino Yùn firmware
8.3. Programming the M32 unit
8.4. Summary
References
Appendix A: Start-up scripts
Appendix B: Inittab
Index