Linux Tipps






Standard-Browser einstellen (u.a.) für Evolution:
gconftool-2 --set /desktop/gnome/url-handlers/http/command -t string "firefox %s" und gconftool-2 --set /desktop/gnome/url-handlers/https/command -t string "firefox %s". Für andere Browser den Befehl entsprechend abändern, z.B. "opera %s" oder "mozilla %s".





Standard-Browser in Sylpheed(-claws) einstellen:
In Sylpheed "Einstellungen" → "Allgemeine Einstellungen" → Registerreiter "Weiteres" → Webbrowser: MozillaFirebird '%s'.





In MozillaFirefox bei Klick auf einen mailto-Link den gewünschten Standard-Emailclient laden:
Zuerst von Mozdev die mozex-Erweiterung installieren. Dann im Menü "Tools" auf "Options", dort auf "Extensions", "Mozex" markieren und auf "Settings" klicken. "Intercept mailto: clicks" aktivieren und bei Mailer: folgendes eintragen:
- um Evolution zu starten: evolution mailto:%A?Subject=%S&Cc=%C&body=%B
- um Sylpheed-claws zu starten: sylpheed-claws --compose mailto:%a?subject=%S&cc=%c&body=&B

In Firefox ab Version 1.0 genügt es, die Konfiguration mit about:config aufzurufen und einen neuen String-Wert hinzuzufügen (Rechtsklick):
Preference name: network.protocol-handler.app.mailto
Value: /usr/bin/thunderbird





Um in Opera den Standard-Mailclienten zu Öffnen:
In den Einstellungen von Opera folgenden Befehl eintragen:
- für Sylpheed-claws: sylpheed-claws --compose [%r]
- für Evolution: evolution [%r]





Was ist "Gentoo"?
Gentoo [jh en t u:] ist eine Pinguin-Rasse, die zwar von kleiner Statur sind (ca. 80 cm), aber sich erstaunlich schnell bewegen können - auf kurzen Distanzen sogar schneller als Menschen!
Gentoo Linux nutzt ein Paketverwaltungssystem namens Portage, ähnlich den BSD Ports. Dadurch wird eine große Flexibilität von der Installation bis zur Wartung der Software erreicht. Während des Kompilierens kann man z.B. durch USE-Flags oder Abhängigkeiten eigene Optionen festlegen. Des Weiteren kann das komplette System aus den Quellen mit den jeweils gewünschten Optimierungen gebaut werden. Und es werden ausschließlich nur die gewünschten Pakete installiert, sonst nichts - das Ergebnis ist also ein "einmaliges" System nach den eigenen Wünschen.





Um unter Linux als User den Rechner herunterzufahren oder neu zu starten
muss "sudo" installiert sein (bei Gentoo: emerge sudo :-).
Mit visudo erstellt man die Konfigurationsdatei - ein Beispiel für den "shutdown"-Befehl (Ausschnitt):

# User alias specification
User_Alias SHUTDOWNER = user
# Cmnd alias specification
Cmnd_Alias SHUTDOWN = /sbin/shutdown
# Default specification

# User privilege specification
root   ALL=(ALL) ALL
SHUTDOWNER ALL = (root) NOPASSWD: SHUTDOWN
# Uncomment to allow people in group wheel to run all commands
%wheel     ALL=(ALL)      NOPASSWD: ALL
....

Die Option "NOPASSWD" ist ein gewisses Sicherheitsrisiko... (kann auch weggelassen werden).
Nun kann ein User den Rechner z.B. mit sudo /sbin/shutdown -r now rebooten, ohne vorher zu "suen".





OpenOffice:
Bevor OpenOffice installiert wird, kann man bei Bedarf Java installieren, zu empfehlen ist blackdown-jdk. Unter Gentoo: emerge dev-java/blackdown-jdk.
OpenOffice kann unter Gentoo mit emerge openoffice bezogen werden. Die deutschsprachige Version erreicht man mit dem Setzen der Variable LINGUAS="de" in der Datei /etc/make.conf. Dieses doch recht große Paket benötigt aber viel Zeit zum Kompilieren, die meines Erachtens keinen wirklichen Vorteil in der Stabilität oder Geschwindigkeit im Vergleich zum vorkompilierten Paket mit sich bringt. Daher empfehle ich die binäre Version emerge openoffice-bin.
Die einzelnen Programme können nun von der Konsole aus über folgende Befehle gestartet werden:
- oowriter2 → Textverarbeitung
- oocalc2 → Tabellenkalkulation
- ooimpress2 → Präsentation
- oodraw2 → Zeichenprogramm
- oomath2 → Formelprogramm





Mehrere X-Sessions:
Um eine zweite X-Session zu starten: In einer zweiten Bash einloggen, und mit startx -- :1 zweite Session starten. In diese kann man dann mit (Strg+)Alt+F8 wechseln. Eine dritte X-Session dementsprechende mit startx -- :2 starten, in welche dann mit (Strg+)Alt+F9 gewechselt werden kann.





Packen:
Um unter Linux ein gepacktes zip-File zu erstellen, genügt folgendes Kommando in der Konsole: zip -9 -r Ziel Ursprung , wobei das Ziel ohne die Endung ".zip" angegeben werden muss, und der Ursprung z.B. ein Ordner sein kann.
Um ein zip-File zu entpacken, genügt der Befehl unzip Dateiname -d Zielordner , wobei auch hier der Name der Quelldatei ohne Dateiendung ".zip" angegeben werden muss.





Fluxbox:
Um den Hintergrund in Fluxbox auf Dauer zu setzen, einfach in .fluxbox/init session.screen0.rootCommand: fbsetbg -l abändern. Damit wird das letzte gewählte Wallpaper bei jedem Start wieder gesetzt.





Atomzeit:
Damit der Rechner stets die genaue Zeit hat, kann man ihn mit einem Zeitserver syncronisieren. Dazu benötigt man rdate, das man mit emerge rdate installiert. Der Befehl für die Zeitaktualisierung lautet nun z.B. rdate -s ntp2a.mcc.ac.uk. Eine Liste mit öffentlich verfügbaren Zeitservern gibts unter diesem Link.
Dieser Abgleich lässt sich auch automatisieren (als Cron-Job): Im Ordner /etc/cron.weekly eine neue Datei anlegen mit dem Namen "time.cron" - und mit folgendem Inhalt:
#!/bin/sh
rdate -s ntp2a.maa.ac.uk
Nun wird die Uhrzeit wöchentlich abgeglichen.

