Embedded Linux im Sommer 2014

H. Hoegl, <Hubert.Hoegl@hs-augsburg.de>, 2014

URL: http://elk.informatik.hs-augsburg.de/hhweb/elinux/

Tafelbilder: https://elk.informatik.hs-augsburg.de/pub/rtlabor/elinux/Tafel/14/

Moodle: https://moodle.hs-augsburg.de/course/view.php?id=2417

1   Hausaufgaben

Die Loesungen der Hausaufgaben geben Sie bitte in Moodle ab:

https://moodle.hs-augsburg.de/course/view.php?id=2417

1.2   4. April 2014

Abgabe des 2. Aufgabenblattes verlängert auf 30. April.

1.3   25. April 2014

1.4   2. Mai 2014

  • Lesen Sie den Abschnitt ueber den UART in der Gliederung

    http://elk.informatik.hs-augsburg.de/elinux-doc/io.html#uart-rs-232

  • Fragen zur UART Schnittstelle:

    • Wie greift man in C auf den UART zu?
    • Wie greift man in Python auf den UART zu?
    • Unterstuetzt das Gnublin-API den UART?
  • Fragen zur SPI Schnittstelle:

    • Wo im Kernel steht, wie man auf die SPI Schnittstelle zugreift?
  • Beschreiben Sie die verschiedenen Schichten der Gnublin-API Software.

  • Setzen Sie die Zeit auf Ihrem Embedded Linux Rechner mit dem NTP Protokoll:

    sudo ntpdate de.pool.ntp.org

    Vergessen Sie nicht, vorher die Zeitzone zu setzen mit sudo tzselect oder sudo dpkg-reconfigure tzdata.

1.5   9. Mai 2014

  1. Zum I2C Bus empfehle ich die Kapitel 8 und 9 im Embedded Linux Praxisbus zu lesen (Zugang elinux/student):

    https://elk.informatik.hs-augsburg.de/pub/rtlabor/elinux/Buecher/Praxisbuch/

  2. Machen Sie eine Aufstellung der Erweiterungsmodule für Gnublin nach dem Typ der Schnittstelle (GPIO, UART, SPI, I2C).
  3. Ueberlegen Sie sich die Ansteuerung eines I2C EEPROM AT24C16 mit dem Gnublin API.

    Das Datenblatt des Bausteines ist hier:

    http://www.atmel.com/Images/Atmel-8719-SEEPROM-AT24C16C-Datasheet.pdf

    Der I2C Bus wird auch "Two-Wire Interface" (TWI) genannt. Neben I2C wird auch noch ein Dreidraht-Interface (3WI) und SPI in der folgenden Applikationsschrift diskutiert:

    http://www.atmel.com/Images/doc8546.pdf

1.6   16. Mai 2014

Root Filesysteme

  • Linux from scratch (LFS)
  • Buildroot
  • Debian/ARM
    • Gnublin Distribution
    • ELBE
  • Yoctoproject
    • ELDK

Fragen dazu:

http://elk.informatik.hs-augsburg.de/elinux-doc/distrib.html#aufgaben-zu-distributionen-und-root-filesystemen

1.7   23. Mai 2014

Fragen zum Linux Kernel sind am Ende des Abschnitts in der Gliederung:

http://elk.informatik.hs-augsburg.de/elinux-doc/kernel.html

1.8   6. Juni 2014

Fragen zum Bootloader:

http://elk.informatik.hs-augsburg.de/elinux-doc/booten.html

XXX to do: Fragen zu Hallinan, Kap. 7

2   Vorlesungen/Praktika

Im Praktikum bearbeiten Sie folgende Pflichtversuche neben Ihrem Projekt:

http://elk.informatik.hs-augsburg.de/elinux-doc/praktikum.html#pflichtaufgaben

2.3   11. April 2014

2.6   9. Mai 2014

2.7   16. Mai 2014

Das Root Filesystem

  • Yaghmour, Kap. 8 (Root FS Setup)
  • Hallinan, Kap. 6 (FHS, Minimal FS)
  • Hallinan ELP, Kap. 11 "Busybox"

