Autor: Marcin Bis
ISBN: 978-83-60233-74-0
Ilość stron: 568
Data wydania: 07/2011
Oprawa: Twarda
Format: B5
Wydawnictwo: BTC
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