PowerPC Linux System Software

Dieses Dokument beschreibt Compilierung und/oder Konfiguration zusätzliche Linux Software die über ein minimales Busybox basiertes Linux hinausgehen (siehe EmbeddedRootFilesystem).

syslog

Logfiles in eine lokale Ramdisk zu schreiben hat wenig Sinn, da sie nach einem reboot weg sind und der Platz arg beschränkt ist. Daher wird ein syslog gestartet, der die Nachrichten remote abliefert. In Busybox ist ein solcher bereits beinhaltet.Zusätzlich benötigt man noch einen klogd. Dieser liest die Kernel Nachrichten und übergibt sie an syslog.

Starten aus der rc.sysinit.sh sobald Netzwerk zur Verfügung steht.

ROOTFS/etc/rc.sysinit.sh
...
/sbin/udhcpc -Orootpath -Otftp -Otimesrv
# this will execute script /usr/share/udchpc/default.script

# now that we have network, start logging
/sbin/syslogd -R logsv1.acc.gsi.de
/sbin/klogd
...

NTP

Mit busybox 1.16 gibt es einen integrierteren ntp client. Es muss kein seperater ntp compiliert werden.

SSH

Kleiner SSH Client und Server ist http://matt.ucc.asn.au/dropbear/dropbear.html Er kann wie die Busybox in ein multibinary compiliert werden und stellt dann Server und Client zur Verfügung.

Compiliert werden kann dropbear gegen glibc, ulibc oder statisch. Da wir bereits Bibliotheken der glibc in unserem Rootfilesystem haben wird dynamisch gegen glibc compiliert. Es kommen dann noch zwei Bibliotheken (libutil und libcrypt) als Abhängigkeit hinzu. Gesamtgröße Server mit SCP Unterstützung und den zwei neuen Bibliotheken um die 200KB.

user@host$ ./configure --host=ppc-linux --disable-zlib  --disable-lastlog --disable-wtmp
user@host$ # edit options.h
user@host$ make STATIC=0 MULTI=1 PROGRAMS=""dropbear dbclient dropbearkey scp ssh""
user@host$ ${CROSS_COMPILE}strip dropbearmulti
user@host$ cp dropbearmulti ROOTFS/bin/
user@host$ cd ROOTFS/bin
user@host$ ln -s dropbearmulti dropbear
user@host$ ln -s dropbearmulti dbclient
user@host$ ln -s dropbearmulti dropbearkey
user@host$ ln -s dropbearmulti ssh
user@host$ ln -s dropbearmulti scp

Die Abhängigen Bibliotheken nach ROOTFS/lib kopieren.

SSH Key generieren

NOTIZ: ein SSH Server benötigt einen Host-Key. Dieser kann entweder automatisch nach dem Booten generiert werden oder im Rootfilesystem enthalten sein. Bei dynamischer Generierung ändert sich der Host bei jedem Reboot (-> jedesmal warnings/fehler beim login, schlecht). Ist er im Rootfilesystem müssen wir bei Verwendung einer Ramdisk entweder allen Hosts den gleichen Key, oder jedem Host ein eigenes Bootimage geben. Eine Möglichkeit wäre es das Roofilesystem generisch zuhalten und nach dem booten (in rc.sysconfig.sh) systemspezifische Informationen per http oder nfs nachzuladen (dann mit einem fallback script, dass zur Not keys generiert)

dropbearkey auf dem Hostsystem compilieren.
user@host$ ./configure --disable-zlib
user@host$ make STATIC=1 MULTI=0 PROGRAMS=dropbearkey
user@host$ ./dropbearky -t rsa -f key.rsa 
user@host$ ./dropbearky -t dss -f key.dss

This topic: Frontend > WebHome > EmbeddedLinux > PPCSystemSoftware
Topic revision: 18 Aug 2011, UnknownUser
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback