Książka jest podręcznikiem i poradnikiem dla inżynierów konstruktorów oraz programistów. Przeznaczona jest dla wszystkich tych, którzy rozpoczynają, planują rozpocząć lub mają za sobą pierwsze doświadczenia z Linuksem w kontekście systemów wbudowanych.
Przydatne informacje znajdą w niej zarówno elektronicy, jak i programiści wysokopoziomowych języków. Autor w przykładach zawarł wprowadzenie do systemu Linux oraz jego typowe zastosowania w tego typu rozwiązaniach.
Przedstawiony został sposób budowy własnej minimalistycznej dystrybucji oraz sposoby wykorzystania i dostosowania do własnych potrzeb ogromnej ilości dostępnych gotowych rozwiązań. Czytelnik nabędzie biegłość w doborze poszczególnych elementów składowych systemu i konfiguracji.
Rozdziały:
1. Szybkie wprowadzenie do wbudowanego Linuksa 1.1. Architektura . 24 1.2. Linux = Linux wbudowany 25 1.3. „Widok z helikoptera” . 26 1.4. ARM 31
2. Bardzo szybki start 2.1. Zanim zaczniemy. 35 2.2. Cross-kompilator 36 2.3. Jądro – przygotowanie . 37 2.4. Podstawowe narzędzia 38 2.5. Biblioteka standardowa C 39 2.6. Pliki urządzeń, skrypty startowe i konfiguracja. 39 2.7. Ramdysk 42 2.8. Uruchomienie systemu na urządzeniu 43
3. Środowisko cross-kompilacji dla architektury ARM 3.1. Po co nam cross-kompilator?. 46 3.2. Zanim zaczniemy: Decyzje projektowe 47 3.3. Zaczynamy: Przygotowanie systemu. 58 3.4. Pliki nagłówkowe jądra 60 3.5. GMP 61 3.6. MPFR 61 3.7. MPC 61 3.8. Zlib 62 3.8.1. Binutils 62 3.9. GCC – wersja pomocnicza 65 3.10. Biblioteka standardowa C 66 3.11. libelf 74 3.12. GCC – wersja docelowa 74 3.13. Korzystanie z toolchaina 76 3.14. Co dalej? 79
4. Narzędzia automatyczne 4.1. Gotowe toolchainy 82 4.2. Crosstool-ng 85 4.3. Buildroot 92 4.4. OpenWRT 102 4.5. Scratchbox . 114 4.6. Inne narzędzia . 131 4.7. Instalacja systemu Debian 6.0 w wersji dla architektury ARM
5. Emulatory 5.1. QEMU 145 5.2. Emulacja BeagleBoard, DevKit8000 i innych platform OMAP3 5.3. Obrazy płyt i dysków. 156 5.4. Emulacja urządzeń MTD 156
6. Konfiguracja i kompilacja jądra 6.1. Wersje Linuksa 159 6.2. Konfiguracja kodu źródłowego 164
7. Jak działa jądro? 7.1. Z czym się zmagamy?. 175 7.2. Sterownik urządzenia 176 7.3. Przestrzeń użytkownika – procesy 177 7.4. Interfejsy udostępniane przez jądro. 187 7.5. Po stronie jądra 200 7.6. Obsługa USB 212 7.7. GPIO w Linuksie 217 7.8. Korzystanie z innych magistral 223 7.9. Zarządzanie energią . 224
8. Programowanie w jądrze 8.1. Zanim zaczniemy. 231 8.2. Własne moduły jądra. 248 8.3. Przykład z życia: sterownik portu szeregowego 268
9. System bazowy 9.1. Instalacja Busyboksa 278 9.2. Ramdysk 281 9.3. Urządzenie blokowe 282 9.4. Pamięć Flash 288 9.5. Rozwiązania hybrydowe 302 9.6. Sieciowy system plików 303 9.7. XIP 306 9.8. Obsługa systemów plików 307 9.9. Szyfrowane systemy plików. 309 9.10. Praca z urządzeniem – narzędzia pomocnicze 311
10. Uruchamianie systemu 10.1. Bootstrap 318 10.2. SAM-BA 323 10.3. Toshiba AC100 (NVIDIA Tegra 2) 332 10.4. Bootloader pierwszego poziomu. 338 10.5. u-boot 344 10.6. Jądro systemu 351 10.7. Optymalizacja czasu uruchamiania systemu 355
11. Diagnostyka 11.1. Sprzętowe narzędzia debugowania 366 11.2. Debugowanie aplikacji 369 11.3. Śledzenie procesów. 374 11.4. Debugowanie jądra. 376 11.5. KGDB 385 11.6. Debugowanie przy użyciu QEMU 388
12. Przykładowe projekty 12.1. Skąd się bierze dystrybucja Linuksa? 393 12.2. Konfiguracja wstępna 394 12.3. Biblioteka ncurses . 396 12.4. PowerTOP 398 12.5. Dźwięk w systemie Linux 399 12.6. Gstreamer 407 12.7. Mplayer 413 12.8. Synteza mowy – rozwiązania opensource. 416 12.9. zlib 419 12.10. Kodowanie i dekodowanie dźwięku 420 12.11. Szyfrowanie 432 12.12. Serwer SSH 446 12.13. DirectFB 447 12.14. QT 452 12.15. QTOPIA 460 12.16. Maszyna wirtualna Javy (MIDP + CDC, CLDC) 466 12.17. Obsługa systemów plików i urządzeń MTD 475 12.18. Drukowanie 479 12.19. Zegar czasu rzeczywistego 486 12.20. strace 488 12.21. Serwer HTTP 489 12.22. Sieci bezprzewodowe . 491 12.23. Zdalne sterowanie urządzeniem 505 12.24. Przygotowanie systemu do uruchomienia 517
A. Przygotowanie środowiska pracy 525 B. Polecenia powłoki 541 C. Praca z kodem źródłowym, system kontroli wersji GIT
|