LUGMOS-News 2006/02 Inhalt: 1. LUGMOS-Intern a) Mailingliste b) RNZ-Ankündigung 2. Zusammenfassung des letzten Treffens vom 8. Februar 2006 a) Webbrowser Mozilla Firefox und seine Erweiterungen b) Installation von dvd:rip c) Samba und das Archive Bit d) Linux From Scratch e) Sprachausgabe f) C-Speicherbelegung 3. Nächstes Treffen a) Schwerpunkt: MP3-Grundlagen und Anwendung b) mitgebrachte Probleme lösen und Neuigkeiten austauschen --- 1. LUGMOS-Intern ================ a) Mailingliste Wer sich bei unserer Liste anmelden möchte, muss lediglich eine Nachricht an folgende Adresse schicken: lugmos-subscribe@linux-sinsheim.de und die Bestätigungs-Nachricht beantworten. Als Mitglied kann man dann Nachrichten an die Adresse lugmos@linux-sinsheim.de schicken, um alle Mitglieder unserer Mailliste zu erreichen. Mit lugmos-unsubscribe@linux-sinsheim.de meldet man sich von der Liste ab. b) RNZ-Ankündigung Die Ankündigung in der RNZ am Dienstag vor unserem Treffen hat wieder ein paar weitere Interessenten angelockt. In Zusammenarbeit mit der BA Mosbach wollen wir dies zur Regel machen. Einen herzlichen Dank schonmal für die zukünftige Unterstützung an die Berufsakademie! 2. Zusammenfassung des letzten Treffens vom 8. Februar 2006 =========================================================== a) Webbrowser Mozilla Firefox und seine Erweiterungen Schwerpunkt waren die Erweiterungsmöglichkeiten des beliebten und innovativen Webbrowsers Mozilla Firefox. Dieser ist für alle gängigen Betriebssysteme verfügbar und hat mittlerweile in Privathaushalten einen Marktanteil von über 30 Prozent erreicht. Der schlanke und schnelle Browser berücksichtigt bei der Darstellung von Webseiten offizielle Standards und kann über sogenannte Erweiterungen viele nützliche Funktionen "hinzulernen". Von den über 1000 verfügbaren Erweiterungen wählten wir einige aus, um sie im praktischen Einsatz zu testen. Vom zentralen Portal für deutschsprachige Erweiterungen - http://www.erweiterungen.de/ - schauten wir beispielsweise folgende Erweiterungen genauer an: * FlagFox * Greasemonkey * All-In-One Gestures * Flashblock * Web Developer Aber auch beim "nackten" Mozilla Firefox gab es noch so manches zu entdecken: * die "versteckten" Konfigurationsmöglichkeiten about:config * die Tastkürzel http://firefox.bric.de/index.php?page=keyboard * Tipps und Tricks http://firefox.bric.de/index.php?page=tips b) Installation von dvd:rip Bei der Installation des im Januar vorgestellten Programms dvd:rip gab es noch einige Probleme. Auf einem Debian-basierten System sollte ein einfaches $ apt-get install dvdrip xcdroast vcdimager ogmtools xvid4conf genügen. c) Samba und das Archive Bit Zu dem im Januar geschilderte Problem mit dem auf executable gemappte Archive Bit konnte kein Hinweis gefunden werden. Es sollte eigentlich einfach funktionieren... ;-) d) Linux From Scratch Weitere Informationen zum kurz vorgestellten LFS-Projekt finden man hier http://www.linuxfromscratch.org/ und die aktuelle Anleitung um ein Linuxsystem von grund auf zu bauen hier: http://www.linuxfromscratch.org/lfs/view/stable/ e) Sprachausgabe Beim anschließenden Essen wurde noch der Sprachsynthesizer "festival" vorgestellt. Die Installation ist sehr einfach $ apt-get install festival speech-dispatcher-festival festvox-rablpc16k aber die Bedienung ist etwas komplizierter. Zur Vereinfachung hat Torsten zwei kleine Skripte geschrieben. 'say' [1] ist ein Filter der Text aus stdin liest und ausspricht. 'xsay' [2] spricht aus, was gerade per X selektiert wurde (benötigt das Programm xclip). Eine weitere schöne Lösung: Diese Seite beschreibt, wie man sich News aus dem Web in MP3 umwandelt, so dass man sie sich mit dem MP3-Player anhören kann: http://tintuc.no-ip.com/linux/tipps/WebNews2Mp3.html f) C-Speicherbelegung Im Januar kam die Frage nach der Speicherbelegung, dem Stackzustand etc. beim Ablauf von C-Programmen und wie beispielsweise Pufferüberläufe ausgenutzt werden können. Um etwas mehr über die low-Level Abläufe in einem C-Programm zu erfahren, sind diese Artikel zu empfehlen: http://doc.bughunter.net/buffer-overflow/smash-stack.html http://www.cs.pdx.edu/~bjorn/CS200/linux_tutorial/ Weiter unten sind ein paar Protokolle meiner eigenen Experimente [3]. Generell lässt sich zusammenfassen, dass Assembler als Zwischenschritt schon vieles klar macht, sofern man Assembler entziffern kann. Weiterhin sind Debugger wie gdb oder das grafische Frontend ddd sehr hilfreich. 3. Nächstes Treffen =================== a) Schwerpunkt: MP3-Grundlagen und Anwendung Neben mitgebrachten Tipps und Problemen schauen wir uns das MP3-Format und die Anwendung der zahlreichen Hilfsprogramme an. Dem Mobilmachen der eigenen CD-Sammlung sollte dann nichts mehr im Wege stehen. Ein paar Anregungen bis dahin: http://de.wikipedia.org/wiki/MP3 http://de.wikipedia.org/wiki/ID3-Tag Encoder: lame oggenc Digital Audio Extraction: cdparanoia id3-Tags: id3, id3ed, id3ren, id3tool, id3v2, kid3 CD-Ripper: jack crip grip abcde mp3-Player: xmms mpg321 cplay Sonstige: mp3gain mp3splt b) mitgebrachte Probleme lösen und Neuigkeiten austauschen Kommentare über die Liste sind erwünscht. [1] /usr/local/bin/say ---------------8<--------------8<--------------- #!/usr/bin/festival --script ;;; apt-get install xclip festival festvox-rablpc16k ;;; try this for singing: ;;; echo "(tts \"/usr/share/doc/festival/examples/songs/america1.xml\" ;;; 'singing)" | festival ;;; echo "(tts \"/usr/share/doc/festival/examples/songs/lochlomond.xml\" ;;; 'singing)" | festival ;;; Because this is a --script type file it has to explicitly ;;; load the initfiles: init.scm and user's .festivalrc (load (path-append datadir "init.scm")) ;;; BE: (voice_rab_diphone) ;;; AE: (voice_kal_diphone) (if (not (member_string "-a" argv)) (voice_rab_diphone)) (tts_file "-") ---------------8<--------------8<--------------- [2] /usr/local/bin/xsay ---------------8<--------------8<--------------- #!/bin/sh /usr/X11R6/bin/xclip -o | say $1 ---------------8<--------------8<--------------- [3] ---------------8<--------------8<--------------- /* hello.c */ #include <stdio.h> main() { printf("hello\n"); } gcc -o hello hello.c ./hello readelf -l hello gcc -v -o hello hello.c gcc -E hello.c gcc -S hello.c as -a --gstabs -o hello.o hello.s ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o hello /usr/lib/crt1.o /usr/lib/crti.o -lc hello.o /usr/lib/crtn.o gdb ./hello (gdb) l break main run info registers p/x $eax The "p" command prints, "/x" indicates the output should be in hexadecimal. type "s" or "step" to step to the next instruction. s pmap -d `pidof hello` --- example1.c void function(int a, int b, int c) { char buffer1[5]; char buffer2[10]; } main() { function(1,2,3); } gcc -S -o example1.s example1.c gcc -o example1 example1.c gdb example1 (gdb) disassemble main ---------------8<--------------8<---------------