Rückschau Chaostreff (49th day of Discord in the YOLD 3174)
Inhaltsverzeichnis
ein Mehr-Tage-Notebook...
das war Jochens Resumee nach einer weiteren Sitzung mit Achims Asus-Notebook. Außerdem mussten wir uns Jochens handlichen Heim-Switch nachholen, weil wir keine LAN-Steckplätze mehr an dem neuen D-Link-Router hatten :-(
Mehr wie immer unter Weiterlesen!
Zangengeburt reloaded part 2...
...um es kurz zu machen: derzeit ist mit Atheros-Wifi-Karten und Linux kein Blumentopf zu gewinnen, also Finger weg. Ein USB-WLAN-Stick mit Ralink-Chip funktionierte sofort ohne Probleme. Dafür hat Achim jetzt auch einen schicken neuen Kernel und KDE- was will man mehr? XD. Es gibt noch die Möglichkeit, die mini-PCI-Karte im Notebook gegen eine andere auszutauschen- Achim will das mal bei seinem Händler probieren. Ausserdem durften wir noch Benjamin willkommen heissen, der Linux auf seinem Acer installieren wollte- das klappte auch, leider ging danach das OS, dessen Name nicht genannt werden darf, nicht mehr. Da das schon der dritte Vorfall dieser Art ist lässt das einen schon aufmerken oder?
Drei-Buchstaben-Domain
Wir haben uns die Domain q0a.de gesichert. Hintergrund: dadurch muss man nicht mehr soviel Tipparbeit leisten um unseren DynDNS-Dienst dyn.metafnord.de zu verwenden. Statt sex.dyn.metafnord.de reicht zukünftig auch ein sex.d.q0a.de. Jochen beklagte sich weiter, dass Eriträa nach wie vor nicht auf Anschreiben reagiert. "Offenbar haben die nur Telefon" :-). Eine TLD - das wär´s natürlich *g*
Lirc und DobiWe
Das hatte sich Doc wohl doch zu einfach vorgestellt- das Kernel-Modul lirc_serial passt wohl nicht ganz zu der ARM-Architektur, es ist für normale Intel-Hardware geschrieben - es unterscheiden sich einfach zuviele Hardware-Merkmale. stesie hat allerdings Blut geleckt und möchte jetzt ein eigenes Kernel-Modul schreiben, bzw lirc_serial anpassen. Interessant ist, dass sobald der TSOP an der seriellen Schnittstelle etwas empfängt, die Interrupt-Handler für die RS232-Schnittstelle aus /proc/interrupts/ komplett verschwinden. Der Interrupt selbst wird also schonmal ausgelöst - man darf gespannt sein ;)
Stellt sich langsam die Frage, ob wir nicht eine DobiWe-Distribution für den iPaq auflegen wollen. Die Domäne dobiwe.de wär' zumindest noch zu haben...
LaTeX
nicht nur bei Fürther LandrätInnen sondern auch bei Studenten und Wissenschaftlern ist LaTeX sehr beliebt, weil sich u.A. damit Formeln sehr schön darstellen lassen.
Andreas gab uns einen kleinen Einführungs-Crashkurs: Eine kleine Demo gibt es hier, Javascript und Flash erforderlich!. Rein Grundsätzlich ist LaTeX eine richtige Programmiersprache (Turing-complete), die eben Dokumente erzeugt. Wir haben uns gleichmal ein solches mit dem Texteditor aus den Fingern gesaugt:
\\documentclass{article} \\begin{document} hallo welt! zweiter Absatz \\begin{itemize} \\item eins \\item zwei \\item drei \\end{itemize} \\section{foo} blafasel \\subsection{foobar} seierblubber end{document}
Dieses nun als hallo_welt.tex gespeichert und dann kann man es weiterverarbeiten. Natürlich ist das auf Dauer zu umständlich, deshalb gibt es z.B. Lyx, einen WYSIWYG-Editor für LaTeX. Wer sich auf DANTE, Deutschsprachige Anwendervereinigung TeX e.V einliest, merkt, dass das ein riesiges Feld ist. Jochen möchte damit z.B. automatisch Rechnungen ausdrucken. Andreas zeigte uns, wie aus Datenbanken automatisch z.B. Vortragsankündigungen und Begleitmaterial generiert werden können - nur zwei von vielen denkbaren Anwendungen...
Kernel-Modul-Howto
Durch sein RFM12@asus-Projekt hat sich stesie an die Entwicklung eines Moduls für den Linux-Kernel gewagt - ein Netzwertreiber musste her. C-Kenntnisse vorausgesetzt ist das Unterfangen gar nicht mal sonderlich kompliziert. Man muss zunächst eine Hand voll (beim broadcom-rfm12 Treiber sind's fünf :- ))Callback-Funktionen schreiben, die vom Kernel gerufen werden, wenn bestimmte Ereignisse eintreten. In konkret diesem Fall sind das z. B. Device initialisieren, starten, stoppen, Paket versenden und Statistik abrufen. Um also ein neues Device zu erhalten, ruft man die Funktion register_netdev und übergibt Zeiger auf die Funktionen und gut ist. Aus dem init-Callback heraus legt man noch ein paar Rahmenbedingungen fest, ob's einen ARP-Header gibt, ob man Multicast kann, usw. Das war's dann eigentlich auch schon, das device erscheint im Userspace.
Wenn der Hardware-nahe Teil des Treibers ebenfalls läuft, wird man auch mal ein paar Bytes empfangen. Die steckt man in einen Socket-Puffer (struct skb_buff) und ruft dann net_rx. Den Rest machen dann irgendwelche Funktionen in den Tiefen des Kernels.
Hilfsreich ist es auch, einfach in den anderen Treibermodulen zu spicken. Es gibt dort wirklich reichlich Treiber. Aufpassen muss man nur, in welchem Kontext verschiedene Funktionen gerufen werden. So ist zum Beispiel beim alloziieren von Speicher aus einem Interrupt-Handler Vorsicht geboten (man muss dort GFP_ATOMIC setzen), wenn man bei einem Treiber "klaut", der im normalen Programmfluss um Speicher bettelt, hat man unter Umständen ein Problem. Insbesondere auf einem Router ist's dann etwas blöd, wenn der Kernel in ein panic läuft und man die Meldung nicht sieht ...
KO/Pi und KA/Pi
steht für KOrganizer und KAdressbook Platform independant will heissen, es läuft auch auf embedded-Versionen. Nachdem Doc nach Update auf KDE 3.5.9 wieder einmal festellen musste, dass das opensync-Framework nicht mehr funktioniert (hat es das je richtig?) war er echt glücklich darauf zu stossen: die Programme benutzen dasselbe Fileformat wie die "großen" KDE-Versionen also ical und vcard (*.ics und *.vcf) und das Syncen verläuft wesentlich zuverlässiger, weil das umwandeln in xml unter Opie-PIM wegfällt.
Außerdem wird nur das gesynct, was auch erkannt wird- jetzt werden nicht jedesmal beim Syncen z.B. die Verschlüsselungseinstellungen für GnuPG für einzelne Kontakte im Adressbuch überschrieben wie es bei Opie-PIM der Fall war