VMWare: Uhrzeit hinkt hinterher oder laeuft voraus
Ich bin ja gar kein Fan von VMWare (mir ist die KVM tausend mal lieber...), aber nachdem alle Welt das Teil benutzt, kommt man nicht drum rum :-( Kürzlich hatte ich das Problem, das in einem Gentoo Linux Host ein Red Hat Enterprise 5.2 Gast lief und im Gast ständig die Uhrzeit dem Hostsystem hinterherlief. Da dauerte dann eine Sekunde schon mal zwei oder so ;-)
Nun... Ganz hab ich das Problem noch nicht gelöst aber ansatzweise. Zum einen war die Kernel-Timer-Frequenz unterschiedlich. Gentoo lief mit 250 Hz (wie das für ein Server-System angebracht ist) und RHEL mit 1000 Hz. Was eingestellt ist, sieht man unter Gentoo, wenn man nach /usr/src/linux wechselt (ja, es gibt noch andere Möglichkeiten...) und dort
linux # cat .config | grep CONFIG_HZ
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
eingibt. Unter RHEL 5.2 geht man unter /usr/src/kernels/2.6.18-92.el5-x86_64/ rein und mancht das Gleiche. Nachdem das eingestellt war unter Gentoo, Kernel neu kompiliert und durchgestartet. Das war dann schon besser. Aber immer noch lief die Zeit langsam auseinander.
Ich habe dann im zugehörigen .vmx-File noch folgende Option eingetragen:
tools.syncTime = "TRUE"
Das sollen angeblich auch die VMWare Tools machen. Das half aber auch nicht so richtig weiter. Jetzt könnte man natürlich auch ein ntpdate pool.ntp.org jede Minute per Cron laufen lassen, aber das ist auch Schwachsinn.
Also hab ich mir die open-vm-tools installiert. Das sind die VMWare Tools nur als Opensource. Diese Tools müssen im Gast-System installiert werden. Man lädt sich dazu das .tar.gz-File runter. Den configure hab ich mit
./configure --without-x --without-procps --without-dnet --without-icu
aufgerufen. Dann make; make install. Jetzt kann man mit
vmware-guestd --background /tmp/ovm.pid
den VMWare Guest-Daemon starten. Anschließend kann man mit
vmware-toolbox-cmd timesync enable
die Zeitsyncronisierung einschalten und mit
vmware-toolbox-cmd timesync enable
abfragen. Mit
vmware-toolbox-cmd stat hosttime
kann man dann noch die Host-Zeit abfragen. Die Zeit der beiden System läuft jetzt zwar immer noch nicht ganz syncron, aber es ist akzeptabel.
Freie IP finden mit fping
Man kennt das Problem: Man braucht eine freie IP in einem Class C Netz. Praktisch wäre jetzt mal kurz alle IP-Adressen durchzutesten. Da hilft fping:
fping -g 172.18.72.0/24
Wenige Sekunden später sieht man dann, was noch frei ist. Unter Gentoo einfach mit
emerge fping
installieren. Ich vermute, andere Distributionen haben das Tool auch an Board.
Enhanced CTorrent - Ein BitTorrent Client unter Linux für die Kommandozeile
Bisher hatte ich immer MLDonkey verwendet, um Torrents downzuloaden.
Zum Downloaden von Linux Distributionen, ISO-Images oder Remixes von
remix.kwed.org/slayradio.org ganz praktisch. Läuft als Daemon im Hintergrund und man kann darauf komfortabel per Weboberfläche zugreifen. Zu dem kennt MLDonkey noch viele weitere Protokolle/Netze u.a. auch das Donkey-Netz. Wenn man aber nur Torrents down- oder uploaden möchte, dann gibt's was Besseres für Freunde der Kommandozeile. Ausserdem erspart man es sich, den MLDonkey-Daemon zu konfigurieren.
Enhanced CTorrent nennt sich das Tool. Funktioniert denkbar einfach. Soweit kein Paket bei der verwendeten Linux-Distribution dabei ist, kompiliert man das einfach selber mit dem üblichen configure, make, make install. Will man jetzt ein Torrent downloaden, braucht man natürlich das Torrent selbst und dann folgenden Befehl:
ctorrent -d datei.torrent
Zusätzlich interessant sind noch die Optionen
-I <nach_aussen_sichtbare_ip>
-e 500
-S localhost:2780 -e 500
Wenn man hinter einem Router mit NAT sitzt, dann kann man mit -I die IP-Adresse angeben, mit denen andere Torrent-Clients sich verbinden können, um eine Peer-Connection aufzubauen. Macht den Download schneller. Funktioniert natürlich nicht bei privaten Torrents.
-e gibt an, wie lange man den runtergeladenen Torrent noch seed'en möchte, also wie lange andere User den Torrent auf dem eigenen Rechner noch erreichen können. Man sollte hier schon noch 2-3 Tage seeden, damit viele andere User möglichst schnell downloaden können und viele Quellen zur Verfügung stehen.
Mit -S gibt man die IP und Port-Nummer des CTCS-Servers an. Dieser CTorrent Control Server stellt eine Weboberfläche zur Verfügung, mit dem man alle Torrents kontrollieren kann. Das macht die Sache komfortabler und übersichtlicher.
Den CTorrent Control Server kann man hier downloaden: CTorrent Control Server Auch hier gilt: Liegt kein Paket vor, einfach downloaden und mit dem o.g. Dreisatz übersetzen und installieren. Und dann einfach starten:
ctcs -d 250 -u 20
In diesem Fall geben wir eine Download-Rate von 250 KByte/s vor und eine Upload-Rate von 20 KByte/s. Per Default hört der ctcs-Daemon auf localhost:2780. Dort hin kann man sich mit dem Webbrowser verbinden und sieht dann alle laufenden Torrents und kann deren Status ändern und noch viele weitere Änderungen komfortabel vornehmen.
Wenn man ctorrent mit der Option -S localhost:2780 startet, dann verschwindet ctorrent in den Hintergrund und meldet den eigenen Status an den ctcs-Daemon.
Möchte man einen eigenen Torrent über einen externen Tracker anbieten, kann man mit folgendem Kommando einen eigenen Torrent erstellen:
ctorrent -t -u "http://externe.tracker.url" -s datei.torrent dateiname_zum_downloaden
Linux: I/O pro Prozess anzeigen
Oh wie lange habe ich auf dieses Feature gewartet! Wer einen Kernel 2.6.20 oder höher einsetzt, der kann sich mit dem Tool pidstat aus dem sysstat (> V 7.1.5) Paket sich jetzt anzeigen lassen, was welcher Prozess denn da gerade auf der Platte rummacht. Leider hat selbst Redhat Enterprice 5.2 nur einen 2.6.18 Kernel und dieses Kernel Feature nicht zurückportiert, wo doch gerade bei diesen Enterprise Plattformen solche Informationen sehr wichtig sind. Nun ja... So sieht das dann jedenfalls aus (pidstat -d 5 10):
3:06:24 PID kB_rd/s kB_wr/s kB_ccwr/s Command
13:06:29 7224 6.40 0.00 0.00 make
13:06:29 9150 0.00 22.40 22.40 postgres
13:06:29 9207 0.80 0.80 0.00 logd
13:06:29 9410 13.60 0.00 0.00 xgcc
13:06:29 9411 352.80 12.00 0.00 cc1
13:06:29 9412 44.00 0.00 0.00 x86_64-pc-linux
13:06:29 11793 0.00 3.20 0.80 thunderbird-bin
13:06:29 12751 4.00 24.80 0.00 firefox-bin
13:06:29 30591 10771.20 0.00 0.00 rsync
13:06:29 30593 0.00 10752.00 0.00 rsync
13:06:29 32469 3.20 1.60 0.00 emerge
Hier sieht man sehr schön, das rsync ganz gut unterwegs ist. Damit das funktioniert, müssen im Kernel folgende Optionen aktiviert sein:
CONFIG_TASKSTATS=y( Aug 22 2008, 07:00:00 PM CEST ) Permalink Comments [0]
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
Western Digital Mybook und Linux
Speicherplatz zu Ende, Backup muss auch sein, also USB-Platte her. Die WD MyBook gefiel mir ganz gut. Sehr leise im Übrigen und die 1 TByte Edition bringt auch viel Speicher mit und ist auch unter Linux ausreichend schnell für Backup- oder Archivierungszwecke. Was ich ganz gut finde, wenn man mit der Platte nicht ständig arbeitet ist, das sich die Platte selber runterfährt, wenn sie für einige Zeit nicht in Gebrauch. Solange sie gemountet ist, fährt sie auch wieder hoch, wenn man darauf zugreift. Bei mir dauert das ca. 5-7 Sek.
Man kann das Ausschalten auch per Kommando unter Linux bewerkstelligen:
sdparm --command=stop /dev/sdb
/dev/sdb ist in meinem Fall die MyBook USB-Platte. Das ist ganz praktisch, um Strom zu sparen, wenn man nur kurz darauf zugreifen will oder muss. Mit --comand=start startet man die Platte wieder.
Ich vermute mal, das das vielleicht auch mit anderen USB-Platten funktioniert, die sich als USB Massenspeicher melden und eingebunden werden. Ausprobiert habe ich es aber noch nicht.
Qemu, KVM, Anaconda - lvm: Cannot allocate memory
Nachdem ich gerade am Testen von Red Hat Enterprise 5 mit Qemu/KVM bin und mir Anaconda beim Initialisieren der Festplattenpartitionen die Meldung
lvm: Cannot allocate memory
um die Ohren gehauen hat, wollte ich die Welt teilhaben lassen an der Lösung ;-) Ich hatte Qemu gestartet mit
/opt/kvm/current/bin/qemu-system-x86_64 -hda rhel52.img -cdrom /opt/cds/rhel-5-server-x86_64-dvd.iso -boot d -m 256
Der Witz ist, 256 MB Speicher reichen nicht! Es müssen mindestens 512 MB sein. Ich hab's dann probiert mit
/opt/kvm/current/bin/qemu-system-x86_64 -hda rhel52.img -cdrom /opt/cds/rhel-5-server-x86_64-dvd.iso -boot d -m 640
und das funktioniert dann.
configure - Invalid configuration
Wenn ihr beim Kompilieren bzw. beim Ausführen von configure folgende Meldung seht
checking build system type... Invalid configuration
x86_64-unknown-linux-gnu: machine x86_64-unknown not recognized
configure: error: /bin/sh ./config.sub x86_64-unknown-linux-gnu failed
dann tauscht mal die Dateien configure.guess und configure.sub aus. Diese holt man
sich z.B. von Sourcecode eines neueren Apaches. Meistens ist die Software, die man
da kompilieren möchte schon etwas älter, wenn die Meldung kommt.
PostgreSQL: Dead rows oder Nonremovable rows
Eines der leider designtechnisch weniger schönen Dinge bei der Postgres, sind die dead rows die zunächst übrig bleiben, wenn man SQL Update-Statements auf eine Tabelle los lässt. Bei so einem Update biegt die Postgres mehr oder weniger nur einen Pointer um auf die neuen Daten und lässt die alten erstmal stehen. Normalerweise kümmert sich der Autovacuum um diese Zeilen und räumt sie von Zeit zu Zeit auf. Allerdings funktioniert das nicht, wenn man eine Transaktion am Laufen hat, die über Stunden oder gar Tage hinweg läuft und diese Tabelle darin beteiligt ist. Wenn man einen vacuum verbose oder vacuum full verbose auf diese Tabelle los lässt, dann sieht das z.B. so aus:
INFO: "events": found 629702 removable, 2764070 nonremovable row
versions in 440726 pages
DETAIL: 2734213 dead row versions cannot be removed yet.
Nonremovable row versions range from 237 to 1160 bytes long.
There were 1797800 unused item pointers.
Total free space (including removable row versions) is
1808978584 bytes.
175919 pages are or will become empty, including 0 at the end
of the table.
316400 pages containing 1792334416 free bytes are potential
move destinations.
CPU 97.17s/19.74u sec elapsed 269.83 sec.
Gar nicht gut. Wir schleppen da ein Haufen Müll mit uns rum und die Queries werden immer langsamer. Es gilt also diese Transkation zu finden. Eventl. kann man in der Prozessliste auf dem DB Rechner schon mal Prozesse mit idle in transaction ausmachen, die schon ewig laufen. Das sind potenzielle Kandidaten. Genauer sieht man es aber mit folgender Query:
SELECT * FROM pg_prepared_xacts;
Man sollte sich am Besten ein Skript schreiben, das diese Tabelle/View regelmäßig überwacht und meldet, wenn eine Query zu lange da drin hängt. Auch wenn man einen vacuum verbose einmal täglich über alle Tabellen laufen lässt (soweit das die DB-Größe und die Performance des Rechners hergeben), kann man den Output dieses Befehls parsen und darauf entsprechend reagieren.
Moviegrabber fuer Linux
Wenn man aus einem Video oder Film, in welchem Format auch immer das vorliegen mag, eine Bilderstrecke oder Kollage erzeugen möchte, dann kann man unter Windows Image Grabber II oder unter Linux Videocut verwenden. Beides sind GUI-Tools. Ich wollte aber was für die Kommandozeile. Deshalb hab ich ein kleines Skript namens Moviegrabber gebastelt, das jetzt in einer ersten Version vorliegt, die man schon mal verwenden kann, aber noch nicht sehr umfangreich ist.
Moviegrabber ist in Python geschrieben und benötigt den mplayer, midentifiy (ist normalerweise im mplayer-Paket dabei) und ImageMagick. Vielleicht läuft es auch unter Windows, habs aber nicht probiert.
Aktuell ist das Skript nur im Sourcecode dokumentiert. Die Optionen dürften aber relativ klar sein. Ein einfacher Aufruf wäre z.B.:
moviegrabber.py -f moviename -o ausgabeverzheichnis
Im Ausgabeverzeichnis liegt dann eine Datei names collage.jpg. Momentan erzeugt das Skript nur eine Kollage. Über die Zeit hinweg, soll es dann mehrere weitere Ausgabeoptionen geben.
Das Wichtigste, was man vermutlich anpassen muss, ist gleich im oberen Teil des Skriptes. Dort sind die Pfade von mplayer, midentify (beide mplayer Paket), montage und convert (beide ImageMagick-Paket) anzugeben. Dann sollte das Skript schon tun.
Hier die Versionen zum Downloaden:
0.1 - Erste Release
ORACLE: Kaputte Indexpartitionen finden
Yust a reminder: Manchmal passiert es, das ein Index invalid wird. Das kann man in der DBA_INDEXES View in der Spalte STATUS sehen. Wenn allerdings eine Partition eines Indexes kaputt ist, dann sieht man das dort nicht gleich auf Anhieb, obwohl man z.B. einen Fehler wie den hier bekommt:
Error with index "X_TIMESTAMP" in database "TESTDB": Index Invalid
Um eine kaputte Indexpartition zu finden, verwendet man die View DBA_IND_PARTITION:
SELECT index_name, partition_name, status FROM dba_ind_partitions ORDER BY index_name, partition_name;
Partitionen mit mehr als 2 TerraByte unter Linux
Bisher bin ich ja nie über Partitionen gekommen, die größer als 2 TB (TerraByte) waren und hatte deshalb auch nie Problem. Kürzlich aber mußte eine 12 TB große Partition her. Und schon ging der Blödsinn los. Der Kernel kann damit umgehen, der Controller (im konkreten Fall 3Ware 9650SE-16M [und unter Linux kann ich 3Ware nur empfehlen, da die Treiber im Kernel sind) und das XFS-Filesystem. Aber Tools wie fdisk können es z.B. nicht und wenn der falsche Partitionstabellentyp eingestellt ist, dann geht's auch nicht...
Von vorne... Sicherheitshalber sollte man beim Contoller die neueste Firmware einspielen. Damit wir dann überhaupt so grosse Partionen erstellen können, brauchen wir zwei physikalische Festplatten oder Raid's. D.h. für Partitionen wie / (root) oder /boot legen wir beispielsweise ein Raid 1 (Spiegel) auf /dev/sda an, wobei jede Partition nicht größer als 2 TB sein darf! Wenn wir dort nämlich eine Partitionstabelle anlegen mit z.B. fdisk, dann ist der Partitionstabellentyp msdos (wenn man es nicht ändert) und der kann nur mit Partition bis 2 TB umgehen. Ausserdem haben die Bootloader Grub und Lilo auch so ihre lieben Probleme mit größeren Partitionen. Die eigentliche Partition, die größer als 2 TB werden soll, legen wir beispielsweise nach /dev/sdb. Da dies wieder ein eigenes Device ist, können wir hierfür eine andere Partitionstabelle erstellen, die wir unbedingt brauchen.
Nochmal kurz zusammen gefaßt:
* Grub und Lilo verstehen nur Partitionstabellen (Labels) vom Typ msdos. Man kann also nicht von Partionstabellentypen mit gpt Label booten
* msdos Partitionstabellen können mit keinen Paritionen umgehen, die größer 2 TB sind.
* fdisk kann nicht mit Partitionen umgehen, die größer als 2 TB sind
* LVM hat eventl. auch Probleme mit logischen Volumes die größer als 2 TB sind (nicht probiert)
* Die Linux Installationsprogramme können nicht mit Partionen umgehen, die nicht vom Type msdos sind. gpt fällt also hierfür aus.
Zuerst sollte man sich mal das Tool parted installieren. Damit erstellen wir eine Partitionstabelle. Schauen wir uns mit parted mal an, welchen Typ Partionstabelle wir haben auf /dev/sda (hier ist schon alles entspechend angelegt mit fdisk):
host # parted /dev/sda print
Model: AMCC 9650SE-16M DISK (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
...
Partition Table: msdos für /dev/sda. Das ist also ok so für sda. /dev/sdb soll aber später einen anderen Typ bekommen nämlich gpt. Hier bitte Vorsicht! parted schreibt Änderungen sofort weg! Wenn man nicht aufpasst, überschreibt man die Daten auf der falschen Platte! Legen wir also interaktiv eine Partionstabelle für /dev/sdb an:
host # parted /dev/sdb
(parted) mklabel gpt
(parted) quit
Sehen wir uns an, was parted gemacht hat:
host # parted /dev/sdb print
Model: AMCC 9650SE-16M DISK (scsi)
Disk /dev/sdb: 12.0TB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Flags
Partition Table: gpt für /dev/sdb. Passt also. Anstatt gpt könnte hier später auch loop stehen. Jetzt könnte man natürlich auf die Idee kommen, die eigentliche Partion auf /dev/sdb anzulegen. Das hat bei mir nicht funktioniert. Partition anlegen (/dev/sdb1), Filesystem erstellen und mounten ging zwar, aber nach einem Reboot war die Partition wieder blos 2 TB groß! Lösung war, das XFS-Filesystem direkt auf /dev/sdb zu erstellen (also NICHT /dev/sdb1!):
mkfs.xfs /dev/sdb
Das ist auch rebootfest - zumindest bei mir. Vielleicht hilft das ja jemanden weiter...
Technorati Tags: linux, partion, terrabyte, lba, 3ware, xfs, kernel
Schneller Prozessor, viel Speicher - langsame Festplatte
Ist irgendwie schon toll. Da hat man einen eigentlich aktuellen Prozessor, hat beim Board auch nicht gespart, 4 GByte Speicher, eine nette Grafikkarte und eine entsprechend schnelle Samsung SATA-II Festplatte - könnte man meinen... Kaum geht's auf der Festplatte ab, weil man was Größeres abspeichert, schlafen einem die Füsse ein und das DVD-Video ruckelt eh schon immer. Schon toll...
Nun... Nachdem ich das bisher nie angegangen bin, hab ich mich mal auf Spurensuche gemacht. Also den Kernel bzw. SATA-Treiber als Ursache konnte man eigentlich ausschließen. Neuer als 2.6.22 geht fast nicht. Nachdem mein relativ neuer Samsung DVD-Brenner DVD's immer schon ruckelig abgespielt hat, war mir das irgendwann zu bunt und ich packte meinen alten Dawicontrol DC 150 wieder aus und schloss den Brenner da an. Und siehe da: Nix ruckelt!
Es musste also eigentlich schon irgendwie an den IDE/SATA-Komponenten auf dem Mainboard liegen. Nun, also doch mal einen Blick ins BIOS riskieren. Ich hatte ja doch mal irgendwo gelesen, das neuere Mainboard mit angezogener Handbremse laufen. Dort hab ich dann auch tatsächlich was gefunden. U.a. findet man dort verschiedene IDE-Modi: IDE, RAID und AHCI. Eingestellt war IDE. RAID hab ich nicht vor zu betreiben. AHCI war das Gebot der Stunde. Das ist eine standardisierte Zugriffsmethode auf neuere Festplatten, die u.a. von Intel auf den Weg gebracht worden ist. Das wird wohl früher oder später auch mal die Standardeinstellung in den Boards werden, aber die Boardhersteller wollen natürlich möglichst wenig Ärger und Support haben und stellen so meist auf den kleinsten, gemeinsamen Nenner - IDE. AHCI hat allerdings ein paar ganz erhebliche Vorteile z.B. unterstützt es NCQ der neueren SATA-Platten und das kann sich durchaus bemerkbar machen in der Festplattenperformance.
Hab ich also auf AHCI umgestellt. Normalerweise ist es gesünder, wenn man das tut, bevor man das Betriebssystem umstellt. Aber meiner einer ist ja experimentierfreudig. Gentoo lief wunderbar hoch und siehe da, da kamen dann auch plötzlich Meldungen vom SATA-Treiber, die schon mal Anlass zur Freude boten wie z.B. die oben beschriebene NCQ-Fähigkeit.
Die Umstellung auf dem AHCI-Modus hat sich jedenfalls rentiert. Jetzt läuft das System wie geschmiert :-) Also wenn euch die Plattenperformance auf die Nerven geht, guggt auch mal ins BIOS. Und wer noch etwas mehr Gas geben möchte, der kann sich noch an die I/O-Scheduler wagen, das ich hier schon mal beschrieben hatte...
Technorati Tags: ahci, ide, raid, asus, slow, board, sata, sataii, ncq, performance, controller
Dateiduplikate finden: fdupes
Man kennt das Problem: Jede Menge Dateien auf der Platte und jede Menge davon unnütz, weil doppelt. Um doppelte Dateien zuverlässig zu finden, gibt es fdupes. Unter Gentoo oder Ubuntu installiert sich das recht einfach:
Gentoo: emerge -av fdupes
Ubuntu: apt-get install fdupes
fdupes vergleicht Dateien anhand von MD5 Prüfsummen und Dateigrößen. Sucht man z.B. doppelte Dateien in einem Verzeichnis inkl. Unterordner, gibt man einfach
fdupes -r /zu/durchsuchender/pfad
ein. Doppelte Dateien werden dann paarweise angezeigt.
Technorati Tags: fdupes, duplicate, gentoo, ubuntu, opensource, doppelt
LIRC, VDR, Gentoo und Streamzap
Lange hat's gedauert, aber letztendlich habe ich jetzt endlich eine Fernbedienung für meinen VDR gefunden, die nicht über den seriellen Anschluss angeschlossen wird. Die neuen Rechner haben sowas ja kaum noch und mit einem USB/Serial-Adapter habe ich es schon probiert. Das klappte aber irgendwie nicht, obwohl der Treiber im Kernel war.
Jetzt habe ich endlich eine Fernbedienung, die über USB angeschlossen wird und für die es einen LIRC-Treiber gibt :-) Das Teil heißt Streamzap. Zu kaufen gibt's das Ganze z.B. bei Centarea. Heißt dort Sceneo Master Remote. Die Installation unter Gentoo ist relativ einfach.
Zuerst müssen wir in die /etc/make.conf folgende zwei Einträge hinzufügen:
USE="lirc streamzap"
LIRC_DEVICES="streamzap"
Das sollte man eigentlich schon gemacht haben, damit VDR mit LIRC-Support kompiliert ist. Wenn nicht, VDR am besten auch noch mal emerge'n. Dann installieren wir LIRC und starten den Treiber:
emerge -av lirc
modprobe lirc_streamzap
Dann brauchen wir eine remote.conf und eine lircd.conf. Man findet diese Konfigurationsdateien auch in diesem Thread in vdr-portal.de. Die remote.conf kopieren wir nach /etc/vdr/ und die lircd.conf nach /etc/. Anschließend lircd starten (/etc/conf.d/lircd auch prüfen):
/etc/init.d/lircd start
Nun kann man mit dem Kommando irw testen, ob alles funktioniert. Einfach etwas auf der Fernbedienung rumdrücken und dann sollten auf der Kommandozeile entsprechende Meldungen kommen. Wenn das tut, kann man mit CTRL+C abbrechen. Damit der Treiber beim Hochfahren des Rechners wieder gestartet wird macht man Folgendes:
echo lirc_streamzap >> /etc/modules.autoload.d/kernel-2.6
Nun passt man noch /etc/conf.d/vdr an. Dort stellt man dann
IR_CTRL="lirc"
ein. Zu guter Letzt fügen wir lircd noch dem default Runlevel hinzu, damit das automatisch gestartet wird:
rc-update add lircd default
Nun noch VDR durchstarten und dann tut's hoffentlich ;-)
Interessante Links:
Gentoo Wiki: HOWTO LIRC
Using the Streamzap USB remote with vdr on Fedora Core 5
Gentoo Wiki: HOWTO USB LIRC streamZap
vdr-portal.de: lircd.conf und remote.conf gesucht
Technorati Tags: lirc, vdr, gentoo, streamzap, remote, fernbedienung, vdr
Tor, Privoxy, Firefox, Gentoo und anonym surfen
Naja... Anonym surfen ist ja etwas Augenwischerei im Internet. Google, CIA, NSA, BND, Innenministerium und das Finanzamt sitzen ja eh schon überall drin - ok, kleiner Scherz am Rande ;-) Ich hab nix zu verbergen! Genau - solange, bis mal jemand bei der Schufa die Datensätze durcheinander bringt. Dann wird aus dem unschuldigen Bürger plötzlich der Kreditpreller. Ok, das wird natürlich nie passieren, auch klar oder? Schöne Aussichten. Ein bißchen Sarkamus muss ja auch mal sein ;-) Aber zurück zum Thema... Es gibt Seiten, da ist es wohl besser, wenn man sich etwas unauffälliger verhält, welche Gründe man auch immer haben mag dafür. Dafür ist das Gespann Tor, Privoxy und Firefox ideal.
Nun... Unter Gentoo ist das auch relativ schnell installiert. Zuerstmal die Software:
emerge -av tor
emerge -av privoxy
Firefox wird ja wohl jeder schon irgendwo rumliegen haben ;-) Was ist nun Tor eigentlich? Tor ist ein ganzes Netzwerk von Rechnern. Damit kann man ganz gut seine eigene IP-Adresse gegenüber der Seite verstecken, auf die man zugreifen möchte. Dazu wird der ganze Verkehr verschlüsselt (schon vom Client weg) durch das Tor-Netzwerk geschickt und das über mehrere Tor-Server hinweg. Der Weg ändert sich von Zeit zu Zeit, damit einem Angreifer es nicht zu leicht gemacht wird, den Weg zurück zu verfolgen. Was Tor allerdings nicht verbergen kann, ist alles, was der Browser mitschickt also z.B. Cookies oder Informationen, die über JavaScript ausgelesen werden. Dafür gibt's den Proxy Privoxy. Das Teil ist so mächtig, das ich mir eine genaue Beschreibung spare ;-) Wir wollen momentan nur erreichen, das der Browser möglichst wenig Informationen über uns rausrückt und das tut Privoxy schon sehr gut in der Defaulteinstellungen.
Eine Beispielkonfiguration von Tor liegt in /etc/tor. Dort kopieren wir die Datei torrc.sample nach torrc. Dort drin muss man eigentlich nicht viel umstellen. Die Defaulteinstellungen sind eigentlich ok. Tor startet man dann einfach mit
/etc/init.d/tor start
Damit der Service nach dem Rechner-Reboot wieder startet, führen wir noch
rc-update add tor default
aus. Dann wechseln wir zur Konfiguration von Privoxy nach /etc/privoxy. Dort müssen wir Privoxy in der Datei config mitteilen, das alle Anfragen über das Tor-Netzwerk laufen sollen. Also fügen wir am Besten (ist aber eigentlich egal) unter forward-socks4 and forward-socks4a Folgendes hinzu (wenn man die torrc nicht verändert hat diesbzgl.):
forward-socks4a / localhost:9050 .
Privoxy hat einen sehr großen Regelsatz. Da steht z.B. drin, das Anfragen an bestimmte Ad-Server (da wo die Werbung herkommt) rausgefiltert werden, Kommandos seitens des Servers zum Setzen eines Cookies entfernt werden, usw. Die Regeln und Aktionen findet man in den Dateien, die mit action oder filter enden. Die Dateien sollte man sich wirklich einmal genauer ansehen, aber Änderungen nimmt man nur in der user.action vor. Da diese Datei als Letztes eingelesen wird, überschreibt diese Datei Regeln, die in den davor genannten Dateien definiert wurden. Möchte man z.B. von bestimmten Seiten doch Cookies zulassen, fügt man diese Seiten einfach unter dem Abschnitt { allow-all-cookies } ein. Die Dateien sind sehr gut dokumentiert und es sind viele Beispiele drin. Einfach mal anschauen. Passt hier dann alles, starten wir Privoxy:
/etc/init.d/privoxy start
Auch hier wollen wir, das Privoxy beim Starten des Rechners ebenfalls hochkommt:
rc-update add privoxy default
Wenn man nun im Firefox unter den Verbindungseinstellungen angibt, das man über den Proxy localhost:8118 surfen möchte, schickt Firefox alle Anfragen an Privoxy, welcher dort alle sicherheitsrelevanten Angaben entfernt (wir wollen ja möglichst unerkannt bleiben) und leitet es an den Tor-Daemon weiter, welcher die Daten dann verschlüsselt und sie an's Tor-Netzwerk durchreicht. Man darf sich vom Tornetzwerk nicht allzu viel Performance erwarten. Das Ganze ist relativ langsam, aber man kann damit leben.
Wir können nun aber in den Firefox ein Skript laden, das genau definiert, welche Seiten wir über das Tor-Netzwerk besuchen wollen und welche Seiten direkt angefragt werden sollen. Das Ganze ist JavaScript sehr ähnlich und sieht z.B. so aus:
function FindProxyForURL(url, host) {
if (isInNet(host, "193.222.168.0.", "255.255.255.0") ||
dnsDomainIs(host, ".boeseseite.de") ||
return "PROXY localhost:8118";
} else {
return "DIRECT";
}
}
Hier legen wir also fest, das Anfragen an das komplette Class-C Netz 193.222.168.0/24 und an boeseseite.de über Privoxy und damit über das Tor-Netzwerk laufen und der Rest ganz normal direkt angefragt wird. Man kann damit noch viel mehr machen. Genaueres gibt es hier nachzulesen: Navigator Proxy Auto-Config File Format
Diese Datei muss beim Firefox dann nur noch in den Einstellungen/Erweitert/Netzwerk angegeben werden z.B. file:///home/user/proxy/proxy.pac und schon werden die Einstellungen aktiv. In diesem Sinne...
( Aug 21 2007, 06:00:00 AM CEST ) Permalink Comments [0]