2.8   23. Mai 2014

Der Linux Kernel

  • Git Repo: elinux-src/gnublin/kernel/
  • Greg Kroah-Hartman, Linux Kernel in a Nutshell http://www.kroah.com/lkn
  • Quade/Kunst, Kern-Technik (Serie im Linux Magazin)
  • Das Embedded Linux Praxisbus, Springer Verlag, Kap 11: Geraetetreiber und Kernelmodule
  • The Linux Kernel Primer, O'Reilly Verlag, Kap. 1 "Overview"
  • Robert Love, Linux Kernel Development, O'Reilly Verlag
  • Yaghmour BELS, Kap. 5 "Kernel Considerations"
  • Hallinan ELP, Kap. 4 "The Linux Kernel: A Different Perspective"
  • Hallinan ELP, Kap. 5 "Kernel Initialization"
  • Hallinan ELP, Kap. 14 "Kernel Debugging Techniques"
  • cdrom-elinux/Lesen/Tim_Jones/tim-jones-anatomy-kernel.pdf
  • Boguslaw Sylla, Patrick Schorn, Linux Kernel Module. Arbeit aus dem WS2008/2009, 32 Seiten, cdrom-elinux/Lesen/linuxkernel.pdf
  • Roberto Arcomano, Kernel Analysis Howto http://www.tldp.org/HOWTO/KernelAnalysis-HOWTO.html

Treiber/Module

2.9   6. Juni 2014

2.10   13. Juni 2014

2.11   27. Juni 2014

  • Letzter Termin

3   Tipps

Beachten: Immer auch das Gnublin Wiki durchsuchen.

3.1   udev Regel fuer Terminalprogramm

In Datei /etc/udev/rules.d/81-gnublin-serial.rules:

SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="gnublin-console", MODE="0666"

sudo /etc/init.d/udev restart
  oder
sudo service udev restart

Nach erneutem Anstecken des USB Konsolenkabel sieht man das Geraet
``/dev/gnublin-console``.

3.2   kermit

  • Man page: man kermit

  • Installation mit

    apt-get install ckermit
    apt-get install lrzsz     # auf Host und Gnublin
  • Konfigurationsdatei ~/.kermrc:

set line /dev/gnublin-console
# set line /dev/ttyUSB0

set speed 115200
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set window 5

set parity none
set prefixing all
set reliable off
set clearchannel off
set streaming off
set protocol xmodem-crc download {} {sz %s} {} {rz %s} {}
set terminal type xterm
  • Prompt

    (/home/hhoegl/) C-Kermit>
                    C-Kermit> c                 # Connect
                    ... Kermit im Terminal Modus ...
                    C-\ c                       # Vom Terminal- in Kommando-Modus
                    send [/binary] <filename>   # Datei senden
                    C-Kermit> q                 # Quit

Wenn man Dateien von Gnublin zum PC uebertragen will, dann muss man auf Gnublin "sz <datei>" eingeben. Kermit auf dem PC erkennt das und speichert die Datei ab! SZ hat erstaunlich viele Optionen, siehe "sz --help".

3.3   picocom

Installation

apt-get install picocom
apt-get install lrzsz     # auf Host und Gnublin

Kommandos

sudo picocom -b 115200 /dev/ttyUSB0
sudo picocom -b 115200 --send-cmd "sz -vv" --receive-cmd "rz -vv" /dev/ttyUSB0
Beenden mit C-a C-x
Dateien senden mit C-a C-s
Alles weitere: man picocom

Eventuell problematisch: GNU Readline C-a (Cursor an linken Rand) ist identisch mit Picocom Meta-Zeichen.

3.5   Kompilieren

3.6   Kommandozeilen-Programme

3.7   User hinzufügen und löschen

Mit adduser paul wird ein neuer User angelegt. Danach existiert ein neues Home-Verzeichnis /home/paul. Mit deluser paul kann man den User wieder löschen.

EmbeddedLinux2014 (zuletzt geƤndert am 2016-06-06 11:35:25 durch p5B0B9068)