Alternativ kann dies auch über das Paket "ntpdate"erledigt werden (apt-get install ntpdate). Die Datei für den Cronjob sieht dann etwa so aus:
#!/bin/sh
/usr/bin/ntpdate -t 60 ptbtime1.ptb.de ptbtime2.ptb.de; /sbin/hwclock -u --systoh





Festplatten-Ausnutzung:
Der aktuelle Platzverbrauch der Festplatte kann mit dem Befehl df -h angezeigt werden. Dafür bei Bedarf nicht gemountete Partitionen einhängen.
Der Verbrauch pro Verzeichnis kann mit du -sh /* ermittelt werden.





Speicher-Ausnutzung:
Den aktuellen Speicherverbrauch kann man mit free -m anzeigen lassen, die Option "-m" bewirkt die Anzeige in Megabytes.





Backup einer Partition:
Für das Backup einer Partition gibt es verschiedene Möglichkeiten. Eine davon nimmt "dd" in Verbindung mit gzip. Es werden 650MB große Teile erstellt.
Backup erstellen: dd if=/dev/hdaX bs=512 | gzip -9 | split -b 650m > /[Verzeichnis]/backup_hdaX.gz
Backup zurückspielen: gzip -c -d /[Verzeichnis]/backup_hdaX.gz* | dd of=/dev/hdaX bs=512





Gentoo Portage Tree updaten:
Der Portage Tree in /usr/portage, die Liste der "Bauanleitungen" für verschiedene Pakete, lässt sich einfach mit emerge --sync abgleichen.





Gentoo System Update:
Mit Hilfe des Befehls emerge -u system werden die Kernpakete des Systems zu von den Gentoo-Entwicklern empfohlenen Versionen aktualisiert. Es werden also nur essentielle und für den Betrieb wichtigen Pakete aktualisiert.





Gentoo Komplett Update:
Mit emerge -Duvat world werden alle Pakete (inkl. Abhängigkeiten) aktualisiert. Pakete, die mit emerge installiert wurden, werden in der Datei "world" automatisch notiert - und somit mit diesem Befehl aktualisiert (falls ein neueres Paket vorhanden ist).





Gentoo System aufräumen:
Mit Portage können bei Bedarf unterschiedliche Versionen eines Paketes installiert werden. Dabei wird jedoch ein Großteil des älteren Paketes überschrieben, und es bleiben z.B. Dokumentationsdateien oder sonstige für das System unwichtige übrig, was Festplattenplatz verschwendet. Mit emerge clean wird anhand der world-Datei entsprechend aufgeräumt. Sind alle Abhängigkeiten korrekt definiert, wird emerge clean nur veraltete Pakete vom System entfernen und nicht solche, deren Entfernung die Stabilität des Systems beeinträchtigen würde.





Gentoo komplett neu kompilieren:
Mit emerge -eD world werden alle installierten Pakete neu kompliliert. Dafür ist es evtl. sinnvoll, zuerst den Kompiler mit emerge -u gcc zu aktualisieren.





Festplatten mit SMART auslesen:
Dafür gibt es ein Tool namens smartmontools (für Gentoo: emerge smartmontools), welches Daten von Festplatten mit SMART-Unterstützung auslesen kann. Nach der Installation werden die Daten mit dem Befehl smartctl -a /dev/hda angezeigt.
U.a. Power_On_Hours (Gesamtlaufzeit der Festplatte), Temperature_Celsius (Temperatur der HDD) - wobei diese Werte trotz allem mit Vorsicht zu genießen sind...





No message digest entry found...:
Sollte beim emergen eines Paketes (unter Gentoo) diese Fehlermeldung kommen (am Beispiel von Mozilla):

!!! No message digest entry found for file "enigmail-0.74.3.tar.gz."
!!! Most likely a temporary problem. Try 'emerge rsync' again later.
!!! If you are certain of the authenticity of the file then you may type
!!! the following to generate a new digest:
!!! ebuild /usr/portage/category/package/package-version.ebuild digest

Der Dateiname hängt natürlich von dem Paket ab... Lösung: Wenn man sich sicher ist, dass die korrekte Datei heruntergeladen wurde, kann man das ebuild selbst erstellen. Der Befehl für Mozilla wäre in diesem Fall: ebuild /usr/portage/net-www/mozilla/mozilla-1.3-r2.ebuild digest
Den korrekten Pfad zu der *.ebuild muss man manuell suchen (bzw. nach dem ersten emerge-Befehl ablesen).





Gentoo-Installation von Knoppix:
Ja, das geht ;-) Der Vorteil von dieser Installationsmethode liegt einfach darin, dass man während der doch recht zeitaufwendigen Gentoo-Installation noch nebenher mit Knoppix surfen kann *g*.
Als erstes von der Knoppix-CD booten, eine Konsole öffnen und darin sudo passwd root eingeben um das Root-Passwort zu setzen. Dann mit su zu root wechseln und usermod -d /root -m root ausführen. Damit wird das Home-Verzeichnis von /home/root (bei Knoppix) auf /root gesetzt (wie bei Gentoo).
Damit alle Änderungen des usermod-Kommandos korrekt übernommen werden, zuerst exit und dann wieder mit su root werden.
Nun mit Kapitel 4 der Installationsanleitung (Vorbereiten der Festplatte - hier für x86) fortfahren. Das Mounten des proc-Dateisystems in Kapitel 8.5 muss jedoch anstelle der Befehle in der Anleitung mit mount -o bind /proc /mnt/gentoo/proc und mount -o bind /dev /mnt/gentoo/dev erfolgen!





Doppelte Pakete unter Gentoo löschen:
Mit emerge -pc zuerst überprüfen, welche Pakete doppelt vorhanden sind und entfernt werden können. Ist alles korrekt, werden diese (überflüssigen) Pakete mit emerge -c gelöscht.





Laufende Prozesse anzeigen lassen:
Das ist mit ps -A (oder ps aux möglich. Eine Live-Anzeige der Prozesse ermöglich top. Sollte sich jemals eine Applikation aufgehängt haben, kann man damit die Prozess-Nummer ermitteln, und dann die Anwendung mit kill -9 [Prozess-Nr] beenden. Oder aber mit killall [Prozess-Name] mehrere laufende Prozesse auf einmal beenden.





Problem nach gcc-Update:
Sollte nach einem Update des Kompilers "gcc" folgende Fehlermeldung erscheinen:

/usr/bin/python: error while loading shared libraries:
libstdc++.so.5: cannot open shared object file: No such file or directory

Keine Panik ;-) - hier sollte es reichen, die Pfade mit ldconfig wieder zu aktualisieren!





World-File regenerieren:
Falls im World-File /var/cache/edb/world installierte Pakete fehlen sollten, kann man diese entweder manuell dort einfügen, oder sich dieses File mit regenworld neu generieren lassen.





Kompilierdauer anzeigen lassen:
Das ist nachträglich möglich! Zuerst ein emerge genlop, und dann kann man die Dauer mit z.B. genlop -t xfree anzeigen lassen.





Mit mplayer DVDs ansehen:
Dies ist leider nicht so ohne weiteres möglich, da der Player den CSS-Schutz der DVD zwecks fehlender (teurer) Lizenz der Entwickler knacken muss. Dies kann zwar mit libdvdcss umgangen werden, ist jedoch laut deutschem Urheberrecht verboten. Unverschlüsselte DVDs hingegen stellen kein Problem dar, es wird lediglich noch das Paket "libdvdread" (emerge libdvdread) benötigt. Weiterhin muss der mplayer zwingend mit dem USE-Flag "dvd" kompiliert werden (z.B. USE="dvd mmx mmx2 sse 3dnow 3dnowext" emerge mplayer", samt ein paar CPU-spezifischen Flags). Nun kann eine DVD mit mplayer dvd://1 -dvd-device /dev/cdrom (falls /dev/cdrom das DVD-Laufwerk ist) abgespielt werden. Ein weiteres Programm zur DVD-Wiedergabe ist "Ogle" (USE="dvd mmx" emerge ogle).





CD/DVD kann nicht ausgeworfen werden:
Sollte eine CD oder DVD nicht ungemounted oder ausgeworfen werden können da noch (unbekannte) Prozesse darauf zugreifen, kann man sich diese Prozesse mit z.B. lsof | grep /mnt/cdrom anzeigen lassen. Die erste vierstellige Zahl ist die Prozess-ID - mit kill -9 [pid] kann er beendet werden. Ist "lsof" noch nicht installiert, kann man dies mit emerge lsof nachholen.





Bash-Prompt einstellen:
Den Bash-Prompt kann man den eigenen Wünschen anpassen. Dazu muss im home-Verzeichnis die Datei .bashrc editiert werden - genauer: Die Variable "PS1" muss am Ende der Datei hinzugefügt werden.
Ein Beispiel: PS1="\033[1;32m\]\u@\h: \[\033[01;34m\]\w \$ \[\033[00m\]" ergibt in etwa Benutzer@Rechnername: ~ $ . Wobei "~" das aktuelle Verzeichnis anzeigt.





TV-Ton über Amixer wieder hochfahren:
Bei der Nutzung von VMware wird (zumindest bei mir) der LINE-Eingang und MASTER stummgeschaltet. Das Unmuten danach kann über ein Skript teilautomatisiert werden. Folgenden Inhalt z.B. unter sound.sh abspeichern:

#!/bin/bash
amixer set Line 100 unmute
amixer set Master 100 unmute


Dies kann nun im gespeicherten Verzeichnis mit ./sound.sh aufgerufen werden, und beide Kanäle sind auf 100% gesetzt.





Pakete samt "Zusätzen" deinstallieren:
Bei der Installation eines Paketes werden eventuell noch weitere dafür notwendige Pakete mitinstalliert. Um nun das Ursprungspaket wieder zu entfernen, kann man die damals zusätzlich benötigten Pakete theoretisch ebenfalls deinstallieren (sofern nicht inzwischen von anderen Programmen benötigt). Diese herauszufinden geht allerdings nur über das emerge-Logfile, zu finden unter /var/log/emerge.log. Entsprechende Pakete notieren und manuell und einzeln unmergen.





Audio-CD aus mp3's erstellen:
Um aus diversen mp3-Dateien eine Audio-CD mit xcdroast zu erstellen, müssen die mp3-Dateien zuerst in wav-Dateien umgewandelt werden. Das geht z.B. mit lame --decode music.mp3 music.wav. Als nächstes die wav-Datei auf "CD-Qualität" stellen - etwa mit glame (emerge glame). Dann die wav-Dateien in das image-Verzeichnis von xcdroast kopieren (oder verschieben), xcdroast starten, und diese Tracks schreiben. Das Ergebnis ist dann eine Audio-CD :-)





Geänderte USE-Variablen, und nur notwendige Pakete neu kompilieren:
Ändert man im "laufenden" Betrieb die USE-Variablen (aus welchen Gründen auch immer), reicht es ja, nur die Pakete neu zu kompilieren, die die geänderten USE-Variablen auch einsetzen. Hierfür genügt ein emerge --newuse world.





Name eines Users ändern:
Das geht mit dem Befehl usermod -l neuer_Login_Name -d neues_Home_Verzeichnis alter_Login_Name. Die Benutzerrechte werden dabei übernommen. Weitere Befehle dafür werden in der Manpage erklärt (man usermod).





Informationen über den X-Server:
Mit dem Befehl xdpyinfo lässt sich einiges über den X-Server herausfinden...





USE-Flags pro Paket dauerhaft festlegen:
Für beliebig viele Pakete können die USE-Flags "dauerhaft" festgelegt werden - die direkte Eingabe vor dem emerge-Befehl entfällt damit. Dafür legt man die Datei /etc/portage/package.use an und notiert darin die Pakete samt USE-Flags. Ein Beispiel für den mplayer:

# USE-Flags für mplayer
media-video/mplayer dvd mmx mmx2 sse 3dnow 3dnowext # betrifft also alle mplayer-Versionen





Endgültige Einstellungen von Portage anzeigen:
Portage ermöglicht die Spezialisierung auf gewünschte Unterstützungen mit Hilfe der USE-Flags. Um die engültigen Flags für Portage zu überprüfen (also mit allen Änderungen z.B. in der make.conf) genügt ein emerge info. Damit werden alle relevanten Variablen (auch die USE-Flags) angezeigt.





Uhrzeit auf 24h-Format einstellen:
Dazu einfach in /etc/profile ganz am Ende die Zeile export LC_ALL="de_DE@euro" einfügen!





Informationen über die Festplatte(n):
Die Einstellungen u.a. zu DMA lassen sich mit hdparm /dev/hda anzeigen. Mit hdparm -tT /dev/hda lässt sich die Lese-Geschwindigkeit der HD ermitteln. Und über hdparm -I /dev/hda werden sehr detaillierte Angaben von der Festplatte ausgegeben. Weitere Informationen (auch zur Konfiguration mit hdparm) gibt es in man hdparm!





Linux mit dem Powerbutton herunterfahren:
Notwendige Voraussetzung dafür ist, dass ACPI im Kernel konfiguriert wurde (CONFIG_ACPI=y, CONFIG_ACPI_BUSMGR=y, CONFIG_ACPI_SYS=y, CONFIG_ACPI_CPU=y, CONFIG_ACPI_BUTTON=y). Dann mit emerge -vO acpid das Paket "acpid" installieren (die Option "-O" bewirkt, dass keine Abhängigkeiten mitinstalliert werden - sollte es doch nötig sein, dann diese Option weglassen).
Im nächsten Schritt muss dieses Ereignis in der Datei /etc/acpi/events/default eingetragen werden:

event=button/power.*
action=/sbin/shutdown -h now


Nach einem rc-update add acpid default wird dieses Programm beim Systemstart automatisch gestartet und das saubere Herunterfahren des Rechners ist damit jederzeit(!) und von jedermann(!) möglich.





Programme samt Abhängigkeiten deinstallieren:
Die meistbenutzte Methode um Pakete zu löschen ist wohl emerge unmerge paket. Damit wird zwar das Paket deinstalliert bzw. gelöscht - nicht jedoch dessen Abhängigkeiten (falls vorhanden). Für eine solche wirklich saubere Deinstallation samt zugehörigen Abhängigkeiten gibt es den Befehl emerge depclean. Dieser nimmt sich das Worldfile unter /var/cache/edb/world zu Hand, liest die darin stehenden Pakete und berechnet sich daraus deren Abhängigkeiten. Falls es auf dem Rechner dann noch andere Pakete gibt, die weder in diesem World-File stehen noch eine Abhängigkeit eines "World-Paketes" sind, werden diese gnadenlos und ohne Rückfrage gelöscht! Um also ein Paket samt Abhängigkeiten zu löschen, genügt es, in world die betreffende Zeile zu löschen - ein darauf folgendes emerge depclean vollzieht den Schritt.
Das Gegenteil ist natürlich auch der Fall: Steht ein eigentlich gewolltes Paket aus welchen Gründen auch immer nicht in world, dann wird es samt Abhängigkeiten ebenfalls gelöscht. Man kann allerdings auch hier die "pretend"-Option anwenden, und sich vorab anzeigen lassen was deinstalliert werden würde (also emerge -p depclean).
Vorsichtshalber kann man sich jedoch zuerst das world-File mit regenworld neu erstellen lassen.
Und sollte depclean tatsächlich mal zuviel des Guten löschen, dann hilft ein revdep-rebuild aus dem gentoolkit-Paket. Dieses berechnet zu allen Paketen im world-File die Abhängigkeiten und installiert diese neu - falls sie wiegesagt durch depclean gelöscht worden sein sollten (Panik also überflüssig *g*). Auch hier ist empfehlenswert, zur Überprüfung zuerst mit pretend die Pakete anzeigen zu lassen: revdep-rebuild -p.





Taste "Alt Gr" unter VMware:
Sollte unter einem Windows-Gast die Taste "Alt Gr" und damit alle davon abhängigen Zeichen wie "@, €, ², ³,..." nicht funktionieren, dann hilft es, in der Datei /etc/vmware/config die Zeile xkeymap.usekeycodeMap = true (bei X.org) einzutragen.





Probleme beim Kompilieren der VMware-Module:
Sollte während der Ausführung von /opt/vmware/bin/vmware-config.pl folgender Fehler kommen

Building the vmmon module.

make: execvp: ./getversion.pl: Keine Berechtigung
make: Entering directory `/tmp/vmware-config0/vmmon-only'
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config0/vmmon-only'
make -C /lib/modules/2.6.6/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-2.6.6'
make[2]: execvp: /tmp/vmware-config0/vmmon-only/./getversion.pl: Keine Berechtigung
CC [M] /tmp/vmware-config0/vmmon-only/linux/driver.o
/tmp/vmware-config0/vmmon-only/linux/driver.c:100: error: Syntaxfehler before ';' token
make[2]: *** [/tmp/vmware-config0/vmmon-only/linux/driver.o] Fehler 1
make[1]: *** [/tmp/vmware-config0/vmmon-only] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.6'
make: *** [vmmon.ko] Fehler 2
make: Leaving directory `/tmp/vmware-config0/vmmon-only'
Unable to build the vmmon module.

hilft unter Umständen folgende Vorgehensweise: Im Verzeichnis /opt/vmware/lib/modules/source die zwei tar-Pakete vmmon.tar und vmnet.tar an einen anderen Platz kopieren und entpacken. Es sollten nun zwei Ordner namens vmmon-only und vmnet-only vorhanden sein. In diesen beiden muss nun jeweils das enthaltene Makefile editiert werden: Diese Zeile VMWARE_VER := $(shell $(SRCROOT)/getversion.pl) mit dieser Zeile VMWARE_VER := $(shell /usr/bin/perl $(SRCROOT)/getversion.pl) ersetzen und speichern. Nun die beiden Verzeichnisse wieder packen mit tar -cf vmmon.tar vmmon-only/ und tar -cf vmnet.tar vmnet-only/ und in den Ursprungsordner kopieren (die "alten" tar-Pakete vorher umbenennen - nicht überschreiben!).
Sinn und Zweck von getversion.pl ist lediglich die Ermittlung der VMware-Version. Sollte obige Änderung wider Erwarten auch noch nicht zum Erfolg führen, kann (bei Kenntnis) die Versionsinfo auch manuell in die Makefiles eingetragen werden. Für VMware-Workstation (genauer: app-emulation/vmware-workstation-4.5.2.8848) lautet die benötigte Info VME_V452 (dies sollte auch ein direkter "händischer" Aufruf von getversion.pl ausgeben). Man kann nun in beiden Makefiles (s.o.) die vorher editierten Zeilen nochmals in folgende Zeile abändern: VMWARE_VER := VME_V452.
Spätestens jetzt sollten die Module ohne Probleme erstellt werden können!





Informationen über Rechner ermitteln:
Bei einem (hardwareseitig) unbekannten Rechner lassen sich die für die Konfiguration nötigen Daten meist über lspci -v ermitteln.





DVD-RAM schreiben:
Um mit einem DVD-Brenner eine DVD-RAM zu schreiben (vorausgesetzt der Brenner unterstützt dieses Format) müssen zuerst einige Änderungen vorgenommen werden:
Zuerst sollte ein Symlink in /dev auf das Gerät angelegt werden mit z.B. ln -s /dev/sg0 dvdram, dann ein passender Eintrag in /mnt mit mkdir /mnt/dvdram. Als nächstes folgt der Eintrag in der /etc/fstab: /dev/dvdram /mnt/dvdram udf noatime,noauto,rw,users 0 0.
Bevor dann eine DVD-RAM genutzt werden kann, muss man sie noch vor dem mounten mit mkudffs --spartable=2 --media-type=cdrw /dev/scd0 mit dem UDF 2-Dateisystem formatieren (dafür ist evtl. ein emerge udftools nötig). Nun kann man die DVD-RAM wie eine Festplatte nutzen mit weit über 10.000 Zyklen - der langsamere Datenaustausch liegt an der ständigen Verifikation der übertragenen Daten um die Datensicherheit zu gewährleisten (deshalb optimales Backup-Medium).





Screenshot aus der Konsole heraus machen:
Um einen Screenshot vom gesamten Bildschirm aus einer Konsole heraus zu machen reicht der Befehl import -window root -pause 3 -quality 60 /[Verzeichnis]/screenshot.jpg.
In diesem Beispiel wird bis zum Screenshot 3 Sekunden gewartet, und das Bild auf 50% Dateigröße komprimiert (kleinere Zahl -> kleinere Datei -> schlechtere Qualität). Als Format kann u.a. .jpg oder .png gewählt werden.





MLdonkey übers Netz steuern:
Damit das klappt, muss man die erlaubten IPs in /etc/init.d/mldonkey ca. in Zeile 34 eintragen. Diese (und +/- eine weitere Zeile) sehen dann so aus:

env HOME=${BASEDIR} start-stop-daemon --quiet --start -c ${USER}  \     
                -x /usr/bin/mlnet -- -allowed_ips 192.168.0.20 &>${LOG} &     
        sleep 5 

Die erlaubte IP ist in diesem Beispiel also die 192.168.0.20 - und damit kann von diesem Rechner z.B. per Browser auf mldonkey zugegriffen werden (z.B. mit 192.168.0.10:4080).





Quelldateien löschen (um Platz zu sparen):
Bei einem emerge Paket werden die Quelldateien im Verzeichnis /usr/portage/distfiles abgelegt - und von dort nicht automatisch wieder gelöscht. Dieser Platz kann - sofern man die Quellen für ein erneutes Kompilieren nicht mehr benötigt - freigegeben werden. Ein rm /usr/portage/distfiles/* reicht dafür.





Probleme bei Mozilla Firefox Update:
Sollten nach einem Update von Mozilla Firefox einige Buttons nicht mehr wie gewohnt funktionieren (oder unerklärliche Symbole in der Toolbar hinzugekommen sein) reicht es die Datei ~/.mozilla/firefox/[zufälliger_username]/compreg.dat zu löschen.





SSH-Sitzung nach Unterbrechung fortsetzen:
Mit Hilfe von "screen" kann eine unterbrochene SSH-Sitzung wieder fortgesetzt werden. Dazu einfach screen installieren (emerge screen), starten mit screen und wie gewohnt arbeiten. Mit Strg-A-D wird die Session detached (also getrennt) und die SSH-Verbindung kann unterbrochen werden. Um weiter zu arbeiten SSH-Verbindung wieder herstellen und die Sitzung mit screen -d -r wieder aufnehmen.





ALSA und SiS 7012- bzw. Intel 810- Audio-Chip:
Eine neue Debian Sarge (3.1) Installation lädt unerklärlicherweise sowohl ALSA- als auch OSS-Module für diesen Audio-Chip. OSS funktioniert so auch relativ problemlos - steht aber im Gegensatz zu ALSA unter Lizenz.
Um nun ALSA nutzen zu können, müssen die OSS-Module entladen werden (sonst funktioniert ALSA nicht). Dazu in /etc/hotplug/blacklist die zwei Module i810_audio und ac97_codec eintragen (pro Zeile einen), sowie in /etc/discover.conf die Einträge skip i810_audio und skip ac97_codec hinzufügen. Nun sollte sich ALSA mit alsaconf konfigurieren lassen.





VMware unter Debian installieren:
Zuerst muss überprüft werden, ob die Kernel-Quelldateien des aktuellen Kernels vorhanden sind (ansonsten apt-get install kernel-headers-2.6.x).
Von der VMware-Downloadseite zuerst die .rpm und die .tar.gz herunterladen. Dann die rpm mit alien -d VMware-workstation-xxx.rpm in ein deb-Paket umwandeln und installieren. Sollte dann /usr/bin/vmware-config.pl nicht funktionieren, kommt das gepackte Archiv zum Einsatz. Dieses nach /usr/src entpacken und mit cd /usr/src/vmware-distrib in das entstandene Verzeichnis wechseln. Hier kann nun das Installationsskript vmware-install.pl ausgeführt werden - und es muss alle vorhandenen Dateien (vom vorigen deb-Paket) überschreiben. Ist dies erledigt und sind alle Module gebaut kann VMware mit /usr/bin/vmware gestartet werden (Lizenzschlüssel eingeben).
Mit diesem Vorgehen kann nun VMware bei Bedarf wieder komfortabel mit apt-get remove vmwareworkstation deinstalliert werden, da der zweite manuelle Installationsprozess lediglich die Dateien des deb-Paketes überschrieben hat.





Mit xcdroast und ProDVD DVDs brennen:
Außer xcdroast selbst ist noch ProDVD nötig, das hier heruntergeladen werden kann. Diese Datei nach /usr/lib/xcdroast/bin/ kopieren, in cdrecord.prodvd umbenennen und mit chmod 755 ausführbar machen.
Der Lizenzschlüssel für den nicht-kommerziellen Gebrauch findet sich in dieser ReadMe.





Unter Linux alle Tasten der Microsoft Intellimouse Explorer (USB, optisch) nutzen:
In der /etc/XF86Config-4 den InputDevice-Teil wie folgt anpassen:

Section "InputDevice"
	Identifier	"Configured Mouse"
	Driver		"mouse"
	Option		"CorePointer"
	Option		"Device"		"/dev/input/mice"
	Option		"Protocol"		"ExplorerPS/2"
	Option		"ZAxisMapping"		"6 7"
	Option		"Buttons"		"7"
EndSection

Zur Komplettierung noch in der ~/.xinitrc diese Zeile xmodmap -e "pointer = 1 2 3 6 7 4 5" & hinzufügen - und beim nächsten Start des XServers sollten die Buttons richtig belegt sein!





Portscan mit nmap:
Mit nmap kann z.B. der eigene Rechner nach offenen Ports abgesucht werden (nmap localhost oder nmap ). Hier wird dann (vielleicht) u.a. ein offener Port 631/tcp von ipp (nur bei localhost!) angezeigt. Mit grep 631 /etc/services lässt sich überprüfen, ob der Port mit dem genannten Dienst auch gelistet ist. Und mit fuser -uv 631/tcp wird das Programm angezeigt, das auf diesem Port lauscht - in diesem Fall ist es cupsd (hat also seine Richtigkeit). Mehr Info's hier.





Drucken unter VMware mit Windows-Gast:
CUPS unterstützt das IPP - und Windows 2000 (und aufwärts) ebenfalls. Daher kann man unter Windows einen Drucker des Linux-Hosts ganz einfach einrichten: Einen neuen Netzwerk-Drucker hinzufügen (mit Computer im Internet/Intranet verbinden) und die Adresse in Form von http://[Linux-IP]:631/printers/[Druckername] angeben (also z.B. http://192.168.0.4:631/printers/canon). Damit Windows nun auf diesen Drucker zugreifen kann (und darf), muss in /etc/cups/cupsd.conf die IP des Windows-Gasts als "Erlaubt" eingetragen sein (ca. in Zeile 750). Dann kann unter Windows der eigene Drucker aus der Liste ausgewählt und installiert werden.
Sollte Windows keinen Treiber mitbringen, kann vorübergehend irgendein anderer Drucker installiert werden (damit Windows die Adresse hat). Im nächsten Schritt dann den richtigen Treiber manuell installieren und als Ort die nun bekannte Adresse auswählen (der "Dummy"-Drucker kann nun wieder gelöscht werden).





Programm nicht in der Fluxbox-Toolbar zeigen:
Dies kann in der Datei ~/.fluxbox/apps konfiguriert werden. Ein Eintrag z.B. für gkrellm sieht so aus:

[app](gkrellm)
  [Hidden]{true}
  [Layer]{12}
[end]

Sollen mehrere Programme nicht angezeigt werden, muss für jedes Programm dieser Codeblock eingetragen werden.





Mozilla Firefox und Java:
Findet Firefox trotz installiertem Java-Runtime-Environment (apt-get install j2re1.4 - derzeit) das passende Plugin nicht, muss ein symbolischer Link im Firefox-Verzeichnis gesetzt werden: cd /usr/lib/mozilla-firefox/plugins, darin dann ln -s /usr/lib/j2se/1.4/jre/plugin/i386/mozilla/javaplugin_oji.so javaplugin_oji.so.
Nach einem Neustart von Firefox sollte Java bei Bedarf starten...





Firefox: Neue Links in neuem Tab öffnen:
Neue Links werden in Mozilla Firefox standardmäßig in einem neuen Fenster geöffnet. Sollen neue Links aber in einem neuen Tab geöffnet werden, muss man in der Konfiguration des Browsers (in Adresszeile about:config eingeben) den Wert von browser.tabs.showSingleWindowModePrefs auf "true" stellen. Dann gibt es in den Einstellungen ("Bearbeiten" -> "Einstellungen" -> "Erweitert") noch eine Checkbox, mit der das Öffnen von neuen Links in einem neuen Tab aktiviert werden kann.





Mit Grub Linux und Windows starten:
Dazu muss man folgendes in der /boot/grub/menu.lst eintragen:

title		Windows
rootnoverify	(hd1,0)
map (hd0) (hd1)
map (hd1) (hd0)
makeactive
chainloader	+1

... vorausgesetzt, Windows ist auf der sekundären Platte am ersten Controller.





SSL-Zertifikat für Apache erstellen:
Zuerst den Schlüssel mit openssl req -new > new.cert.csr erstellen. Bei Bedarf kann die Passphrase mit openssl rsa -in privkey.pem -out new.cert.key entfernt werden. Zuletzt die Anforderung in ein signiertes Zertifikat mit openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 365 umwandeln.
Anschließend müssen die beiden Dateien umbenannt werden: "new.cert.cert" zu "server.crt", und "new.cert.key" zu "server.key" und nach /etc/apache2/conf/ssl/ kopiert werden.





DVD aus der Konsole brennen:
Mit emerge dvd+rw-tools das Paket für growisofs installieren. Bei Bedarf kann man sich mit cdrecord -scanbus die benutzten Geräte anzeigen lassen.
Eine Image-Datei kann man nun mit growisofs -dvd-compat -Z /dev/dvd=./datei.iso direkt brennen. Als weitere Parameter kann u.a. noch -overburn für Überbrennen und -speed=2 für eine spezielle Geschwindigkeit angegeben werden.





Datei-Rechte in mehreren Unterordnern ändern:
Sollen die Zugriffsrechte von Dateien (nicht Ordnern!) in einem Ordner samt allen enthaltenen Unterordnern geändert werden, hilft folgender Befehl: find /home/marco -type f -print0 | xargs -r0 chmod 644 --
Hiermit werden alle Dateien mit chmod auf 644 geändert (rw-r--r--). Soll dieser Befehl statt auf Dateien auf Ordner angewendet werden, so muss einfach -type d (für "directory") gesetzt werden.





Sablotron-Error beim Emerge von php:
Kommt bei einem emerge mod_php (mit den Abhängigkeiten von php und apache) folgender Fehler:

checking for Sablotron version... configure: error: Sablotron version 
0.96 or greater required.

... dann hilft es u.U. in der Datei /etc/portage/package.use folgende zwei Zeilen einzutragen (bzw. entsprechend zu ergänzen):

dev-php/mod_php ldap -xml2
dev-php/php -sasl -xml2





Zugriff von Windows auf Samba-Freigaben ohne Passworteingabe:
Um von Windows auf Samba-Freigaben ohne ein Benutzername/Passwort zugreifen zu können (natürlich nur bei public = no Freigaben), muss auf dem Linux-System der entsprechende Windows-Benutzer angelegt sein.
Die Daten des Windowskontos seien username und password.
Unter Linux legt man nun den Benutzer mit useradd username an (ohne weitere Optionen - ist also kein vollwertiges Konto!). Das Samba-Passwort wird mit smbpasswd -a username gesetzt (darauf folgt die Eingabe des mit dem unter Windows identischen Passwortes).





Zugriff von Linux auf Windows-Freigaben:
Dazu muss auf dem Linux Samba installiert sein; besondere Einstellungen sind für diese Art von Zugriff nicht nötig. Unter Linux kann nun die Windows-Freigabe gemountet werden: mount -t cifs -o user=USERNAME //SERVER_NAME/FREIGABE /mnt/samba. Wobei USERNAME durch den Benutzernamen des betreffenden Windows-Benutzers zu ersetzen ist, ebenso SERVER_NAME durch den Namen des Windows-Rechners (oder durch dessen IP-Adresse) und FREIGABE durch den Namen der Freigabe.





Fluxbox-Menü automatisch generieren/ updaten:
Das Fluxbox-Menü lässt sich nach der Installation neuer Software einfach aktualisieren: fluxbox-generate_menu -is -ds.





Fehlermeldung bei emerge -Duvat world:

Calculating world dependencies
!!! Problems have been detected with your world file
!!! Please run emaint --check world

emerge: there are no ebuilds to satisfy "<=x11-base/xorg-x11-6.99".
(dependency required by "virtual/x11-6.8" [ebuild])

!!! Problem resolving dependencies for net-fs/samba
!!! Depgraph creation failed.

Hier hilft es, die Datei /etc/portage/profile/package.provided mit dem Inhalt virtual/x11-7.0 zu erstellen.
Ein erneutes emerge -Duvat world sollte ohne Probleme möglich sein. Werden jedoch weitere Pakete mit ähnlicher Meldung genannt, muss man diese entsprechend in die Datei package.provided eintragen.





Informationen zu installierten Paketen abfragen:
Folgende Beispiele zeigen den Einsatz von equery (aus dem gentoolkit-Paket):





Fehlermeldung bei MD5-Prüfsummencheck:

!!! Digest verification Failed:
!!!    /usr/portage/distfiles/php-5.1.4.tar.bz2
!!! Reason: Failed on MD5 verification

Nun diese Datei php-5.1.4.tar.bz2 im genannten Verzeichnis /usr/portage/distfiles/ löschen, neu synchronisieren (mit emerge --sync), und das Paket neu installieren (mit emerge php).





Daten von ChargeManager 2010 auslesen:
Christoph Heine hat ein geniales Tool geschrieben um die Daten des Ladegeräts "ChargeManager 2010" (von Conrad Electronic) unter Linux auszulesen --> CM-Software. Auf dieser Seite ist alles Wissenswerte zu lesen, daher hier nur noch ein paar kleine Ergänzungen zum Einsatz unter Gentoo Linux.
Wie auf der Seite angemerkt benötigt man das Paket RRDtool, welches mit emerge -av net-analyzer/rrdtool installiert werden kann. Außerdem ist u. U. noch das Perl-Modul "URI" nötig, um Links mit Perl erzeugen zu können (emerge -av dev-perl/URI).
Falls gewünscht kann man den cm-udpserver und cm-rrdd mit folgendem Init-Skript automatisch beim Booten starten lassen:


#!/sbin/runscript                                                                                                             
#                                                                                                                             
# Init script for CM2010-Software                                                                                             
# Conrad ChargeManager 2010 online control                                                                                    
#                                                                                                                             
# configuration                                                                                                               
pidfile1=/var/run/cm-udpserver.pid                                                                                            
pidfile2=/var/run/cm-rrdd.pid                                                                                                 
                                                                                                                              
start() {                                                                                                                     
        ebegin "Starting CM2010"                                                                                              
        start-stop-daemon --start --quiet --exec /usr/local/cm2010/cm-udpserver --pidfile=${pidfile1}                         
        start-stop-daemon --start --quiet --exec /usr/local/cm2010/cm-rrdd --pidfile=${pidfile2}                              
        eend $? "Failed to start CM2010"                                                                                      
}

(Pfade ggfls. anpassen).





Samba-Benutzer anlegen:
Für einen Benutzer ohne Shell-Zugang hilft dieser Befehl: adduser --no-create-home --disabled-login --shell /bin/false USERNAME. Das Passwort für diesen User setzt man dann mit smbpasswd -a USERNAME.





SqueezeboxServer installieren:
Dazu zuerst in der Datei /etc/apt/sources.list folgende Zeile einfügen: deb http://debian.slimdevices.com stable main.
Anschließend ein apt-get update, dann mit apt-get install squeezeboxserver die Software installieren. Nun kann mit einem Browser auf die Server-IP und den Port 9000 zugegriffen werden (z. B. http://192.168.100.3:9000). Sämtliche Einstellungen lassen sich damit einfach konfigurieren.





Netzwerkeinstellungen statisch festlegen:
Nach einer Neuinstallation wird das Netzwerk vom Installer gerne mit DHCP konfiguriert. Will man jedoch stattdessen eine manuelle IP-Zuweisung umsetzen, lässt sich das in der Datei /etc/network/interfaces anhand folgendem Beispiel einstellen:


iface eth0 inet static
	address 192.168.0.123
	netmask 255.255.255.0
	gateway 192.168.0.200





Versteckte Dateien löschen:
Greift man mit einem Mac schreibend auf Samba-Freigaben in einem Netzwerk zu, entstehen in kurzer Zeit viele versteckte Dateien (eine Mac-Eigenart). Diese lassen sich unter Linux elegant finden und löschen: find -type f -name ".*" -exec rm -f {} \;
Aber Vorsicht! Dieser Befehl löscht definitiv alle versteckten Dateien, auch die erwünschten wie z. B. ".htaccess" - er sollte nur mit Bedacht angewandt werden.





Öffentliche, dynamische IP-Adresse an DynDNS übermitteln:
Dies kann z. B. das Tool "inadyn" erledigen. Installiert wird es mit apt-get install inadyn.
Ein zeitgesteuerter Aufruf könnte etwa wöchentlich mit folgendem Skript erledigt werden:


#!/bin/sh
# Aufruf des Tools
inadyn -u USER -p PASSWORT -a DOMAINNAME.DYNDNS.ORG &
# kurz warten
sleep 5
# dann Prozess killen, unschön, aber notwendig
killall inadyn

Den Prozess auf diese Art zu beenden ist nicht gerade die feine Art, aber ich weiß (noch) keinen besseren Weg - bin aber über Rückmeldungen dazu dankbar!





Server mit USV bei Stromausfall abschalten:
Annahme: An einem Linux-Server ist über USB eine APC-USV angeschlossen. Der Server soll bei Stromausfall nach bestimmten Voraussetzungen automatisch heruntergefahren werden. Vorausgesetzt wird, dass die USV vom System korrekt erkannt wird.
Paket apcupsd mit apt-get install apcupsd installieren. Anschließend die Konfigurationsdatei unter /etc/apcupsd/apcupsd.conf anpassen, hier einige beispielhafte Zeilen:


UPSCABLE usb
UPSTYPE usb
DEVICE
POLLTIME 60
BATTERYLEVEL 20 (Restkapazität in %)
MINUTES 10 (Restzeit bis USV leer)
NETSERVER on (falls auch andere Rechner im LAN die Information über einen Stromausfall bekommen sollen)
NISIP 192.168.0.1 (IP des Linux-Servers)
UPSCLASS sharemaster

Sämtliche weitere (nicht auskommentierte) Befehlszeilen im ersten Schritt nicht ändern. Nun sollte bei einem Stromausfall der Server bei dem ersten zutreffenden Wert (Restzeit oder Restkapazität) herunterfahren. Werden noch weitere Rechner durch diese USV mit Notstrom versorgt, können diese mit dem gleichen Tool (apcupsd) als "shareslave" betrieben werden und sämtliche Informationen vom Server abfragen.
Dazu müssen in der Konfigurationsdatei auf den Clients nur folgende Zeilen abweichend von der Serverkonfiguration geschrieben werden:


UPSCABLE ether
UPSTYPE net
DEVICE 192.168.0.1:3551
NETSERVER off
UPSCLASS shareslave

Durch abweichende Abschaltschwellen kann eine gestaffelte Abschaltung der versorgten Rechner erreicht werden, und die Laufzeit für wichtigere Rechner durch frühzeitige Abschaltung anderer verlängert werden.





Debian Backports:
Debian ist für seine Stabilität bekannt - allerdings sind die Pakete manchmal etwas veraltet. Dies kann u. U. mit den Backports relativiert werden, welche in einer stabilen Umgebung neu kompiliert wurden - und daher auch unter Debian stable i. d. R. ohne neue Bibliotheken lauffähig sind. Trotz allem sollten Backports mit Bedacht eingesetzt werden.
Um die Backports zu nutzen, muss deb http://backports.debian.org/debian-backports lenny-backports main in die sources.list eingetragen werden (mit anschließendem apt-get update). Damit diese Pakete ebenfalls automatisch aktualisiert werden, muss außerdem die Datei /etc/apt/preferences mit folgendem Inhalt angelegt bzw. erweitert werden:


Package: *
Pin: release a=lenny-backports
Pin-Priority: 200

Nun kann ein Backport-Paket mit apt-get -t lenny-backports install PAKETNAME installiert werden.





Traffic messen:
Dies kann unter Linux mit dem Paket vnstat (apt-get install vnstat) durchgeführt werden. Nach der Installation des Paketes muss zuerst eine Datenbasis mit vnstat -u -i eth0 ("eth0" mit dem passenden Interface ersetzen) angelegt werden. Danach kann u. a. mit folgenden Befehlen der Traffic angezeigt werden: vnstat -m zeigt den Traffic pro Monat, vnstat -d pro Tag. Weitere Darstellungen erklärt die man-Page.







Benutzung obiger Tipps auf eigene Gefahr! -- Für einige Befehle werden root-Rechte benötigt.
emerge-Befehle sind für Gentoo-Linux ausgelegt, apt-get-Befehle für Debian-Linux, bei anderen Distributionen entsprechend ändern.