Editorial
Unfreie Software für alle
freiesMagazin und unfreie Software werden unsere Leser nach wie vor siezen. Bei Inhalt
Hin und wieder scheinen sich einige Leser zu der direkten Kommunikation per E-Mail mit Auto-
ren oder Lesern werden wir aber die Ansprache Linux allgemein
wundern, warum freiesMagazin über unfreie
wählen, die der Absender bevorzugt. Shebang – All der Kram S. 3
Software berichtet. Dabei wird vergessen, dass
Der Oktober im Kernelrückblick S. 7
sich freiesMagazin sowohl mit Linux als auch mit
Aktueller Stand des Wettbewerbs
Open Source beschäftigt, wobei der erste Begriff
Ende des letzten Monats startete der zwei- Anleitungen
eben auch unfreie Programme (und hier vor al-
te freiesMagazin-Wettbewerb und das bisheri- SSH-Port absichern S. 8
lem Spiele) mit einschließt, da auch diese zur
ge Interesse hat uns einfach überwältigt. Bisher Nautilus-Scripts S. 12
Welt von Linux gehören. Das heißt, auch in Zu-
wussten wir nicht einmal, dass unser Content- Testen mit Perl S. 14
kunft werden wir über unfreie Software berich-
Management-System Drupal für Kommentare ei-
ten, wenn diese unter Linux sinnvoll nutzbar ist.
ne zweite Seite anlegt, wenn es zu viele wer- Software
Aber wie sehen Sie das denn, werte Leser? Sind
den. Dementsprechend haben uns die zahlrei- ASCII-Art mal anders mit ditaa S. 18
Sie auch an unfreier Software interessiert, wenn
chen Fragen, Kommentare und Anmerkungen
diese unter Linux gut funktioniert und es vor
sehr gefreut. Jetzt fehlt eigentlich nur noch, dass Hardware
allem kein passendes freies Gegenstück gibt?
alle, die sich für den Wettbewerb interessiert ha- Hardwarekompatibilität unter Linux S. 21
Oder sind Sie eher der Meinung, dass in einem
ben, auch daran teilnehmen. Es gibt bereits fünf
freien Magazin auch nur „echte“ Open-Source-
KI-Einsendungen, alle für die Spielstufe „schwer“. Community
Software vorgestellt werden darf? Wir freuen uns
Die anderen Kategorien, vor allem die Katego- Ubuntu-Treffen auf der Ubucon 2009 S. 28
auf Ihre Kommentare.
rie „3-D-GUI“, sind noch etwas unterrepräsentiert
und wir würden uns freuen, wenn es auch dort Magazin
Neues aus „Sie vs. Du“
Teilnehmer gibt. Schicken Sie Ihren Beitrag ein- Editorial S. 2
Letzen Monat stellten wir in freiesMagazin die fach an , wir freu- Weitere Informationen zum Programmier- S. 34
Frage, ob unsere Art der Ansprache noch en uns darauf. wettbewerb
zeitgemäß und passend in der Open-Source-
Abschließend wünschen wir Ihnen wie immer viel Leserbriefe S. 36
Landschaft ist. Es ging um die Frage, ob wir in
Spaß mit der neuen Ausgabe. Veranstaltungen S. 40
freiesMagazin die Leser lieber Duzen oder Sie-
Vorschau S. 40
zen sollen. Wir haben uns über Ihre zahlreichen Ihre freiesMagazin-Redaktion Konventionen S. 40
Kommentare sehr gefreut und haben uns dar-
Impressum S. 41
aufhin für folgende Regelung entschieden: Inner-
halb des Magazins bleibt alles beim Alten, wir Das Editorial kommentieren
ieser Artikel ist nicht nur eine Einfüh- (die Namen der Zeichen „#“ und „!“ im Compu- das selten vor. Und wenn, dann kann der Pro-
tes der Datei ein; dort befinden sich sogenannte 2.6.27.8, wurde die Ausführung von Shebang- dass env auf sehr vielen Systemen am gleichen
„Magic Numbers“ [3] die den Dateiinhalt charak- Skripten, die von Shebang-Skripten aufgeru- Ort (/usr/bin/env) liegt, überlässt man es ihm,
terisieren. Findet er dort „\177ELF“, dann ist es fen wurden, verweigert. Seit Linux-2.6.27.9 geht den eigentlichen Interpreter aufzurufen. Zum Bei-
ein für GNU/Linux kompiliertes Programm, das auch ein mehrstufiger Aufruf. spiel wie in folgendem Skript:
er direkt ausführen kann. #! zeigt dagegen ein
Shebang-Skript an. Dateien, die er nicht erkennt, Es lohnt sich diesbezüglich unbedingt einmal #!/ usr/bin/env python
lehnt er mit einem Fehler ab. in den Kernelquellcode zu spicken, so kompli- print "foo"
ziert ist das nämlich nicht. Die relevante Datei
Bei Shebang-Skripten wird nun der eigentliche im Linux-Quellcode ist fs/binfmt_script.c [4]. Leider hilft auch env nicht immer. AWK-Skripte
Programmaufruf durch den Inhalt der Shebang- Der Commit, der mehrstufige Aufrufe in Linux zum Beispiel kann man damit nicht aufrufen. Ein
Zeile ersetzt, wobei noch der Dateiname ange- eingeführt hat, lohnt auch einen Blick [5]. Bei Shebang-Skript für AWK sieht so aus:
hängt wird. Für diesen neuen Befehl entscheidet NetBSD findet man die Shebang- Behandlung in
der Kernel erneut, ob und wie er ihn verarbeitet.
#!/ usr/bin/awk -f
sys/kern/exec_script.c [6].
BEGIN { print "foo" }
Für das anfangs gezeigte Beispielskript läuft es Stolpersteine
folgendermaßen ab: Nach der Auswertung des Shebang führt der Ker-
Shebang ist nicht sehr kompliziert, doch es gibt nel /usr/bin/awk -f ./foo.awk aus. Das Ar-
1. Nach dem Aufruf von ./beispielskript.sh Dinge zu beachten, jedenfalls wenn das Skript gument -f sorgt dafür, dass AWK das nachfol-
fordert die Shell die Ausführung dieses Be- portabel sein soll. gende Argument als Skriptdatei behandelt und
fehls beim Kernel an. Den Interpreter-Pfad zum Beispiel. Dieser sollte nicht als Liste von AWK-Befehlen.
2. Der Kernel schaut sich die ersten Bytes der absolut sein. Manche Kernel können zwar mit re- Leider werden von den meisten Kerneln alle in
Datei an und findet dort #!. Somit generiert lativen Pfaden umgehen, aber nicht alle. der Shebang- Zeile übergebenen Parameter zu
er eine neue Ausführungsanforderung an sich einem zusammengefasst. (Die einzige bedeuten-
selbst. Er nimmt das erste Wort (nach #!) als Absolute Pfade sind kein Problem solange sie
/bin/sh lauten, denn eine Bourne-kompatible de Ausnahme ist FreeBSD.) Folgendes ist also
Befehl und den Rest der Zeile als erstes Argu- nicht möglich:
ment. Den Dateinamen und die Kommando- Shell ist auf allen Unix-Systemen an diesem Ort
zeilenargumente hängt er hinten an. zu finden. Schreibt man aber Python- oder Perl- #!/ usr/bin/awk -F: -f
Skripte, so hat man das Problem, dass diese In- { print $1 }
Der neue Aufruf ist somit terpreter nicht auf allen Systemen am gleichen
Ort installiert sind. Oft wird /usr/bin/python Denn der Kernel würde /usr/bin/awk "-F:
/bin/sh ./ beispielskript .sh zwar zutreffen, aber manchmal ist es halt auch -f" firstfield.awk starten. Doch mit der
/usr/local/bin/python oder etwas ganz an- einen Option -F: -f kann AWK halt nichts an-
Interessant wird die Situation aber, wenn ein deres. fangen.
Shebang-Skript ein weiteres aufruft – oder gar
sich selbst (rekursive Ausführung). In den meis- Um dieses Problem zu lösen, kann man sich des Die Bedeutung der Option -F: ist hierbei unwich-
ten Unix-Kerneln, so auch bei Linux bis Version Programms env bedienen. Unter der Annahme, tig, entscheidend ist, dass ein weiterer Komman-
asis aller Distributionen ist der Linux- Sprung zur dritten Entwicklerversion vermieden fallszahlengenerator künftig den Entropy Pool fül-
n Zeiten, in denen Heimanwender eine dau- Wer nun glaubt, dass sein Server außerhalb erraten. Einer dieser Nutzer ist Root. Das Skript
und su die Möglichkeit, im laufenden Betrieb den gibt an, nach wie vielen Sekunden die Verbin- wie man seinen Server mit dieser Methode absi-
Anwender zu wechseln. Bedenkt man ebenfalls, dung vom Server getrennt wird, falls sich der Be- chern kann, liefert der Artikel „Den Server absi-
dass die Hälfte der Listenangriffe gegen Root nutzer nicht korrekt einloggen konnte. chern“ [3] auf Pro-Linux von Mario Schröder.
durchgeführt werden, grenzt es fast schon an
Fahrlässigkeit, Root auch einen Zugriff auf den Durch die Limitierung des Zugang auf den Ser- Portsalat
Server mittels ssh zu erlauben. ver auf einen Benutzer und die Beschränkung auf Eine ebenso simple wie effektive Möglichkeit,
maximal drei Fehlversuche konnte die Sicherheit Server gegen automatisierte Angriffe zu schüt-
Um Root den Zugriff auf den Server zu ver- des Systems massiv gesteigert werden. zen, stellt die Umstellung der Ports dar. Das
wehren, bietet der Daemon mehrere Mög- Verfahren hilft zwar nur bedingt gegen dedizier-
lichkeiten. Die effektivste ist dabei, den Ein Schlüssel zum Glück te Angriffe auf einen Server, denn ein Angrei-
Parameter PermitRootLogin in der Datei fer wird mit hoher Wahrscheinlichkeit auch einen
/etc/ssh/sshd_config auf no zu setzen. Da- Eine weitere Möglichkeit, das System ge-
Portscan durchführen, für simple Skripte von
mit wird grundsätzlich dem Anwender Root ein gen Angriffe von außen zu schützen, stellt
Botfarmen-Betreibern ist es allerdings perfekt.
Zugriff mittels ssh verwehrt. Will man sich al- die Umstellung des Authentifizierungsverfahrens
lerdings von einem lokalen Netzwerk weiter als dar. SSH bietet grundsätzlich die Möglich- Dazu ändert man den Standardport von
Root auf den Server einloggen, bedarf es einer keit, sich mittels verschiedener Verfahren zu 22 auf einen anderen. Dazu muss man le-
anderen Strategie. authentifizieren. Das gängigste dabei ist die diglich den Parameter Port in der Datei
Passwort-Authentifizierung, die mit dem Parame- /etc/ssh/sshd_config verändern. Für diesen
Eine feinere Einteilung der Rechte ermöglicht die ter PasswordAuthentication gesteuert wird. Artikel wurde der Parameter auf den Port 12345
Option AllowUsers mit dem folgenden Eintrag: Schaltet man diese und weitere auf dem Pass- gesetzt. Versucht man sich nun regulär auf sei-
wort beruhenden Optionen aus, so kann sich nem Server einzulogen, wird es nicht mehr ge-
LoginGraceTime 600
MaxAuthTries 3 kein Anwender mehr auf den Server mit dem re- lingen und man erhält die Meldung, dass die
AllowUsers root@ *. mydomain user gulären Passwort einloggen. Doch was tun, um Verbindung abgewiesen wurde. Erst ein Login
trotzdem Zugriff auf den Server zu haben? Die auf dem Port 12345 bringt einen zum Ziel:
In Beispielfall würde das allen Anwendern grund- Antwort darauf liefert das schlüsselbasierte Ver-
sätzlich den Zugang auf den Server mittels ssh fahren. $ ssh myserver -p 12345 -l user
verwehren. Einzig die Anwender root und user
sind noch in der Lage, den Server zu betreten. In diesem Fall wird auf dem Server ein Schlüs- Sperren statt blocken
Während sich user allerdings von jedem Sys- selpaar generiert und dem ssh-Daemon bekannt Die obigen Möglichkeiten stellen nur einen Teil
tem aus einloggen kann, ist root auf die Domain gegeben. Während der Serverschlüssel, wie der der Funktionen dar, die ssh bietet, um Angrei-
mydomain beschränkt. Zugleich wird die Zahl der Name bereits suggeriert, auf dem Server ver- fer abzuwehren. Kombiniert mit den Systemtools
Versuche auf 3 und eine Schonzeit von zehn Mi- bleibt, erhält jeder berechtigte Anwender einen wie beispielsweise der pam_abl [4], die in der La-
nuten gesetzt. Gelingt es einem Anwender nicht, öffentlichen Schlüssel, der einen Zugriff auf den ge ist, Blacklists von falschen Logins zu erstellen,
sich mit höchstens drei Versuchen einzuloggen, Server erlaubt. Ein Angriff mittels Wörterbuch- ergeben sich mächtige Kaskaden von Program-
wird die Verbindung abgebaut. LoginGraceTime listen ist damit ausgeschlossen. Eine Anleitung, men, die jeden Angreifer in Schach halten.
Eine Steigerung stellt allerdings nicht nur das festgelegte Log-Dateien nach missglückten Lo- Ist der Abschnitt ssh-iptables angepasst wor-
Blocken, sondern auch das Aussperren von An- ginversuchen und erstellt beim Erreichen einer den, kann der fail2ban-Daemon auch schon ge-
greifern dar. Es ist grundsätzlich davon auszuge- zuvor festgelegten Anzahl von Fehlern eine Re- startet werden. Je nach Distribution mit dem
hen, dass jemand, der beispielsweise zehnmal gel in der Firewall. Dabei kommt die Anwendung Kommando /etc/init.d/fail2ban start.
ein falsches Passwort über SSH eingegeben hat, nicht nur mit SSH, sondern auch mit einer Viel- Mit dem Befehl fail2ban-client status ssh-
nichts Gutes im Schilde führt. Was liegt also nä- zahl von weiteren Applikationen klar. Die Filter- iptables kann man die Funktionalität testen:
her, ihm nicht nur ein Login zu verwehren, son- regelfunktionalität ermöglicht darüber hinaus die
# fail2ban - client status ssh - iptables
dern ihn gleich komplett für eine bestimmte Zeit Erstellung von neuen, an die Erfordernisse des Status for the jail: ssh - iptables
zu sperren? Anwenders angepassten Regeln. Für SSH bietet |- filter
fail2ban bereits schon | |- File list: /var/log/ secure
[ssh - iptables ] | |- Currently failed : 0
enabled = true
vorkonfigurierte Regeln
an, die lediglich eine klei- | ‘- Total failed : 74 2
filter = sshd ‘- action
action = iptables [name=SSH , port=ssh , protocol =tcp] nere Anpassung erfor- |- Currently banned : 3
sendmail - whois [name=SSH , dest= user@myhostname , y dern. | ‘- IP list: 94.75. x.x 94.75. x.x y
sender = fail2ban@myhostname ] 217.160. x.x
logpath = /var/log/ secure Die eigentliche Konfi- ‘- Total banned : 95
maxretry = 3
guration der Filterregel
Listing 1: Auszug aus der Datei jail.conf wird in der Datei /etc Alternativ kann man sich sich die geblockten
/fail2ban/jail.conf Adressen auch direkt in den Firewall-Regeln mit
Auch hier bietet Linux eine Reihe von Werkzeu-
umgesetzt. Der für das Absichern von SSH inter- dem Befehl
gen, die einem die Arbeit erleichtern werden. In
essante Abschnitt dieser Datei findet sich unter
diesem Artikel werden zwei der bekanntesten # iptables -L fail2ban -SSH
dem Eintrag ssh-iptables (siehe Listing1).
Vertreter vorgestellt, die das Aussperren von An-
wendern direkt in einer Firewall übernehmen. Mit enabled = true aktiviert man die eigentli- anschauen.
Hinweis: Man sollte grundsätzlich alle Änderun- che Überprüfung. Die unter action eingetrage- Wie man dann erkennen kann, führen fehlerhaf-
gen und Tests auf einem lokalen Server durch- ne Aktion legt fest, um welchen Port und um te Logins direkt zu einer Sperrung in der Firewall.
führen. Nichts ist schlimmer, als sich von ei- welches Protokoll es sich handelt. Ferner wird Je nach eingetragener Zeit bleibt die Sperrung
nem Root-Server durch eine falsche Konfigurati- hier die Adresse eingetragen, an die eventuel- so lange bestehen, bis sie entweder vom Admi-
on auszusperren! le Sperrungen per E-Mail versendet werden sol- nistrator aufgehoben wurde oder eine bestimmte
len. Ein wichtiger Eintrag ist der logpath, der Karenzzeit verstrichen ist.
fail2ban aussagt, welche Datei überprüft werden soll. Je
fail2ban [5] kann IP-Adressen aufgrund einer be- nach Distribution kann sich der Eintrag ändern. fail2ban ist nicht das einzige Werkzeug seiner
stimmten Anzahl fehlgeschlagener Loginversu- Mit maxretry legt man fest, nach wie vielen fehl- Art. So bieten beispielsweise auch DenyHosts [6]
che für eine einstellbare Zeit blockieren. Tech- geschlagenen Loginversuchen der Zugang ge- und BlockHosts [7] eine ähnliche Funktionali-
nisch gesehen überprüft die Applikation zuvor sperrt werden soll. tät. Auch zahlreiche freie Intrusion-Detection-
Systeme, wie beispielsweise OSSEC, bedienen Die Konfigurationsdatei /etc/knockd.conf be- Server ein lohnendes Ziel für Angreifer darstellt.
sich der Möglichkeit, bei einem Angriff Systemeherbergt alle relevanten Informationen, die Es lohnt sich deshalb, die gängigsten Strategi-
durch Filterregeln auszusperren. für einen reibungs- en anzuschauen. Allein schon die Änderung des
losen Betrieb von Standardports senkt die Zahl der erfolgten An-
[ openSSH ] sequence = 1234 ,2345 ,3456 seq_timeout = 5 command =
/sbin/ iptables -A INPUT -s %IP% -p tcp --dport 22 -j y
knockd notwendig griffe massiv. Schaltet man dann nur noch die-
ACCEPT sind. notwendigen Benutzer für einen SSH-Zugriff frei,
tcpflags = syn senkt man das Einbruchsrisiko weiter. Trotz allem
Die wichtigste Ein- sollte man allerdings beachten, dass kein Sys-
[ closeSSH ] stellung der Datei tem oder Server hundertprozentig sicher ist.
sequence = 1234 ,2345 ,3456 stellt die Option
seq_timeout = 5 sequence dar. Die- L INKS
command = /sbin/ iptables -D INPUT -s %IP% -p tcp y
--dport 22 -j DENY se legt die Ports [1] http://www.pro-linux.de/berichte/ssh-absichern.
tcpflags = syn fest, an denen html
Listing 2: knockd.conf angeklopft wer- [2] http://www.gnu.org/copyleft/fdl.html
den muss, um hereingelassen zu werden. [3] http://www.pro-linux.de/work/rootserver/teil2.html
knockd seq_timeout legt dagegen fest, wie lange [4] http://pam-abl.deksai.com/
Eine andere Strategie der Eindringlingsabwehr knockd wartet, bis die Sequenz übertragen wur-
[5] http://www.fail2ban.org/wiki/index.php/Main_
verfolgt knockd [8] mit Portknocking. Port- de, während command das Kommando festlegt,
Page
knocking stellt ein Verfahren dar, um einzel- das einen Port sperrt bzw. entsperrt. Durch den
[6] http://denyhosts.sourceforge.net/
ne Serverdienste oder einen kompletten Server Parameter tcpflags kann man festlegen, auf
abzusichern. Wie bereits der Name suggeriert, welche Pakete knockd reagiert. [7] http://www.aczoom.com/cms/blockhosts
muss der Anwender zuvor an den Server „an- [8] http://www.zeroflux.org/projects/knock
klopfen“, damit er Zugang zu einem vorher fest- Sind alle Optionen eingestellt, kann man knockd
gelegten Serverdienst erhält. Die Kommunikation entweder über init oder direkt mittels knockd
Autoreninformation
auf dem gewünschten Port wird dabei zunächst --debug -verbose starten. In diesem Fall wird
von einer Firewall vollständig geblockt. Sendet man direkt auf der Konsole die Resultate zu Mirko Lindner ist seit 1998 aktiv
der Anwender ein Klopfzeichen in Form von meh- Gesicht bekommen. Angeklopft wird nun mit in die Entwicklung des Kernels
reren SYN–Paketen mit einem zuvor vereinbar- dem Kommando knock serverip 1234 2345 eingebunden und verantwortlich für
tem Inhalt, „öffnet“ knockd den entsprechenden 3456. diverse Treiber und Subsysteme.
Port für den Anwender. Der Vorteil des Verfah- Daneben ist er einer der Betreiber
rens ist, dass ein Angreifer ohne die Kenntnis der Abschließendes von Pro-Linux.de.
zuvor vereinbarten Abfolge der Zeichen von au- Dieser Artikel konnte nur einen kleinen Teil der
ßen auch mit einem Port-Scanner nicht erkennen Möglichkeiten aufzeigen, die einem zur Absiche-
kann, ob ein bestimmter Serverdienst eingeschal- rung eines Systems zur Verfügung stehen. Man
tet wurde. sollte immer im Hinterkopf behalten, dass ein Diesen Artikel kommentieren
autilus bringt von Haus aus nützliche man entweder direkt in Nautilus nach Rechtsklick beispielsweise über das gleichnamige Paket aus
Um ein Skript zu benutzen, muss es nur im PDFs zusammenfügen Der Kern des Skripts besteht nur aus zwei Zei-
Homeverzeichnis in den versteckten Ordner Ein weit verbreitetes Programm, um PDFs zu- len. Mit dem Befehl argv werden die von Nauti-
.gnome2/nautilus-scripts/ geschoben wer- sammenzufügen, ist Pdftk (siehe „Kurztipp: Bas- lus übergebenen Dateinamen in Form einer Lis-
den. Es ist darauf zu achten, dass das Skript ei- telstunde mit Pdftk“, freiesMagazin 03/2009 [3]). te aufgefangen. Je nach dem, wie viele Dateien
ne ausführbare Datei ist, da es sonst von Nau- Es lässt sich ideal für ein Nautilus-Skript verwen- in Nautilus ausgewählt worden sind, kann argv
tilus nicht gestartet werden kann. Dies macht den. Damit das Skript funktioniert, muss Pdftk beliebig viele Listenelemente enthalten. Für das
Zusammenfügen von Dateien erfordert das Pro- teinamen nacheinander aus der Liste entnom-
#!/ usr/bin/ python
gramm Pdftk den Befehl cat output, gefolgt men und auf ihre Dateiendung hin geprüft. Ei-
# -*- coding : utf -8 -*-
von dem Namen der Ausgabedatei. Der Aufruf ne MP3-Datei wird mit mp3gain aufgerufen, eine
von Pdftk mit den entsprechenden Parametern from subprocess import Popen OGG-Datei mit vorbisgain. Dies geschieht so
erfolgt in der letzten Zeile des Skripts. from os import waitpid lange, bis die Liste abgearbeitet ist.
from sys import argv
Audiodateien normalisieren Hat das Skript alle markierten Musikstücke ab-
def gain(format , song): gearbeitet, so kann man eine Rückmeldung er-
Audiodateien, die man aus verschiedenen Quel- format . append (song)
warten. Dies ist sehr simpel über das Programm
process = Popen ( format )
len erhält, haben oft eine unterschiedliche Laut- Zenity möglich (siehe „Zenity und KDialog - Red’
finish = waitpid ( process .pid , 0)
stärke. Will man in seiner Musiksammlung aus- mit mir, PC“, freiesMagazin 03/2007 [6]).
schließlich Musikstücke des gleichen Lautstär- audio_dateien = argv [1:]
kepegels haben, so muss man sie normalisie- L INKS
ren [4]. Deshalb soll nun ein Skript zum Normali- while len( audio_dateien ) != 0:
[1] http://live.gnome.org/Nautilus/Extending
song = audio_dateien .pop ()
sieren von Audiodateien gezeigt werden. [2] http://g-scripts.sourceforge.net/
if song [ -4:] == ’.mp3 ’:
format = [’mp3gain ’, ’-r ’] [3] http://www.freiesmagazin.de/freiesMagazin-2009-
Das eigentliche Normalisieren erfolgt über gain(format , song) 03
den Aufruf der Programme mp3gain [5] und elif song [ -4:] == ’.ogg ’:
format = [’ vorbisgain ’, ’-a ’] [4] http://de.wikipedia.org/wiki/Normalisierung_
vorbisgain, die im Betriebssystem (wieder über (Audio)
gain(format , song)
gleichnamige Pakete) installiert sein müssen.
[5] http://wiki.ubuntuusers.de/MP3Gain
Popen ([’ zenity ’] + [’--info ’] + [’--y [6] http://www.freiesmagazin.de/freiesMagazin-2007-
Das Skript beginnt wie im ersten Beispiel mit text ’] + [’ Skript abgearbeitet ! ’])
03
den Angaben zur Skriptsprache, des Zeichensat-
Listing 2: audiogain.py [7] http://wiki.ubuntuusers.de/Nautilus/Skripte
zes und den eingebundenen Modulen. Im Gegen-
satz zum ersten Skript müssen hier aber die Pro- Die Programme zum Normalisieren werden auf
gramme mit jedem Musikstück separat aufgeru- jede einzelne Audiodatei angewandt. Deswegen Autoreninformation
fen werden. Damit die Dateien nacheinander und ist es praktisch, eine Funktion zu deklarieren
nicht parallel abgearbeitet werden, darf ein neuer (def gain), die das entsprechende Programm Dominik Mäder arbeitet gerne mit
Normalisierungsprozess erst starten, wenn der aufruft. Über den Befehl waitpid wird die Funk- freier Software. Skripte und weitere
vorherige beendet ist. Hierfür werden die Befehle tion erst verlassen, wenn der Prozess beendet kleine Helferlein machen ihm dabei
Popen und waitpid benötigt. Besitzt man einen ist. das Leben einfacher.
Prozessor mit zwei Kernen oder mehr, so könnte
man sich eine Routine überlegen, die zwei zeit- Die Liste der in Nautilus markierten Dateien er-
gleiche Prozesse erlaubt. Die Liste an Dateien hält man wie schon zuvor über den Befehl argv.
wäre dann doppelt so schnell abgearbeitet. In der folgenden while-Schleife werden die Da- Diesen Artikel kommentieren
ei der Erstellung größerer Program- Blackboxtesting zieren dazu gezwungen, mehr über die zu schrei-
Testen mit Perl Dann wird das Paket herunter geladen, getestet -1 => -1,
Für Perl gibt es einige CPAN-Module zum Testen und installiert. # Teste Grenzfall 0
0 => 1,
(Test::Simple, Test::More, Test::Harness,
Für das Paket CPAN-Modul Test::More würde # Teste Grenzfall 1
Test::Pod, Test::Class etc.). Hier wird auf 1 => 1,
der Befehl zum Installieren also folgendermaßen
das Modul Test::More [2] eingegangen. Dieses 2 => 2,
lauten: 3 => 6,
Modul stellt Funktionen zur Verfügung, um das
# Teste Grenzfall 16
Ergebnis eines Tests mit einem vorher definier- cpan [1] > install Test :: More
16 => 20922789888000 ,
ten Wert zu vergleichen. Dazu kann man noch # Teste ungueltigen zu grossen Wert
einen Namen für jeden Test angeben, damit die Oft wird man gefragt, ob die Internetverbindung 17 => -1
Ausgabe aussagekräftiger wird. genutzt werden darf, um die entsprechenden Da- );
teien herunterzuladen und ob weitere Abhängig-
Für jeden Test wird bei der Ausführung des Test- keiten installiert werden sollen. Diese Fragen soll- foreach (sort keys % testhash ){
skripts eine Zeile ausgegeben. Zuerst ein „ok“ is( MathModule :: faculty ($_), y
te man in der Regel mit „Ja“ (bzw. „Yes“) beant-
oder „not ok“, je nach dem ob das Programm den $testhash {$_}, " faculty of: ". $_);
worten. }
Test bestanden hat oder nicht. Danach kommt ei-
ne laufende Nummer des Tests und dahinter der Beispiel Listing 1: faculty-test.pl
Name des Tests. Blackboxtest Es wird das Modul Test::More eingebunden.
Wird CPAN das erste Mal gestartet, so müssen Will man eine Funktion zur Berechnung der Fa- Dahinter steht die Anzahl der Tests, die man
einige Konfigurationsparameter festgelegt wer- kultät namens faculty im Modul MathModule durchführen möchte. In diesem Fall sind es 8. Da-
den. Oft wird man gefragt, ob dies automatisch schreiben, so wird diese zuerst spezifiziert: nach wird das zu testende Modul eingebunden
geschehen soll. Dies ist meist der einfachste Eingabe: Ganze Zahl n zwischen 0 und 16 (MathModule) und ein Hash mit Testwerten und
Weg. Ansonsten wird man danach gefragt, von den erwarteten Ergebnissen definiert. In einer
Ausgabe: Die Fakultät von n: n! oder −1 im
welchem Spiegelserver die Dateien herunterge- foreach-Schleife werden nun alle Tests durch-
Fehlerfall.
laden und welche Verzeichnisse zum Installieren laufen. Die Funktion is vergleicht den ersten Pa-
genutzt werden sollen. Dabei kann man die vor- Nun schreibt man einen Blackboxtest für diese rameter mit dem zweiten und erzeugt die oben
geschlagenen Werte (in eckigen Klammern) in Funktion: angegebene Ausgabe („ok“ oder „not ok“). Der
der Regel übernehmen. dritte Parameter definiert den Namen des Tests.
#!/ usr/bin/perl
Ein CPAN-Modul installiert man, indem man use strict ;
Um die Anzahl der Testfälle zu verringern, kann
in die CPAN-Konsole einloggt und das install- use warnings ;
use Test :: More tests => 8; man nun für jede Methode, die man testen möch-
Kommando mit dem Namen des zu installieren- use MathModule ; te, eine Testmethode schreiben und nur deren Er-
den Moduls aufruft: gebnis auswerten:
my % testhash = (
# cpan # Teste ungueltigen negativen Wert #!/ usr/bin/perl
cpan [1] > install Paketname :: Modulname -2 => -1, use strict ;
Entwicklung und Download Ein kleiner Hinweis für die Vim-Nutzer: Neben Für die Erstellung und Konvertierung der Bei-
ditaa steht für „DIagrams Through Ascii Art“, wur- dem DrawIt!-Plugin gibt es auf der Website von spieldateien wurden ungefähr fünf Minuten benö-
de von Stathis Sideris in der Sprache Java ent- Charles E Campbell, Jr. [9] noch zahlreiche wei- tigt. Im ersten Beispiel wurde ohne zusätzliche
wickelt und unterliegt der GPL. Leider wird auf tere, sehr nützliche Plugins: z. B. Alingment (hilft Parameter auf die Verwendung von Formen und
der Website noch auf die Beta-Version 0.6b hin- bei der Ausrichtung von Texten anhand von Mus- Farben verzichtet.
gewiesen, davon sollte man sich aber nicht ab- tern, wie z. B. bei Kommentaren im Quellcode)
+------------+ +-------+ +--------+
schrecken lassen, denn zum Download wird die und Visual Incrementing (nützlich beim Erzeugen |cF00 | |cFF0 | |c0F0 |
aktuelle Version 0.8 angeboten. von Zahlen- oder Datenreihen). | Textdatei +-->| ditaa |-->| Grafik |
| {d}| | {io }| | {d}|
+------------+ +-------+ +--------+ Alle wesentlichen Informationen zur Gestaltung +------------+ +-------+ +--------+
| | | | | | der Grafik und den Optionen von ditaa sind auf ei-
| Textdatei +-->| ditaa |-->| Grafik | Listing 3: ditaa-beispiel-3.txt
ner HTML-Seite [10] zusammengefasst. Obwohl
| | | | | |
die Anzahl der Kommandooptionen übersichtlich $ java -jar ditaa .jar ditaa -beispiel y
+------------+ +-------+ +--------+
und die Gestaltungsmöglichkeiten einfach gehal- -3. txt ditaa -beispiel -3. png
Listing 2: ditaa-beispiel-2.txt ten sind, lassen sich mit geringem Aufwand an-
sprechende Grafiken erstellen. Mit kleinen Veränderungen werden aus den
Grundlage Rechtecken entsprechende Formen generiert.
Ausgangspunkt für die Grafikerstellung ist eine Mittels {d} (= Dokument) und {io} (= Input/Out-
einfache Textdatei. Diese kann mit einem Editor, put) wird die Form bestimmt. Der Zusatz cF00
Textdatei ditaa Grafik
wie z. B. Vim, Emacs, Kate oder gedit, erstellt signalisiert ditaa, dass die Form in der Far-
werden. Wer sich für den Einsatz von Vim ent- be F00 gezeichnet werden soll, wobei dies die
scheidet, dem sei das DraWIt!-Plugin [8] empfoh- die Hex-Kurzform von Hex FF0000 ist, was den
len. Von der Textdatei zur Grafik. RGB-Werten (255, 0, 0) entspricht bzw. für das
menschliche Auge die Farbe Rot darstellt. Das
Mittels DrawIt!-Plugin ist es möglich, mit den Beispiele mag für den einen oder anderen etwas umständ-
Cursor-Tasten zu „malen“. Um in den Zeichenmo- ditaa wird als Java-Archiv [11] ausgeliefert. Um lich sein, glücklicherweise gibt es entsprechende
dus zu gelangen, gibt man im Kommando-Modus die Konvertierung zu starten, reicht es java Farbtabellen [12], die einem die Farbauswahl er-
des Vim \di ein. Unterhalb der Statuszeile er- -jar ditaa.jar einzugeben, gefolgt vom Da- leichtern.
scheint dann die Meldung [Drawit]. Jetzt befindet teinamen für die Quell- und Zieldatei. Die Quell-
man sich im Zeichenmodus und kann „Kästchen datei ist die ASCII-Datei ditaa-beispiel-1
malen“. Um den Zeichenmodus wieder zu been- .txt, aus der mit Hilfe von ditaa die Zieldatei Textdatei ditaa Grafik
den, wechselt man mittels Esc in den Komman- ditaa-beispiel-1.png generiert wird:
domodus und verlässt mit \ds den Zeichenmo-
dus. Weitere Details zur Verwendung des Plugins $ java -jar ditaa .jar ditaa -beispiel y
erfährt man mittels :help drawit. -2. txt ditaa -beispiel -2. png Und nun mit etwas mehr Farbe und Form.
rotz des folgenden Zitats fürchten sich dieser Chip tatsächlich schon von Linux unter- Open Source vs. Proprietär
nicht den Beweis antreten, dass der proprietäre ten sein. Der Linux-Anwender kann damit relativ immer noch einen auf der Version 2.6.18 basie-
Treiber nicht am Problem beteiligt ist. sicher sein, dass seine Hardware auch nach Ak- renden Kernel, die Treibermodule für moderne
tualisierungen nicht aufhört zu funktionieren, es Hardware sind aber trotzdem vorhanden.
Proprietäre Treiber werden eigentlich aktuell nur sei denn er nutzt noch Hardware aus der PC-
für die Graphikkarten von nVidia und ATI ein- Steinzeit, denn hin und wieder werden solche Manchmal scheitert dieses „Backporting“ aller-
gesetzt, wobei man anmerken muss, dass hier prähistorischen Treiber auch mal aus dem Kernel dings auch an dem Umstand, dass sich die ABI
auch bereits an Open-Source-Treibern gearbei- entfernt, weil die Kernelentwickler zu der Annah- im Kernel so gewaltig verändert hat, dass ein
tet wird. Wer aber beispielsweise gerne mit Flight- me gekommen sind, dass niemand auf der Welt neuerer Code nur mit irrsinnigem Aufwand in alte
Gear spielt, wird höchstwahrscheinlich auf die diese Hardware noch benutzt. Kernel eingebracht werden könnte. Beispielswei-
beschleunigten OpenGL-3D-Treiber dieser Fir- se enthält Red Hat Enterprise Linux wenig An-
men zurückgreifen. Da zudem beispielsweise der Ein weiteres Problem ergibt sich daraus, dass passungen für WLAN-Karten, eben weil sich seit
nVidia-Treiber so gekapselt ist, dass der eigent- der normale Linux-Anwender eben genau nicht 2.6.18 das komplette WLAN-Subsystem so gra-
liche proprietäre Treiber mittels eines quelloffe- den Vanilla-Kernel benutzt, sondern den Kernel, vierend geändert hat, dass sich keiner den Auf-
nen Schnittstellenmoduls an den Kernel ange- der mit seiner Distribution installiert wurde. Eine wand für einen Backport auferlegen will.
flanscht wird, ist hier die Gefahr einer inkonsisten- logische Konsequenz ist: Wenn man neue Hard-
ten ABI eher gering, weil die Stabilität der ABI in ware nutzen will, muss man auch neue Versionen Selbsthilfe
Richtung Closed-Source-Teil vom Open-Source- der Distributionen einsetzen. Ein SUSE 10.0 von
Kompatibilitätslisten
Kernelmodul sichergestellt wird. Dieser Treiber 2005 enthält einen Kernel, der natürlich keine
Hardware wie den Boazman-Gigabit-LAN-Chip Die zentrale Anlaufstelle zum Thema Linux-
und das zugehörige Kernelmodul wird auch oft
aus dem Jahr 2008 unterstützt. Treiber im Internet findet man auf der Seite
über Repositorys für verschiedene Distributionen
von Linux-Drivers.org [1]. Hier gibt es eine gan-
als installierbares Paket angeboten. Trotzdem kann man auch mit „aktuellen“ Distri- ze Menge Links zu weiteren Kompatibilitätslis-
Vanilla vs. Distribution butionen noch manche Bauchlandung in Sachen ten und jede Menge Informationen zum Thema
Hardwarekompatibilität hinlegen. Debian Lenny Linux-Treiber.
Ein anderer Fallstrick auf dem Weg zur Linux-
nutzt beispielsweise noch den Kernel 2.6.26, was
Kompatibilität ist, dass es eben nicht „das Linux“ Allerdings muss man sich auch vergegenwärti-
bedeutet, dass auf sehr neuen Geräten eben Din-
gibt. Kommt ein Hersteller mit einem neuen Si- gen, dass viele dieser Kompatibilitätslisten nicht
ge wie der oben erwähnte LAN-Chip noch nicht
liziumchip auf den Markt und will dafür Treiber sehr umfassend sind und jede von Freiwilligen
funktionieren, weil deren Treibercode erst im Ker-
bereitstellen, dann ist der logische und sinnvol- gepflegte Datenbank mit Kompatibilitätsinforma-
nel 2.6.27 hinzukam.
le Übergabepunkt der „Vanilla-Kernel“ bei Ker- tionen nur so gut sein kann, wie das, was die Be-
nel.org. Treiber, die hier eingebunden sind, wer- Dieses Problem ist den Kernel-Entwicklern nutzer dort hineinschreiben.
den bei Aktualisierungen des Kernels automa- durchaus bewusst und so geben sich die Distribu-
tisch ebenfalls aktualisiert. Wenn also beispiels- toren wie Novell und Red Hat für ihre Enterprise- Daher muss man an die Nutzer appellieren, auch
weise der Treiber für die LAN-Karte im Kernel Distributionen sehr viel Mühe, neue Treiber in die mal ein paar Minuten zu spendieren, um solche
2.6.27 dazu kam, dann wird dieser Treiber auch vergleichsweise alten Kernel einfließen zu lassen. Informationen zu einem Gerät einzutragen. An-
in den Folgeversionen 2.6.28, 2.6.29 usw. enthal- So enthält ein Red Hat Enterprise Linux 5.4 zwar dere Nutzer werden davon profitieren und man
selbst profitiert von den gut dokumentierten Ein- ses System ein sogenanntes Bulletin im Novell te geben. Je nach dem was man erwerben will,
trägen der anderen. Bulletin System und kann über die Suchseite [3] kann es auch nützlich sein, einfach ein Note-
gefunden werden. Da beim SUSE Linux Enter- book mit Linux mitzubringen, um direkt im Ge-
Zertifizierungen
prise Desktop mittlerweile auch die 3-D-Desktop- schäft ausprobieren zu können, ob das neue
Im Geschäftsumfeld legen viele Kunden Wert
Effekte wie der rotierende Würfel mitgetestet wer- USB-Gadget auch mit Linux-Treibern versorgt ist.
auf zertifizierte Systeme. Die Distributoren No-
den, kann hier auch zum Test der proprietäre
vell und Red Hat bieten hierfür Hardware- Kernel-Treiber Grundlagen
nVidia-Treiber benutzt werden. Wird ein Compu-
Zertifizierungsprogramme an, bei denen meist
ter in drei Ausbauvarianten getestet, so gibt es Wenn es wirklich ans Eingemachte geht, dann
komplette Systeme auf ihre Linux-Kompatibilität
nach erfolgreichen Tests entsprechend drei Bulle- hilft oft ein grundlegendes Verständnis davon,
hin getestet werden.
tins, welche dies dokumentieren. wie Gerätetreiber funktionieren.
Bei Red Hat wird hierbei ein komplettes System
Newsgroups und Foren Device-IDs ermittlen mit lspci / lsusb
mit allen möglichen Bestelloptionen qualifiziert,
Ein weiterer Anlaufpunkt für Hilfesuchende sind Im Zeitalter von Plug & Play haben Hardware-
bevor es einen Eintrag in der Red Hat HCL [2]
Newsgroups im deutschen Usenet, wie et- Erweiterungen standardisierte Schnittstellen, um
erhält. Das bedeutet, ein System, welches bei-
wa de.comp.os.unix.linux.hardware oder entspre- dem System mitzuteilen, „wer“ sie sind. Bei Er-
spielsweise mit fünf verschiedenen Grafikkarten
chende Webforen. Bevor man hier aber munter weiterungskarten passiert das im Allgemeinen
bestückt werden kann, muss auch mit allen die-
Fragen in die Runde wirft, sollte man zum einen über die sogenannte PCI-ID, bei USB ist der Me-
sen Grafikkarten getestet werden, um als zerti-
schon mal einen Blick in die oben erwähnten chanismus ähnlich.
fiziert zu gelten. Um Arbeit zu sparen, können
hier auch bereits bestandene Tests auf ande- Kompatibilitätslisten geworfen haben und zum Mit Befehlen wie lspci oder lsusb kann man sich
ren Systemen mit diesen Grafikkarten referen- anderen die Hinweise „Wie man Fragen richtig so sehr schnell einen Überblick über die im Sys-
ziert werden. Red Hat garantiert mit der Zertifi- stellt“ [4] beherzigen. Leute aus der Communitiy tem vorhandenen PCI-Erweiterungskarten oder
zierung, dass dieses System mit allen Bestellop- helfen gerne weiter, wenn man in der Lage ist, angeschlossene USB-Geräte verschaffen.
tionen von der zertifizierten Red-Hat-Enterprise- sein Problem entsprechend zu artikulieren. Und
sollte man eine Frage gestellt haben und dann Die aufgelisteten Geräte werden über ihre
Linux-Version „out-of-the-box“ unterstützt wird.
doch selbst die Lösung gefunden haben, dann PCI/USB-ID identifiziert. Eine Device-ID besteht
Das führt allerdings auch dazu, dass High-End-
sollte man schildern, welche Maßnahmen zur Lö- aus 4 Bytes, 2 Bytes welche die sogenann-
Grafikkarten wie die nVidia Quadro FX5800 im
sung geführt haben, denn das hilft dem nächs- te Vendor-ID (Hersteller-ID) enthalten und zwei
Zertifizierungstest mit dem VESA-Treiber anstel-
ten Suchenden unter Umständen schon einen Bytes für die Device-ID (also die Geräteken-
le des proprietären nVidia-Treibers getestet wer-
großen Schritt weiter. nung). Zudem gibt es noch Klassen-IDs für ver-
den.
schiedene Geräteklassen, Subvendor-IDs und
Novell geht mit seinen „Bulletins“ für SUSE Linux Sonstiges Subdevice-IDs. Letztere kommen zum Einsatz,
Enterprise Desktop oder Server einen geringfü- Kauft man seine Hardware oder Erweiterungen wenn z. B. ein Intel LAN Chip auf einem Main-
gig anderen Weg. Hier wird ein genau spezifi- statt beim Billig-Discounter beim örtlichen Fach- board von DELL verbaut wird. Dann hat die-
ziertes System in einem Ausbauzustand getes- handel, dann können einem die Leute dort even- ser Chip die Vendor-ID 8086 (Intel) und die
tet. Werden alle Tests bestanden, dann erhält die- tuell bei Fragen bereits die notwendigen Auskünf- Subvendor-ID 1028 (Dell).
Die Textbeschreibungen kommen dabei aus Da- Besonders der letzte Punkt führt oft zu Fehlin-
# lspci
teien wie /usr/share/misc/pci.ids. Dort ist terpretationen. Man liest immer wieder in den
[...]
unter dem Schlüssel der binären PCI-ID ein Text Newsgroups, dass der Treiber ja „keine Fehler- 00:0d.0 Multimedia controller : Philipsy
hinterlegt. Findet die Nachschlagefunktion keine meldung“ bringt und deswegen eigentlich funktio- Semiconductors SAA7131 / SAA7133 /y
Beschreibung, dann gibt sie „unknown device“ nieren sollte. Dabei wird gerne übersehen, dass SAA7135 Video Broadcast Decoder (rev y
zurück. Dies sagt lediglich aus, dass die Datei man auf einem beliebigen System auch andere d1)
[...]
mit den PCI-ID-Beschreibungen veraltet ist und Treiber laden kann, ohne dass eine Fehlermel-
macht definitiv keinerlei Aussage über die Trei- dung erfolgt. Oder genauer das Gerät auf Bus 0:0f.0:
berunterstützung für das jeweilige Gerät.
Wenn man modinfo z. B. für das Modul sata_via # lspci -s 0:f.0 -n
Eine neuere Version der PCI-ID-Beschreibungs- aufruft, bekommt man folgende Ausgabe: 00:0f.0 0104: 1106:3149 (rev 80)
datei kann man bei Sourceforge [5] runterladen.
# modinfo sata_via Der SATA-RAID-Controller im Bei-
Informationen über Kernel-Module erhalten filename : /lib/ modules /2.6.26 -2 - amd64 / kernel /y
drivers /ata/ sata_via .ko spiel hat also die Vendor-Device-ID-
Mit dem Programm modinfo kann man sich In- Kombination 1106:3149. Schaut
version : 2.3
formationen über Kernelmodule beschaffen. Je- license : GPL man die Ausgabe von modinfo
des Kernelmodul hat, sofern es sich um einen description : SCSI low - level driver for VIA SATA y sata_via nochmals genau an,
PCI- oder USB-Gerätetreiber handelt, prinzipiell controllers
dann sieht man diese Werte in der
die gleiche (hier grob beschriebene) Struktur: author : Jeff Garzik
srcversion : 4 F5E9D4C56ABDD3C940464D fünften Alias-Zeile. Das bedeutet,
alias : pci: v00001106d00007372sv *sd*bc*sc*i* das Modul sata_via wird beim Ab-
Beim Laden bzw. Initialisieren des Moduls
alias : pci: v00001106d00005372sv *sd*bc*sc*i* klappern der PCI-Geräte auf genau
macht dieses ganz abstrakt das Gleiche wie alias : pci: v00001106d00005287sv *sd*bc*sc*i* diesen RAID-Controller stoßen und
das Programm lspci. alias : pci: v00001106d00003249sv *sd*bc*sc*i*
sich zuständig fühlen.
Für jedes zurückgelieferte Gerät vergleicht das alias : pci: v00001106d00003149sv *sd*bc*sc*i*
alias : pci: v00001106d00000591sv *sd*bc*sc*i*
Modul nun, ob die Vendor- und Device-ID in alias : pci: v00001106d00005337sv *sd*bc*sc*i* Woher der Kernel weiß, welches
der Tabelle der Geräte enthalten ist, die das depends : libata Modul er braucht
Modul „kennt“. vermagic : 2.6.26 -2 - amd64 SMP mod_unload y Nun stellt man sich natürlich die
Für jedes gefundene Gerät wird dann ein modversions
Frage, woher denn der Kernel
„Device-Node“ angelegt, mit dem das Gerät an- weiß, dass er für den SATA-
Für dieses Beispiel sind besonders die Zeilen mit
gesprochen werden kann. Notwendige Initiali- Controller genau dieses Modul braucht. In
alias: interessant. Eine genaue Beschreibung,
sierungen von Chip-Registern werden vorge- den „module init tools“ gibt es das Komman-
wie diese Zeilen zu interetieren sind, findet man
nommen. do depmod, welches die Nachschlagedateien
im Wiki von Arch-Linux [6].
Werden keine vom Modul unterstützten Gerä- unter /lib/modules/<kernelversion>/, wie
te gefunden, dann verbleibt das Modul inaktiv Hier die Auflistung der PCI-Geräte des Beispiel- z. B. die Datei modules.pcimap, erzeugt. Hier-
im Speicher. rechners: zu wird für jedes Modul unter /lib/modules/
<kernelversion> sozusagen ein modinfo aufge- 8139 too 0 xffffffff 0 x00008139 0y Kernel modules : 8139cp , 8139y
rufen und die Werte der gefundenen Alias-Zeilen x000010ec 0 x00008139 0 x00000000 0y too
werden in die entsprechende Nachschlagetabel- x00000000 0x0
8139 cp 0 x000010ec 0 x00008139 0y Die vorletzte Zeile zeigt, dass aktuell das Modul
le eingetragen. Für den Beispiel-SATA-Controller xffffffff 0 xffffffff 0 x00000000 0y
kann dann z. B. so der Treiber ermittelt werden: 8139too die Karte betreibt. Man kann nun zum
x00000000 0x0
Beispiel die Kernel-Meldungen nach Mitteilungen
# grep 0 x00003149 /lib/ modulesy von 8139cp durchsuchen:
/2.6.26 -2 - amd64 / modules . pcimap | grep y Hier wird man mit drei Einträgen überrascht.
1106 Zweimal für den Treiber 8139too und einmal # dmesg | grep 8139 cp
sata_via 0 x00001106 0 x00003149 0y für den Treiber 8139cp. Der zweite Eintrag für [1.379395] 8139 cp: 10/100 PCI y
xffffffff 0 xffffffff 0 x00000000 0y 8139too heißt letztlich nur, dass das Modul Ethernet driver v1 .3 (Mar 22, 2004)
x00000000 0x0
8139too zuständig ist, wenn die Device-ID 8139 [1.406707] 8139 cp 0000:00:0 c.0: y
ist und Subvendor-ID 10ec und Subdevice-ID This (id 10 ec :8139 rev 10) is not y
Der erste grep sucht nach der Device-ID und 8139 – egal welche Vendor-ID das Gerät hat. an 8139C+ compatible chip
der zweite nach dem Pipe-Symbol filtert noch die [1.406780] 8139 cp 0000:00:0 c.0: Tryy
Vendor-ID aus. Übrig bleibt genau eine Zeile mit Für diese LAN-Karte gibt es also zwei konkurrie- the "8139 too" driver instead .
dem Eintrag für sata_via. Bingo! So erkennt der rende Treiber. Mittels lsmod kann man nachse-
hen, welche Treiber geladen sind: Das Modul 8139cp hat also beim noch ge-
Kernel also, welches Modul zu laden ist.
naueren „Hinsehen“ festgestellt, dass es für die-
# lsmod | grep 8139 se Revision des Chips nicht zuständig ist und
Noch ein Beispiel, diesmal mit einer LAN- 8139 cp 23808 0 dies gemeldet. Um ein Laden dieses Moduls
Karte. Die ersten beiden Zeilen ermitteln wie 8139 too 28288 0
zukünftig zu verhindern kann man in die Da-
gehabt die PCI-ID. Dann schlägt man in der mii 9856 2 8139cp ,8139 too
tei /etc/modprobe.d/blacklist eine Zeile mit
modules.pcimap den benötigten Treiber nach.
dem Inhalt blacklist 8139cp eintragen. Dann
In diesem Beispiel sind also beide Treibermodule
# lspci -s 0:c.0 wird zukünftig das Laden des Moduls verhindert.
geladen. Welcher Treiber wird aber nun benutzt?
00:0c.0 Ethernet controller : Realtek y
Semiconductor Co., Ltd. RTL -8139/8139 Cy Um das herauszufinden kann man die Ausgabe Abschließend noch ein weiteres Beispiel für eine
/8139 C+ (rev 10) von lspci ein wenig mehr „gesprächig“ (verbose) USB-Webcam. Diese identifiziert sich als:
machen:
# lspci -s 0:c.0 -n # lsusb -s 5:4
00:0c.0 0200: 10 ec :8139 (rev 10) # lspci -s 0:c.0 -v Bus 005 Device 004: ID 046d:09 a4 y
00:0c.0 Ethernet controller : Realtek y Logitech , Inc.
# grep 0 x00008139 /lib/ modulesy Semiconductor Co., Ltd. RTL -8139/8139 Cy
/2.6.26 -2 - amd64 / modules . pcimap | grep y /8139 C+ (rev 10) Versucht man nun, den Treiber für dieses Modul
10ec Subsystem : Realtek y
8139 too 0 x000010ec 0 x00008139 0y Semiconductor Co., Ltd. RT8139
in der Datei modules.usbmap nachzuschlagen,
xffffffff 0 xffffffff 0 x00000000 0y [...] erhält man keinen Treffer. Eine Suche beim Linux-
x00000000 0x0 Kernel driver in use: 8139 too USB-Project [7] verrät, dass für diese Logitech
E3500 Webcam der uvcvideo-Treiber zu ver- Schlussfolgerungen für die Praxis möglich. Sollte das BIOS des Systems kein
wenden ist. Die modinfo-Ausgabe von uvcvideo Insgesamt kann man zu dem Thema AHCI (Advanced Host Controller Interface) an-
sieht (auf die wichtigen Zeilen gekürzt) so aus: Hardwarekompatibiltät für bieten, dann hilft vielleicht ein „compatible“-
Linux folgende Schlussfolge- Modus, in dem IDE-Platten emuliert werden.
# modinfo uvcvideo
filename : /lib/ modules /2.6.26 -2 - amd64 / kernel / drivers /y rungen ziehen und weitere Dieser Modus ist allerdings sehr langsam, da
media / video /uvc/ uvcvideo .ko Hinweise geben: er keine DMA-Unterstützung hat und man
[...] gegebenenfalls den ide_generic-Treiber bei
alias : usb:v*p*d*dc*dsc*dp* ic0Eisc01ip00 * Alte Hardware läuft zwar im der Installation laden muss.
alias : usb: v5986p0200d *dc*dsc*dp* ic0Eisc01ip00 * allgemeinen mit neuen Ker-
alias : usb: v5986p0141d *dc*dsc*dp* ic0Eisc01ip00 *
Ist das System erst einmal mit einer Basisin-
neln, neue aber nicht unbe- stallation boot- und lauffähig, kann man die
dingt mit alten Kerneln. eventuell noch fehlenden Treiber im Bedarfs-
Die für das Beispiel interessante Zeile ist die al-
fall hinzufügen. USB-Speichersticks werden ei-
lererste Alias-Zeile. Hier sind die Vendor- und Welche Hardware in Systemen und Periphe-
gentlich in fast allen Fällen problemlos unter-
Device-Angaben nicht relevant, wohl aber die An- riegeräten verbaut ist, erfährt man oft leider
stützt, um im Bedarfsfall größere Datenmen-
gaben ic (Interface Class), isc (Interface Sub- nicht aus den Datenblättern. Hier sind am bes-
gen zu einem Rechner ohne funktionierenden
class) und ip (Interface Protocol). Schaut man ten vor dem Kauf von Hardware einige Recher-
Netzwerktreiber zu übertragen.
sich die USB-Details an, dann sieht man (wieder chen in den einschlägigen Foren und Kompati-
Selbst wenn bestimmte Treiber wie beispiels-
auf das Wesentliche gekürzt) Folgendes: bilitätslisten sinnvoll.
weise LAN- oder Audio-Treiber nicht im Ker-
Open-Source-Treiber sind in jedem Fall gegen-
# lsusb -s 5:4 -v nel der Distribution enthalten sind, lassen sich
[...] über proprietären Treibern zu bevorzugen.
diese oft beim Hersteller der Komponente
bInterfaceClass 14 Video Dank standardisiertern generischen Geräte- als Quellcode herunterladen, der sich dann
bInterfaceSubClass 1 Video y klassentreibern sind bei den fundamentalen
Control auch für ältere Kernel übersetzen lässt. So
Komponenten eines PCs kaum Probleme zu kann man auch auf etwas betagteren Dis-
bInterfaceProtocol 0
[...] erwarten. tributionen neue Hardware zum Laufen brin-
Die Schnittstellen zu Tastatur und Maus sind gen, bezahlt diesen Komfort aber mit der
Hier wird der Treiber also über die Geräteklas- über ausgereifte Treiber nutzbar, im USB-Fall Verpflichtung, diese Treiber möglicherweise
se geladen. Die Kamera folgt dem „USB Video hilft ein USB-HID-Treiber (Human Interface De- nach Kernel-Updates neu übersetzen zu müs-
Class“ Standard. Somit kann der Treiber für diese vice). sen. Enterprise-Distributionen wie SUSE Linux
Geräteklasse verwendet werden, auch wenn es Die graphische Oberfläche kann im schlimms- Enterprise Server haben hier übrigens ein
keinen expliziten Eintrag für Vendor- und Device- ten Fall mit dem VESA-Treiber genutzt wer- Treiber-Update-Modell, mit dem vorkompilier-
IDs gibt. Andere Geräte, bei denen oft die Trei- den, da alle modernen Graphikkarten auch die te Herstellertreiber für bestimmte Komponen-
ber über die Geräteklasse identifiziert werden, VESA-Modi unterstützen. ten direkt bei Novell vom FTP-Server bezogen
sind PCI-Bridges oder SATA-Controller im AHCI- Der Zugriff auf die Festplatte ist bei modernen werden und auch nach Kernel-Updates weiter-
Modus. Systemen oft über den AHCI-Klassentreiber funktionieren.
ie bereits letztes Jahr fand an der Artikel nur von dem kleinen Teil berichten, an de- angebotenen Downloadversion und den Pake-
Freitag, 16.10.2009
ten, die in den Ubuntu-Paketquellen zu finden
sind, eingegangen. Vorgestellt wurde sowohl der
überarbeitete TEX-Live-Manager „tlmgr“ [3] für
ber konnten sowohl Ubuntu-Kenner als auch Gegen 12 Uhr bin ich in Göttingen angekommen die LATEX-Paketinstallation (der bei Ubuntu nicht
Ubuntu-Neulinge den informativen Vorträgen und konnte bereits 15 Minuten später im Ver- mit dabei ist) als auch der TEX-Documentation-
zuhören oder bei Workshops aktiv teilneh- sorgungsgebäude der Georg-August-Universität Browser, der über texdoc PAKETNAME im Ter-
men. beim Aufbau und der Organisation mithelfen. Es minal direkt die Dokumentation zu einem LATEX-
trafen auch im Vorfeld einige Besucher ein, ob- Paket anzeigt.
Da es an den drei Tagen jeweils bis zu sechs wohl der erste Vortrag erst für 14 bzw. 16 Uhr
parallel stattfindende Vorträge gab, kann dieser angekündigt war. In der Regel war das kein Im zweiten Teil wurden danach zahlreiche
Problem, da man sich die restliche LATEX-Editoren vorgestellt, von denen vor allem
Zeit im Hackcenter mit seinem Note- TEXworks [4] und Gummi [5] ziemlich neu sind.
und Netbooks vergnügen oder ers- TEXworks soll dabei vor allem durch die Verwen-
te Kontakte mit den anderen Ubuntu- dung von „synctex“ damit glänzen, dass er bei
Nutzern knüpfen konnte. Dazu stan- einer markierten Stelle im LATEX-Code direkt zur
den auch alle drei Tage für einen Un- jeweiligen Ausgabe im PDF springen kann. Dies
kostenbeitrag von 10 Euro (bzw. 15 soll auch umgekehrt möglich sein, so dass man
Euro bei Vor-Ort-Anmeldung) jedem von einer markierten Stelle im PDF direkt zum je-
Teilnehmer kostenloses Trinken und weiligen LATEX-Codestück springt. Daneben wur-
Essen in Form von belegten Brötchen den noch etwas bekanntere LATEX-Editoren wie
und Berlinern zur Verfügung. Kile, gedit, Geany oder TEXMAKER vorgestellt.
LaTeX im Jahr 2009 Danach stellte Böhmichen einige Helfer vor, die
Mit etwas Verspätung startete Adri- einen bei der Arbeit mit LATEX unterstützen sollen.
an Böhmichen seinen Vortrag zum Dazu zählten Makefiles, die automatisch neue
Thema „LATEX im Jahr 2009“ kurz PDF-Dokumente erstellen (wobei dies ähnlich in-
nach 16 Uhr. Vor ca. 25 Teilnehmer teressant wie der Vortrag „Komfortable Makefiles“
berichtete er zuerst von der LATEX- (siehe freiesMagazin 10/2009 [6]) auf der Dante-
Distribution TEXLive [2] und den Neue- Tagung in Esslingen war), pygments zum Syntax-
rungen in der 2009er-Version. Dabei highlighing, hunspell zur Rechtschreibprüfung,
wurde auch auf die Unterschiede zwi- lacheck als sehr einfach LATEX-Syntaxchecker, im-
Über die Twitterwall war man immer über die Vorgänge auf
schen der auf der TEX-Live-Webseite pressive [7] für den Einsatz von Präsentationsef-
der Ubucon informiert.
Unterstützung bietet und somit vor allem sehr pflegt, (sehr) viel gegessen und getrunken. Die- den zwei Stunden bin ich auf die Gestaltung von
se abendlichen Treffen am Freitag und am dar- ganz einfachen Dokumenten, etwas Textformatie-
auf folgenden Samstag trugen sehr zur Auflocke- rung, Tabellen und Bildern und alles, was sonst
rung der ganzen Ubucon-Veranstaltung bei, da zu einem ersten eigenen Versuch dazugehören
man sich so besser untereinander kennenlernen sollte, eingegangen.
konnte. Gleich danach fand ein zweiter Workshop zum
Thema „Magazinerstellung mit LATEX“ statt, bei
Samstag, 17.10.2009 dem auch ein kleiner Teil der Zuhörer aus dem
LATEX-Workshops ersten Workshop anwesend war. Ingesamt war
Den ersten Vortrag am Samstag hielt ich selbst die Teilnehmerzahl mit ca. 15 bis 20 Leuten
zum Thema „LATEX für Einsteiger“. Vor allem die zwar geringer, dennoch erstaunlich hoch, be-
hohe Teilnehmerzahl von 30 bis 35 Personen war denkt man, dass es sich hier um ein sehr speziel-
„Ubucon“ kann noch nicht jeder schreiben. überraschend, zeigte aber, dass das Interesse les Themengebiet handelt. Anhand meiner Erfah-
rungen bei freiesMagazin, welches mit LATEX ge- da die Tabulator-Taste ab sofort zu meinen wich- Neben regulären Ausdrücken, die in Basic Re-
setzt wird, konnte ich den fortgeschrittenen Teil- tigsten Gimp-Tastenkürzeln zählt. ( Tab minimiert gular Expressions (BRE), Extended Regular Ex-
nehmern (hoffentlich) etwas Neues beibringen. alle Dialoge außer den Bildern, was bei kleineren pressions (ERE) und Perl Regular Expressions
Bildschirmauflösungen hilfreich ist.) (PRE) gegliedert waren, wurde auch auf Varia-
Die Folien und Beispiele zu beiden Workshops blenzuweisungen und Funktionen eingegangen;
können auf der Webseite deesaster.org herunter- Muschelsuppe schließlich widmete man sich der Benutzung von
geladen werden [12] [13]. BASH_REMATCH als globales Array für Rückbezü-
Gleich danach hielt Karsten Günther eine Bash-
Gimp-Einführung Einführung, zeitgleich fand aber auch die „Mu- ge.
Karsten Günther hielt nach der Mittagspause schelsuppe“ von Dirk Deimeke statt. Deimeke
kennt sich als Systemadministrator sehr gut mit Danach wurde das Thema etwas allgemeiner
einen sehr interessanten Workshop für alle Gimp-
der Shell aus und wollte in den zwei Stunden und neben der Bash-Programmierung kamen
Einsteiger. Zirka 30 Teilnehmer lernten vor al-
fortgeschrittenen Shell-Anwendern ein paar Knif- auch einige Shell-Befehle wie awk, sed oder cat
lem den Aufbau von Gimp und die einzel-
fe der Bash zeigen, wobei er dies vor allem mit hinzu. Dabei konnte man zum Beispiel lernen,
nen Werkzeuge kennen. Verstärkt wurde auf
Hilfe der Zuhörer tat und diese aktiv in den Dia- dass grep -o nur die gefundenen Suchbegriffe
die wichtigen Auswahlwerkzeuge eingegangen
log miteinbezog. und nicht die ganzen Zeilen ausgibt, strace -c
und wie diese genau funktionieren. Auch die
sehr gut zur Performance-Analyse benutzt wer-
Ebenenverwaltung, ohne die
den kann oder man mittels der Programme Lock-
man bei der Bildbearbeitung in
file (das Paket dazu heißt lockfile-progs) einfach
Gimp nicht auskommt, wurde
Lockfiles und mit „mktemp“ temporäre (eindeuti-
intensiv vorgestellt.
ge) Dateinamen erzeugen kann.
Zum Schluss ging Karsten
Günther, der auch Gimp- Den Abschluss bildete dabei eine Vorstellung
Schulungen abhält, ein wenig von unnützen Shell-Konstrukten, die aus dem
auf die Farbkorrektur von Bil- ubuntuusers-Wiki entliehen war [14].
dern ein, die man als Anfänger
zumindest auch einmal gese- Vieles wurde bei dem Vortrag live getestet (da
hen haben sollte. Dabei wur- Dirk Deimeke den Vortrag aus Zeitmangel nicht
den alle Beispiele sowohl von komplett ausgearbeitet hatte) und mit den Teil-
ihm selbst am Beamer gezeigt nehmern auch erarbeitet.
als auch von den Teilnehmern
nachgemacht. Die Folien, die in Wahrheit aus einer gut ge-
gliederten Textdatei bestanden, sollen später auf
Der Kurs war sehr gut verständ- der Ubucon-Webseite zu finden sein. Die Vorla-
lich und selbst Gimp-Erfahrene ge des Vortrages hat Dirk Deimeke bereits in sei-
Im Hackcenter konnte man untereinander Erfahrungen abseits der
konnten etwas Neues lernen, nem Blog veröffentlicht [15].
Vorträge austauschen.
Entwicklung der Community in den letzten fünf gewinnen gab. Von den fünf ausgelosten Buch-
Jahren vor. preisen gingen daher nur vier weg, da nicht mehr
Personen an der Verlosung teilnehmen wollten,
Danach riefen Adrian Böhmichen und Martin was sehr schade ist.
Gräßlin zum Wiki-Sprint auf, denn für die neue
Ubuntu-Version 9.10 „Karmic Koala“, die Ende Zeitgleich fand auch wieder der beliebte Tux-
Oktober erschienen ist [17], müssen auch wieder Bastelkurs statt, der von Barbara Görner gelei-
zahlreiche Wiki-Artikel getestet und ausgebes- tet wurde, bei dem man entspannt mit Schere
sert werden. Über die provokante Frage „Wieso und Kleber oder einfach nur mit etwas Origami
arbeitet Ihr nicht am Wiki mit?“ wollte man die vier abschalten konnte.
bis fünf Nicht-ubuntuusers-Teammitglieder zur
Diskussion anregen, was man vielleicht verbes- Podcasting mit und über Linux
sern könnte, um die Mitarbeit am Wiki zu erhö- Dirk Deimeke und Roman Hanhart berichteten
hen, da die Beteiligung immer weiter schrumpft. ab 11 Uhr über ihre Arbeit und Erfahrungen beim
Die Burger im Sausalitos waren riesig und
Podcast DeimHart [18], der einmal monatlich ver-
lecker. Die Veranstaltung war etwas weniger be- öffentlicht wird. Vor allem Neupodcaster konnten
sucht als letztes Jahr, das Verhältnis zwi- zahlreiche hilfreiche Tipps mitnehmen.
Social-Event im Sambesi schen ubuntuusers-(Ex-)Teammitgliedern und
Bereits letztes Jahr fand das Social-Event im ubuntuuser-Nutzern war aber wieder sehr un- Neben der Planung eines Podcasts
Sambesi statt und bis auf die etwas herausge- ausgewogen, obwohl es am Ende auch etwas zu (Themenfindung, Gestaltung und Koordination),
forderte Bedienung war es sehr schön. Vor allem
das Essen (Strauß, Springbock, Zebra und Kro-
kodil) war außergewöhnlich und wurde an so gut
wie jedem Tisch bestellt. Dabei unterhielt man
sich wieder über Ubuntu-Themen aber auch al-
les andere abseits davon.
Sonntag, 18.10.2009
ubuntuusers.de-Vortrag
Aufgrund eines nicht funktionierenden Weckers
war der Sonntagmorgen etwas hektischer als ge-
plant, dennoch schaffte ich es noch einigerma-
ßen pünktlich zur ubuntuusers.de-Veranstaltung
kurz nach 9 Uhr. Andreas Behle stellte zuerst die
Historie des ubuntuusers.de-Portals [16] und die Beim Tux-Bastelkurs gab es wieder zahlreiche Möglichkeiten, sich kreativ auszutoben.
wozu zum Beispiel ein breitgefächertes Themen- Als Software wird Audacity für die Übertragung Vor-Ort-Anmeldungen gab. Insgesamt wurden
gebiet mit einzelnen Spezialisierungen pro Folge und Bearbeitung der Daten eingesetzt. Bei der zur Hochzeit am Samstagnachmittag bis zu 200
oder eine ausführliche Recherche zählt, wurde Wandlung in MP3 hat sich laut Hanhart gezeigt, Zuhörer in den Räumen gezählt. Die 48 freien
auch auf die verwendete Hard- und Software dass der Lame-Encoder für MP3s aber eine Slots waren mit zweistündigen Vorträgen zu be-
eingegangen. Bei Deimhart wird dabei ein Auf- schlechte Qualität abliefert und man daher bes- legen, in die dann am Ende 38 Stück auf sechs
nahmegerät von Zoom benutzt, das dank einge- ser eine OGG-Datei erstellt und diese dann über Räume aufgeteilt wurden. Dies hatte aber auch
bauten Verstärkers und A/D-Wandler viel Arbeit das Programm Soundconverter nach MP3 kon- den Nachteil, dass man sehr viele Vorträge nicht
abnehmen kann. Ob die Qualität wirklich so gut vertiert. anhören konnte, weil diese zeitgleich mit ande-
ist, kann man sich bei DeimHart sicherlich bald ren lagen. Daneben waren die Räume teilweise
anhören, da Roman Hanhart mehrere Ubucon- Insgesamt hielt ich dies für den besten Vortrag nicht ausreichend dimensioniert, sodass in eini-
Vorträge aufgenommen hat und nach der Bear- der Ubucon, da Dirk Deimeke und Roman Han- gen Vorträge die Zuhörer stehen mussten.
beitung bei RadioTux [19] zur Verfügung gestellt hart ein echt gut eingespieltes Team sind, die
hat. Auch der Podcasting-Vortrag wird zu einem sich ihre Sätze fast schon gegenseitig ergänzen Laut Julius Bloch, Leiter des Ubuntu-DE-
Podcast ausgearbeitet – sozusagen ein rekursi- können. Das erklärt auch, wieso der Podcast der Messeteams, war die Veranstaltung ein großer
ves Podcasting. beiden so locker und natürlich daherkommt. Erfolg, nur wird die nächste Ubucon 2010 vor-
Die Podcasts sind später aussichtlich nicht in Göttingen stattfinden, wenn
auf der Seite von Deim- eine andere gute Örtlichkeit (vorzugsweise eine
Hart zu finden. größere Universitätsstadt) gefunden wird.
[7] http://impressive.sourceforge.net/
[8] http://itexmac.sourceforge.net/SyncTeX.html
[9] http://www.ubucon.de/begleitmaterial
[10] http://www.deesaster.org/latex-einfuehrung.php
[11] http://www.deesaster.org/latex-magazinerstellung.
php
[12] http://wiki.ubuntuusers.de/Shell/Tipps_und_
Tricks
[13] http://www.deimeke.net/dirk/blog/index.php?
/archives/1935-Praesentationstechnik-....html
[14] http://ubuntuusers.de/
[15] http://ikhaya.ubuntuusers.de/2009/10/29/ubuntu-
9-10-karmic-koala-ist-erschienen/
[16] http://deimhart.net/
[17] http://blog.radiotux.de/2009/10/25/magazinsen
dung-zur-ubucon-2009/
[18] http://verein.ubuntu-de.org/
[19] http://ikhaya.ubuntuusers.de/2009/10/23/
nachlese-zur-ubucon-2009-1714/
Autoreninformation
Das Gruppenfoto spiegelt nicht die tatsächliche Teilnehmerzahl wieder. Dominik Wagenführ ist ehemaliges
Teammitglied von ubuntuusers.de
Jahr wird aber vielleicht über einen etwas freie- L INKS und daher sehr mit der Community
ren Zeitpuffer nachgedacht, sodass auch ein- verbunden. Durch den Einsatz von
stündige Vorträge möglich sind. [1] http://www.ubucon.de/ LATEX bei freiesMagazin waren seine
[2] http://tug.org/texlive/ Vorträge zu dem Thema auf der
Schade war auch, dass – wie schon im letzten
[3] http://www.tug.org/texlive/tlmgr.html Ubucon eine Selbstverständlichkeit.
Jahr – das Gruppenfoto erst am Sonntag nach
der Abschlusskundgebung gemacht wurde und [4] http://code.google.com/p/texworks/
nicht am Samstag Mittag, als die meisten Leute [5] http://code.google.com/p/gummi/
auf der Ubucon zugegen waren. So zeigt das Bild [6] http://www.freiesmagazin.de/freiesMagazin-2009-
Diesen Artikel kommentieren
nur einen Bruchteil der wirklichen Teilnehmer. 10
S
Programmierwettbewerbs [1] gab es einem keine Wahl außer den Grafiktreiber auf Zielflagge erreicht)
weitere Fragen und die Bewertung eine Version zu aktualisieren, mit der 3-D resp. Z – Anzahl der aus den gewählten Karten di-
steht nun auch fest. OpenGL korrekt unterstützt wird. rekt entstandenen Züge bei gewonnenen Spie-
len
Häufig gestellte Fragen Wieso darf man nur in einer Kategorie teil-
nehmen? Y – Anzahl der vom Spielfeld entstandenen Zü-
Hinweis: Die Webseite mit den Details zum ge bei gewonnenen Spielen
Wettbewerb wurde bereits entsprechend geän- Der Gewinner aus der Kategorie „schwer“ wür- K – Anzahl der gewählten Karten bei gewon-
dert [2]. Daneben wurde auch eine extra Beitrag de ansonsten mit hoher Wahrscheinlichkeit auch nenen Spielen
mit diesen Fragen verfasst, der ständig aktuali- gleich die Preise für „mittel“ und „leicht“ einheim-
siert wird [3]. sen, was wir vermeiden wollen. Details
Und nun noch einmal im Detail: Wichtig ist zu-
Kann man von einem Schieber in eine Was passiert, wenn zu wenige Program- erst, dass überhaupt nur die gewonnenen Spiele
Schrottpresse geschoben werden? mierer in einer Kategorie teilnehmen? S , also die, in denen der Roboter das Ziel erreicht
Nein. Da sich Presse und Schieber gleich- Sollte das passieren, wird der Preis an den hat, gewertet werden. Für Spiele, bei denen der
zeitig bewegen, kann man nie direkt von einem Zweitplatzierten aus der nächsthöheren Kate- Roboter zerstört wurde oder die Karten ausge-
Schieber in eine Presse geschoben werden. gorie vergeben (mit Ausnahme der Kategorie gangen sind, gibt es keine Punkte - weder positi-
„GUI“). ve, noch negative. Nach wie vor gilt aber die 75-
Gibt es einen definierte Rückgabewert für Prozent-Hürde, dass also die KI bei mindestens
die KI? 75 % aller Spiele (auf allen Spielbrettern) ins Ziel
Bewertung
Nein, es gibt nur 0 oder nicht 0. Man sollte nur Die Formel, um die Punkte später zu berechnen, gekommen sein muss, um überhaupt teilnehmen
dann einen Wert ungleich 0 zurückliefern, wenn sieht wie folgt aus: zu dürfen. Das heißt auch, dass es auf einzelnen
die KI Probleme hat, denn dies führt automatisch ggf. „schweren“ Spielbrettern auch mal weniger
Y sein darf.
zu einem kompletten Spielabbruch. 2MS − Z + +K
P= 2
10 Für jedes gewonnene Spiel gibt es eine Grund-
Beim Starten der GUI (nicht des GUI-
punktzahl M , die sich aus dem Mittel der ge-
Helpers) bekomme ich einen Fehler der Art „X
Was heißt das nun in Deutsch? Zuerst eine Be- brauchten Züge aller Teilnehmer (in der jewei-
Error of failed request: BadMatch (invalid pa-
schreibung der einzelnen Buchstaben: ligen Spielstufe natürlich nur) bei gewonnenen
rameter attributes)“. Hab ich was kaputt ge-
Spielen ergibt. Das heißt, wenn die Gesamtheit
macht?
P – Punktezahl insgesamt der Spieler recht lange unterwegs ist, ist M recht
Vermutlich unterstützt der aktuelle Grafikkar- M – Mittelwert der Anzahl aller Züge aller Spie- groß und damit auch der Grundwert. Ist das Teil-
tentreiber eine genutzte OpenGL-Funktion nicht ler von gewonnenen Spielen nehmerfeld flott, sinkt die Grundpunktzahl.
Leserbriefe
Für Leserbriefe stehtunsere E-Mailadresse künstliche, sprachliche Distanz aufzubauen. Au- lichkeit oder Geringschätzung zu tun. Gerade im
zur Verfügung – wir ßerdem ist das auch irreführend, freiesMagazin internationalen Kontext ist ein „Sie“ in Meetings
freuen uns über Lob, Kritik und Anregungen zum hat doch schon öfter bewiesen, dass sich Leser eher fremd und hinderlich und schafft eine wenig
Magazin. einbringen können und deren Meinung zählt – sinnvolle Distanz (und teilweise Unwohlsein bei
warum dann eine Distanz? ausländischen Kollegen oder Dienstleistern).
An dieser Stelle möchten wir alle Leser ausdrücklich
ermuntern, uns auch zu schreiben, was nicht so gut Mir würde nur ein Grund für das Sie einfallen: Es Wer keine Kinderstube genossen hat und simple
gefällt. Wir bekommen sehr viel Lob (was uns natür- wirkt professioneller, bekannte Print-Medien (die Regeln des Miteinander nicht kennt, wird dies mit
lich freut), aber vor allem durch Kritik und neue Ideen übrigens unfrei sind) siezen ja auch. Ich glaube einem „Sie“ auch kaum verbergen können.
können wir uns verbessern. aber nicht, dass dies der einzige Grund ist. Wäre Thomas Weller
schön, wenn man Ihre (wenn mich jemand bittet
Leserbriefe und Anmerkungen
ihn/sie/es (Dominik als Autor des Vorworts, die Ich bin der Meinung, dass freiesMagazin trotz
Siezen oder Duzen Redaktion oder freiesMagazin . . . ) zu siezen, bin seiner „Open-Source-Verwandtschaft“ bei einem
Das Thema Du vs. Sie beschäftigt mich auch ich dann doch noch so höflich und tu es auch) förmlichen Sie bleiben sollte. Wir haben es mit
immer wieder. Zum Vorgehen bei freiesMagazin Gründe fürs Siezen dazu erfahren könnte. einem Magazin zu tun und dort gehört sich ein
kann ich sagen, dass ich immer wieder irritiert „Sie“. Sollte sich freiesMagazin in nächster Zeit
bin, dass ich konsequent mit “Sie” angespro- Ein Kompromiss wäre natürlich, wenn man es zu einem internen Club- oder Vereinsnewsletter
chen werde. Ich denke das ist eher von Nachteil, dem Leser überlassen würde, ob er gesiezt wer- entwickeln, würde ich das „Du“ allerdings für an-
als dass es Professionalität oder Ähnliches aus- den will, oder nicht. Dies sagt man offen, und gemessen halten.
drücken würde. wenn ein Leser in einem Leserbrief siezt, so
siezt man zurück, andernfalls duzt man ihn eben. Trotzdem würde mich ein „Du“ in Zukunft auch
Mir wäre also das Du *viel* lieber. Zumindest im
Im Magazin selber sollte man laut den Autoren- nicht davon abhalten, bei Euch/Ihnen mitzulesen.
E-Mail-Kontakt.
Richtlinien ja eh keine Anrede verwenden – Aus- :) Marco Ilgner
Im Magazin selbst könnte von mir aus das Sie nahmen sind da natürlich das Vorwort und die
bleiben, da sehe ich nicht das Problem. Leserbriefe. Keba (Kommentar) Es wirkt einfach etwas befremdlich, in „un-
Markus Schnalke serem Umfeld“ mit „Sie“ angesprochen zu wer-
[Die] Frage stellt sich mir täglich im Berufs- den. Unter Technikern gehört das „Du“ ja so-
Ich finde, dass man sich im Internet (zumin- leben – obwohl ich in den vergangenen Jahren wieso schon zum Standard (jedenfalls kenne ich
dest in der FOSS-Gemeinde) duzen sollte. FOSS eine Tendenz in Richtung „Du“ erlebe. Mir ent- keinen Techniker, weder intern noch extern, mit
hat etwas von Community, von miteinander arbei- spricht dieser Weg sehr, empfinde es nicht als dem ich mich siezen würde) und in der Online-
ten. Jeder kann theoretisch seine Ideen überall „lapidar“ oder sonst irgendwie nachteilig. Auch Kommunikation gilt es sogar als Zeichen der Di-
einbringen. Auch wenn das in der Praxis nicht im- hat es meines Erachtens nichts mit einer Stel- stanziertheit und Ablehnung, wenn man jeman-
mer so toll funktioniert, find ich es sinnlos, eine lung im Unternehmen oder mit impliziter Unhöf- den siezt.
Zudem gehören wir ja alle mehr oder weniger der dem Geschlechterkram entledigen ;) (zumindest zum Thema „Sie vs. du“. Klar, diese Frage be-
Gruppe der Linux-User an (oder sind zumindest teilweise). Steffen (Kommentar) antwortet sich immer über den persönlichen Ge-
Linux und FLOSS gegenüber nicht abgeneigt) schmack. Hielten wir in der Vergangenheit das
und Personen, die der selben Gruppe angehören, Die meisten Menschen sprechen mich mit Sie Sie schlicht für die angemessene und höfliche
duzen sich für gewöhnlich ja auch. :) und meinem Nachnamen an. Das ist natürlich et- Form der Anrede, so sind wir nun durch Ihre An-
was unpersönlich. Diesen Namen hatten schon regungen zum Kurswechsel bereit. Ohne weitere
Ich hätte also kein Problem damit, wenn Sie (ich Umschweife: Wir bleiben in freiesMagazin beim
mein Vater, mein Großvater und auch seine Vor-
duze niemanden, der mir nicht das „du“ anbie- bewährten Sie, werden aber in der direkten Eins-
fahren. Meine Söhne heißen ebenfalls so. Man
tet oder von sich auch mich einfach duzt *g* zu-Eins-Kommunikation mit Autoren und Lesern
weiß also nicht immer genau, wer gemeint ist.
– so viel Respekt muss meiner Meinung nach auf das Du zurückgreifen, so es denn gewünscht
schon sein) auf das „Du“ umschwenken würden. Als besonders höflich empfinde ich es, wenn man wird. Wir sehen in diesem Kompromiss die beste
:) Dirk Sohler (Kommentar) mich mit meinem Vornamen Wolfgang und dann Lösung sowohl für Du- als auch Sie-Befürworter.
natürlich auch mit „Du“ anspricht. In der Ver- Thorsten Schmidt
Durch meine Mitgliedschaft bei der LUSC wandtschaft, im Freundeskreis und im Verein ist
(Linux User Schwabach) komme ich sehr viel das üblich.
mit anderen Leuten aus der Linux-Community in grep
Kontakt. Dort ist eigentlich generell das „Du“ an- Meiner Ansicht nach sind wir Linux-Nutzer (oder Gerade für ps ist grep nicht nötig und nicht
gesagt. Aber auch bei den Treffen der Ubuntu- alle Computerfreaks?) eine große Gemeinschaft geeignet. Zum einen, nicht geeignet insofern, als
user in Nürnberg ist dies so. Egal, ob Rechtsan- und wir sollten uns duzen. Es ist höflich, persön- dass grep sich regelmäßig selbst findet:
walt oder Bauarbeiter. Dies hat nichts mit Ach- lich und einfach nett. Es erhöht auch das Zusam-
$ ps ax | grep firefox
tung zu tun, sondern es gibt eher einen unge- mengehörigkeitsgefühl.
13368 ? Ssl 18:29 /usr/lib/firefox y
zwungenen Lebensstil wider, den wir, denke ich,
Ach ja, bin kein Teenie mehr, mein Geburtsjahr -3.0.14/ firefox -P default
alle befürworten. Peter Botschafter
liegt vor 1950. 19958 pts /3 R+ 0:00 grep firefox
Oh bitte, hört endlich mit diesem Gesieze auf. zum anderen, weil ps schon einen Schalter hat,
Also Mut zu mehr Persönlichkeit und Höflichkeit.
Ich kann’s nicht mehr ertragen. [Ich bin] dafür, um einen namentlich bekannten Prozess zu fin-
Lasst uns duzen. Wolfgang Grimm
dass Ihr endlich mit dem Duzen anfangt, so wie den:
sich das im Web gehört. Und auch sonst über-
all gehören sollte. Ich finde, dass die englische Ich würde es mir auch wünschen, geduzt zu $ ps -C firefox
Sprache uns da einen großen Schritt voraus ist: werden. Man kann auch trotz Duzen sehr förm- PID TTY TIME CMD
Da gibt’s den Mist gar nicht erst (und auch keine lich bleiben und Informationen überbringen. ;) 13368 ? 00:18:46 firefox
zufällige Verteilung von der/die/das ). Alex (Kommentar)
Sucht man nur die pid, dann gibt es auch das fer-
*nachdenk* Wär doch mal was, freiesMagazin in Vielen Dank noch einmal an dieser Stelle tige Kommando pidof , und um einen Prozess
Englisch. :) Damit würdet Ihr Euch auch gleich für die zahlreichen Antworten auf unsere Frage per Name zu killen pkill.
X-Fehler suche ich auch mit grep, wobei ich er- { [Bei] VirtualBox [gibt es] eine Open-Source-
wähnen darf, dass man grep -e zu egrep ab- ps aux | grep --color = always "y Edition und eine unfreie Closed-Source-Version.
kürzen darf und dass man alternative Muster mit $1" | grep -v "grep" Die Open-Source-Version „VirtualBox OSE“ steht
einem Oder (|) verknüpfen kann. Mein X-Fehler- } unter der GPLv2 und darf entsprechend einge-
Skript sieht ganz ähnlich aus: setzt werden – jedoch ist man auf sich allein ge-
Dominik Wagenführ stellt und erhält keinerlei Support seitens SUN
$ egrep "^\( EE|WW|NI |\?\?\) " /var/y (oder sollte ich lieber Oracle sagen?). Normaler-
log/Xorg .0. log Virtualisierung mit VirtualBox weise muss die Version auch selbst kompiliert
Vielen Dank für den tollen Artikel – persön- werden, jedoch bieten einige Distributionen fer-
Die Fragezeichen muss man als Sonderzeichen
lich hätte mich interessiert, ob das Produkt „Vir- tige Pakete an. Die Closed-Source-Version ent-
maskieren. Stefan W. (Kommentar)
tual Box“ auch für professionelle Lösungen in hält mehr Features [1]. Diese ist jedoch nur für
Unternehmen verwendet werden kann. Konkret Privatanwender kostenlos. Firmen dürfen diese
Sie haben Recht, was die extra Befehle an-
würden wir gerne einen „Lizenzserver für CAD- Enterprise-Version nicht kostenlos einsetzen!
geht, aber ps -C findet einen Prozess nur, wenn
Plätze“ (also eine Sache die nur unter Windows
Sie dessen exakten Namen kennen, wie Rainer Bei VMware Server verhält es sich ähnlich. Es
läuft) auf unserem Linux-Server laufen lassen.
König in einem Kommentar auch anmerkte (Kom- existiert keine Open-Source-Version, jedoch darf
Ich habe hierfür virtuell ein Windows XP Profes-
mentar). Bei ps in Verbindung mit grep müssen VMware Server auch in Unternehmen kostenlos
sional installiert und warte noch auf die Genehmi-
Sie immerhin nur ansatzweise wissen, wie der eingesetzt werden. Support erhält man nur ge-
gung, dieses auf den Linux-Server laufen zu las-
Prozess heißt. gen Erwerb einer „Subscription“ [2]. Ein weite-
sen (ein Test hat gezeigt, dass es funktionieren
pidof und pkill haben ähnliche Probleme. So fin- würde). rer Vorteil von VMware Server ist die Remote-
det pidof einen Prozess nur, wenn man dessen Management-Fähigkeit. Ich persönlich bin der
Ein Kollege meinte, dass das Produkt „nur“ für Meinung, dass auf einem Linux-Server kein X11
exakten Aufruf kennt. pkill dagegen ist etwas zu
Spielereien zuhause ist und im Unternehmen fast zu laufen hat (Bibliotheken für ein ssh-X11-
großzügig, so wird mit
nur VMware verwendet wird. Wäre meine Lösung Forwarding bzw. ein X11-Terminal-Server sind
$ pkill gnome also nun Spielwiese oder ausreichend „professio- okay). Die nicht-grafische Installation von Vir-
nell“? Martin (Kommentar) tualBox gestaltet sich hierbei aufwendiger (vgl.
jeder Prozess beendet, der ein „gnome“ im Na- VirtualBox-Handbuch, Punkt 7.4.2 ff. [3]), wenn
men hat, was etwas zu viel des Guten sein dürf- Das Ganze lässt sich leider nicht in einen Satz auch für einen erfahrenen Linux-Benutzer unpro-
te. zusammenfassen (v. a. nicht, ohne die Gegeben- blematisch, während bei VMware Server keine
heiten ausführlich zu erläutern). Grundsätzlich zusätzliche Konfiguration nötig ist.
Dirk Sohler (Kommentar) hat sich aus diesem
würde ich Ihrem Kollegen allerdings unterstellen,
Grund eine eigene Bash-Funktion geschrieben:
ein Anhänger des Kostenvermutungsprinzips zu Kurzum: jedes Produkt hat seine Stärken und
$ type psgrep sein ;). Erklärung: Bei Dingen, die mehr kosten, Schwächen. VMware ist der Marktführer und
psgrep ist eine Funktion . vermutet man auch mehr Gegenleistung ohne zum Beispiel beim Remote Management weiter
psgrep () dies tatsächlich überprüft zu haben. als SUN. Dennoch spricht nichts gegen den Ein-
satz der kostenlosen Open-Source-Edition, so- selbst einen angibt oder wenn gar keinen Kon- Wichtige im Bunde ist Paul Sottosanti, der die ver-
fern man nicht auf Herstellerunterstützung ange- struktor angibt. schiedenen Spielbretter erstellt hat.
wiesen ist. Florian E.J. Fruth 3. Dann werden nicht Unterverzeichnisse mit
Punkten getrennt, sondern viel mehr Gruppen
L INKS
Korrekturen und Ergänzungen von Klassen (Pakete) von ihren Untergruppen [1] http://www.virtualbox.org/wiki/Editions
Java, Teil 1 – Einführung in eine moderne oder enthaltenen Klassen. [2] https://www.vmware.com/vmwarestore/support.
Sprache, freiesMagazin 10/2009 [4] 4. Zu guter Letzt sollte Java nicht „sehr streng html
Stefan Wagner hat uns darauf hingewie- strukturiert“ sein, sondern natürlich sehr [3] http://download.virtualbox.org/virtualbox/3.0.8/
sen (Kommentar), dass es im Java-Artikel der streng typisiert. UserManual.pdf
letzten Ausgabe einige Ungenauigkeiten und [4] http://www.freiesmagazin.de/freiesMagazin-2009-
missverständliche Formulierungen gab: Zweiter Programmierwettbewerb gestartet,
10
freiesMagazin 10/2009 [4]
1. Der Konstruktor ist, anders als aus dem Arti- Wie uns Martin Menke mitteilte (Kommentar), Die Redaktion behält sich vor, Leserbriefe gegebe-
kel hervorgeht, keine Methode. Er besitzt kei- stammt das Spiel „RoboRally“, welches als Vor- nenfalls zu kürzen.
nen Rückgabewert und man kann auch nicht lage für den Wettbewerb diente, nicht von Bill
für ein vorhandenes Objekt aufrufen. McQuillan allein. Der eigentliche Spieledesigner Die Leserbriefe kommentieren
2. Des Weiteren gibt es einen parameterlosen ist Richard Garfield, Bill McQuillan hat „nur“ die
Konstruktor nur dann, wenn man entweder Entwicklung des Spiels übernommen. Der dritte
Veranstaltungskalender
Messen
Veranstaltung Ort Datum Eintritt Link
World Usability Day Weltweit 05.11.2009 - http://www.worldusabilityday.de
OpenRheinRuhr Bottrop 07.11.-08.11.09 3 EUR http://openrheinruhr.de
Open Source Expo Karlsruhe 15.11.-16.11.09 10 EUR http://openexpo.de
Brandenburger Linux-Infotag Potsdam 21.11.2009 frei http://www.blit.org
KNF-Kongress Nürnberg 22.11.2009 - http://www.franken.de/veranstaltungen/knfkongress
LinuxDay Dornbirn 28.11.2009 frei http://ld.lugv.eu
(Alle Angaben ohne Gewähr!)
Sie kennen eine Linux-Messe, welche noch nicht auf der Liste zu finden ist? Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an
.
Vorschau
freiesMagazin erscheint immer am ersten Sonntag eines Monats. Die Dezember-Ausgabe wird voraussichtlich am 6. Dezember unter anderem mit
folgenden Themen veröffentlicht:
Erstellen geometrischer Skizzen mit kig
Review: Mad Skills Motocross
Es kann leider vorkommen, dass wir aus internen Gründen angekündigte Artikel verschieben müssen. Wir bitten dafür um Verständnis.
Konventionen
An einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung. Diese sind hier zusammengefasst:
$: Shell-Prompt
#: Prompt einer Root-Shell – Ubuntu-Nutzer können hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzen.
y: Kennzeichnet einen aus satztechnischen Gründen eingefügten Zeilenumbruch, der nicht eingegeben werden soll.
~: Abkürzung für das eigene Benutzerverzeichnis /home/BENUTZERNAME
: Kennzeichnet einen Link, der auf eine englischsprachige Seite führt.
: Öffnet eine höher aufgelöste Version der Abbildung in einem Browserfenster.
Kontakt Redaktion
E-Mail Dominik Honnef Thorsten Schmidt
Postanschrift freiesMagazin Dominik Wagenführ (Verantwortlicher Redakteur)
c/o Dominik Wagenführ
Beethovenstr. 9/1 Satz und Layout
71277 Rutesheim Ralf Damaschke Yannic Haupenthal
Webpräsenz http://www.freiesmagazin.de Marcus Nelle Markus Schaub
Sebastian Schlatow
Autoren dieser Ausgabe
Volker Duetsch S.18 Korrektur
Marcel Jakobs S.14 Daniel Braun Raoul Falk
Rainer König S.21 Stefan Fangmeier Johannes Mitlmeier
Mirko Lindner S.8 Karsten Schuldt
Dominik Mäder S.12
Mathias Menzer S.7 Veranstaltungen
Markus Schnalke S.3 Ronny Fischer
Dominik Wagenführ S.28
Logo-Design
Arne Weinberg (GNU FDL)
Dieses Magazin wurde mit LATEX erstellt. Mit vollem Namen gekennzeichnete Beiträge geben nicht notwendigerweise die Meinung der Redaktion wieder. Wenn Sie freiesMagazin
ausdrucken möchten, dann denken Sie bitte an die Umwelt und drucken Sie nur im Notfall. Die Bäume werden es Ihnen danken. ;-)
Soweit nicht anders angegeben, stehen alle Artikel und Beiträge in freiesMagazin unter der GNU-Lizenz für freie Dokumentation (FDL). Das Copyright liegt beim jeweiligen
Autor. freiesMagazin unterliegt als Gesamtwerk ebenso der GNU-Lizenz für freie Dokumentation (FDL) mit Ausnahme von Beiträgen, die unter einer anderen Lizenz hierin
veröffentlicht werden. Das Copyright liegt bei Dominik Wagenführ. Es wird die Erlaubnis gewährt, das Werk/die Werke (ohne unveränderliche Abschnitte, ohne vordere und ohne
hintere Umschlagtexte) unter den Bestimmungen der GNU Free Documentation License, Version 1.2 oder jeder späteren Version, veröffentlicht von der Free Software Foundati-
on, zu kopieren, zu verteilen und/oder zu modifizieren. Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 2.5. Das Copyright liegt bei Randall Munroe.