Schlagwort-Archive: Gentoo

Gnome vs. MIME – Wenn alles text/plain ist

In den letzten Tagen machte mein Gnome auf mehreren Rechnern macken: Alle Dateien wurden plötzlich von Nautilus als „text/plain“ erkannt – MP3 und PNG wollte er im Texteditor öffnen usw. Schuld ist offenbar ein Update, welches auch das Format der MIME-Datenbank ändert. Abhilfe schafft der Befehl „update-mime-database“. In meinem Fall musste ich für den Befehl noch eine Datei mit benutzerdefinierten Einstellungen unter ~/.local/share/mime löschen – da bei mir nichts wichtiges drin war kein Problem. Als Abschluss wegen Restart- und PID-Suchfaulheit ein „killall nautilus“ und schon lassen sich die Dateien wieder richtig bearbeiten.

1x Installieren, 2x Patchen

Sowas kenn ich sonst nur von Windows-Spielen, aber offenbar dienen die bein einigen Ebuilds als Vorbild. Erwischt hat mich avidemux in zugegeben etwas ungewöhnlicher Konstellation: Avidemux, ein Videoschnitttool, kommt normal mit GTK- oder QT4-Oberfläche, lässt sich aber auch ohne in einer CLI-Version bauen. Obwohl ein reiner CLI-Build also möglich ist besteht das Script des Avidemux-Projektes zwingend auf libX11. Das ebuild was eigentlich korrekt – mit „-qt4 -gtk“ wird libX11 nicht als Dependency gezogen, das erwähnte Script killt aber den build-Prozess. Inzwischen hab ich das ganze halbwegs zusammengeflickt – zugegeben: Es gibt schönere Methoden, aber fürs erste ist damit eine CLI-Version ohne X11-Installation möglich.

Nächster Volltreffer war mein Hardened-GCC. Dessen Linker beißt sich irgendwie mit avidemux. Hier kann man als Workarround für den Build per gcc-config auf den -vanilla GCC wechseln.

OK, genug gepacht für Gestern. Morgen wirds dann irgendwann nach der Herstellung eines Labyrinths aus Heizungsrohren im neuen Bad meiner Eltern an den neuen Servern weiter gehen. Ich möchte zumindest die derzeit abgeschalteten Dienste zeitnah auf dem neuen Server online bekommen. Hosting folgt dann in den nächsten Monaten wenn ich alles durchgetestet und sichergestellt habe, dass mein SMS-Monitoring sich nicht unbemerkt über eine Woche verabschiedet :/.

Neues Jahr, neuer Server

Schon einige Jahre hat er auf dem Blechkasten, mein derzeitiger Webserver, der seit dem geglücktem Start der Rhein-Blogger vor einigen Tagen auf 18 aktive Webseiten kommt. 3GHz und 1GB RAM reichen noch aus, aber da der Anbieter Preise wenn überhaupt nur erhöht ist das Preis- Leistungsverhältnis nun nicht mehr tragbar. Das neue Zuhause ist bereits online und wird grade fleißig eingerichtet: Ein Intel Core2 Duo E8400 @2×3.00GHz sorgte zusammen mit den 4GB RAM schon beim Kompilieren für freudige Gesichter, zudem bringen die 2 750GB SATA2-Platten im RAID1 doch etwas mehr Durchsatz als die 160er-Platte aus SATA-Urzeiten.

Wenn schon neu, dann richtig. Erste Amtshandlung war es natürlich das vorinstallierte System zu löschen und mein gutes, altes Gentoo zu installieren. Dieses mal aber mit einer kleinen Besonderheit: Da der Server mehrere IPs besitzt machen VMs nun mehr Sinn. Um nicht unnötig Leistung zu verlieren kommt das Rennpferd unter den Virtualisierungslösungen zum Einsatz: Xen. Zudem wird der neue Server ein 64Bit-System verwenden.

Die ersten Systeme sind bereits online: Die dom0 ist ein Gentoo x86_64 mit dem 2.6.18er XEN-Kernel (neuere sind nicht geplfegt). Am Ende wird diese nur noch beschränkten Netzzugriff haben, daher hoffe ich, dass der ältere Kernel keine Probleme veranstaltet. Eine domU ist läuft mit 2.6.27 hardened (.18er hat noch einen Bug) und wird momentan von einem Arbeitskollegen vergewaltigt eingerichtet. Auch im Hostingsegment wird sich einiges ändern: FastCGI, APS und Dovecot sind nur einige Schlagwörter auf meiner ständig wachsenden Liste.

Was mich aber am meisten beeindruckt: Bisher habe ich alles im ersten Anlauf online bekommen – offenbar zahlt sich die wochenlange Planung mit 2 Testservern im heimischen „Serverraum“ aus.

Audio over Ethernet in Aktion

So ein kaputter Kopfhöreranschluss kann auch was Positives haben: Da ich momentan nicht auf mein Soundsystem verzichten wollte kam mir Pulseaudio wieder in den Sinn. OK, mein Server kann mangels 3.3V-fähiger Soundkarte noch immer nur Stereo über USB ausgeben, aber trotzdem ein gutes Stück besser als ein Headset. Inzwischen kann ich auch wieder die Nachbarn nerven: Mein Laptop streamed per RTP die Daten direkt zum Server, der sich um die Ausgabe kümmert. Das ganze funktioniert besser als gedacht – keine Lags o.ä. und auch von den Qualitätsproblemen, die mich beim letzten PA-Versuch am Mediacenter quälten, ist nichts mehr zu sehn. Schön, schön.

Bastelarbeiten zum Jahresende

Eine Woche Urlaub hinterlässt spuren. Der Schreibtisch hat sich in ein riesiges Steckbrett verwandelt und der Boden dürfte sich irgendwo unter der zentimeterdicken Schicht der Testverkabelung befinden. Obwohl die Post offenbar schon Weihnachtsurlaub hat und mir noch einiges an Hardware fehlt konnte ich doch einige Punke auf meiner Liste abarbeiten:

Zum einen habe ich den schwachen Dollar etwas ausgenutzt und meinem Server noch ein paar Festplatten spendiert. Neben dem bisherigem Terrabyte für die Daten (4x250GB, SATA-1, RAID 5 = effektiv 750GB) gesellen sich jetzt 2 weitere Terrabytechen ins Gehäuse (4x500GB, SATA-2, Controller PCI-X 64Bit, RAID 5 = effektiv 1,5TB) und erhöhen damit die Kapazität aller 13 Festplatten auf physikalische 3,1TB. OK, irgendwie muss ich noch einen Lüfter dabeizaubern – bei Volllast kratze ich an der 40°C-Marke. Zwar sind die Platten laut Datenblatt bis 60°C ausgelegt, aber man muss ja nichts riskieren.

1186811863

Nächster Punkt ist mein zusätzliches „Brandmeldesystem“. Zwar fehlt immernoch die endgültige Platine der Zentraleinheit, aber inzwischen hängen meine Rauchmeldeeinheiten in den Räumen, können lokal im Bandfall einen akustischen Alarm geben und liefern bereits Temperaturmesswerte an meinen Server, der fleißig Diagramme zeichnet. Die Stromversorgung läuft über ein überwachtes Schaltnetzteil, ist mit mehreren dezentralen Bleiakkus gepuffert, jeder Sensor hat eine separat abgesicherte Leitung und alle Sensoren werden (wenn die Zentraleinheit läuft) ständig auf korrekte Funktion überwacht.

Zwischendurch hat sich dann noch meine Workstation zu Wort gemeldet – ein RAID1 schützt vielleicht vor Festplattenausfällen, aber gegen Probleme des Dateisystems (ext3) ist auch das machtlos. 4 Stunden später lief ein neues Gentoo auf dem System und dank den letzten Updates klappt trotz 64Bit jetzt sogar Flash. UT ist natürlich auch drauf 😉

Meine Wetterstation närt sich langsam wieder einem funktionsfähigem Zustand – inzwischen konnte ich die Fehlfunktionen auf einen kaputten Sensor zurückführen. Zusammen mit dem Funksender können so jetzt wieder Temperatur und Luftfeuchte ermittelt werden. Auch der Luftdrucksensor müsste funktionieren, ist aber noch nicht kalibriert. Der Regensensor ist hardwareseitig auch fertig, hier fehlt noch eine passende Ergänzung Software. Gänzlich fehlen meine letzten Wunschsensoren für Wind und Sonnenenergie, die danach irgendwann mal in Angriff genommen werden.

Bei iSys bin ich noch nicht weiter. Zwar schau ich mir zwischendurch immer mal wieder einzelne Softwareteile an, aber auch hier warte ich noch auf meine Platinenbestellung, denn Softwaretest auf dem Steckbrett sind recht aufwändig.

Ansonsten herrscht das übliche Weihnachtsgeraffel – Geschenke organisieren etc. Nebenbei noch Zertifikate erneuern (ja, ich weiß, der IMAP-Server fehlt noch) und packen müsste ich natürlich auch noch…

Ungeplante Migration

Uff, Was für ein Marathon. Eigentlich hatte ich am Freitag ja noch gute Laune, als der Postbote – passend zum freien Tag – meinen neuen Server durch die Tür schleppte. 2 Sockel mit je einem soliden Xeon 3.06GHz, 4GB RAM und netten Spielereien wie z.B. IPMI (aka mein BIOS kann TCP/IP) sollten wieder für einige Zeit Beschäftigung bieten. Außerdem ist er deutlich leiser und dank Speedstep & Co dürften auch die Stromkosten etwas sinken. Da allerdings mit der neuen Hardware einige Anschlüsse wegfallen wollte ich eigentlich langsam umsteigen. Erst mal in Ruhe ein aktuelles Gentoo drauf, dann meine Steuerung passend umstellen und schlussendlich dann den alten Server abschalten.
Nunja, das war der Plan, die Praxis kam etwas überraschender. Gerade hatte ich das frische Gentoo auf der neuen Kiste gebootet und eine ellenlange Liste an Portage übergeben gab es als Quittung nur eine Fehlermeldung: Der Portage-Tree wäre ungültig. Huh? Der Tree liegt auf meinem Server und ist per NSF an alle Rechner verteilt – was soll da jetzt auf einmal ungültig sein. Die Antwort war nicht sehr erfreulich: Mein alter Server hatte den Dienst quittiert. Offenbar waren die frostigen Temperaturen zu viel für eine LAN-Karte, die nun den ganzen PCI-Bus lahmlegte. Naja, also die große Auswahl: Weiter arbeiten ohne Internet und mit „lediglich“ 100MBit/s im LAN oder direkt den neuen Server fertig aufsetzen. Naja, dir Grundfunktionen sollte der Neuling packen – Routing steckt in einer VM und zur Steuerung reicht PHP. PHP ist schon drauf, also Platten und Karten umgebaut und gestartet. Schnell noch VMware installieren – ach halt. Kein Internet. Auf den alten Platten lagen natürlich auch die Distfiles und somit eine passende Version des VMware Servers. Installiert, Konfiguriert, Gestartet, Connected, … nichts. Keine Reaktion. Hier macht sich der große Nachteil von Closed Source bemerkbar: Debuggen Fehlanzeige. „Es ist ein Fehler aufgetreten – der Fehler lautet:“ – nunja, kein Fehler ist auch ein Fehler.

OK, also den VMware-Server auf meinem Laptop installiert und notdürftig den Router zum Booten verholfen. Im Netz auch nichts Neues. Viele kennen den Fehler, nur eine Antwort sucht man vergebens. Mein erster Gedanke war nun direkt auf KVM zu setzen, da dies inzwischen sogar PCI-Karten an VMs weitergeben kann lässt sich damit viel Zeit vertreiben. Dummerweise unterstützen die CPUs keine Hardwarevirtualisierung, womit nur QEmu übrig bliebe. QEmu ist die Lösung, die mir schon öfter Offline-Tage beschert hatte, weil der Netzwerkstack nicht immer so will wie ich. Dann kam mir wieder VMware in den Sinn – die Version 2 des Servers ist seit kurzem stable, im entsprechenden VMware-Overlay fand sich auch schon ein passendes Ebuild und siehe da: Nach etwas gebastel startet sogar das neue Webinterface. OK, ich musste zwar den halben Laptop neu kompilieren, weil das Plugin nur mit USE=“accessibility“ funktioniert, aber immerhin konnte ich danach meine zwischenzeitlich neu geladene Version von Endian in eine serverseitige VM bannen.

Nächste Baustelle war meine Steuerung. Die Relaiskarte mit serieller Schnittstelle lässt sich ja noch recht einfach zur Zusammenarbeit überreden, bei meinen Schaltergebastel am Parallelport ist das schon schwerer: Zwar ist das Ganze prinzipiell auch mit dem neuen Server möglich, aber der Parallelport ist hier nur intern auf einem Pfostenstecker ausgeführt. Dumm, wenn man seinerzeit neben den Drähten auch die nötigen Widerstände direkt auf den Sub-D-Stecker gepflastert hat. Als Lösung muss wie immer der Holzhammer her: Jetzt pollt ein kleiner Atmega8 die Schalter und gibt die Daten seriell an den Server weiter. Als kleiner Bonus fragt der in der Leerlaufzeit noch meine 1wire-Thermometer ab, sodass ich trotz der Blockade beider COM-Ports nicht auf die Temperaturen verzichten muss. Auf Dauer auch keine Lösung, dafür habe ich wie schon erwähnt andere Pläne: Nachdem ich während dem Kompilieren etwas mit meinem AVR-Zeugs gebastelt habe konnte ich die ersten beiden MCP2515, trotz der von mir gehasstem SMD-Bauweise, zum reden bringen. Das ganze war so stabil, dass jetzt direkt ein kleines Paket mit MCP2515s zu mir unterwegs ist (diesmal in DIP). Dabei sind auch ein paar weitere Atmega’s – u.A. passend für einen iSysBus Devnode.

Inzwischen geht also sogar das Licht an, wenn ich den Schalter betätige und „mein“ Internet ist wie auch die Datenfreigaben zurück auf dem Schirm. Einzige dringende Problemstelle ist das Soundsystem: Meine alte Soundkarte lässt sich nicht in den neuen Slot prügeln – die Karte besteht auf ihre 5V Versorgungsspannung, mein Server hält nur Slots für 3,3V bereit. Schlecht, wenn der Server normal als Wecker dient: Zwar sollte mein Handy hier temporär ausreichen, aber irgendwie ist das nicht immer laut genug :/. Naja, ich mach mich dann auf die Suche nach einer passenden Soundkarte, aber erst mal begebe ich mich jetzt wieder an meinen Terminkalender: Die ersten Konzerttermine für 2009 zeichnen sich ab um zwischen Weihnachten und Neujahr war ja auch noch Etwas.

Unbekannte USB-Geräte unter VMWare automatisch nutzen

Vor einiger Zeit hatte ich mal in meiner schlauen Kategorie einen kleinen Hinweis versteckt: Möchte man auf neueren Linux-Systeme ein Gerät ohne Linux-Treiber an eine VMWare anhängen quittiert diese mit einer Fehlermeldung – das USB-Gerät könnte nicht genutzt werden. Abhilfe schafft der erwähnte Befehl “ echo 1 > /sys/bus/usb/devices/*USB-ID*/bConfigurationValue“ – allerdings hilft dies immer nur kurzzeitig – wird das USB-Gerät entfernt oder der PC neu gestartet muss die Konfiguration beim nächsten mal neu gesetzt werden. Abhilfe schafft eine udev-Rule, welche unter Gentoo z.B. „/etc/udev/rules.d/06-VmwareUsbFix.rules“ heißen kann:

BUS="usb",
SYSFS{idProduct}=="bbbb",
SYSFS{idVendor}=="aaaa",
RUN+="/bin/sh -c 'echo 1 > /sys/$devpath/device/bConfigurationValue'"

Die Werte für Vendor und Product lassen sich per lsusb ermitteln. Das ganze kann auch um Seriennummern o.Ä. erweitert werden, wenn die Zuordnung über die o.g. IDs nicht genau genug ist. btw: Mit entsprechenden Named Pipes & co kann man hiermit auch ein automatisches attachen an eine QEMU/KVM einrichten.

Distributed Multihead X (Xdmx) Howto

Hinweis: Der Artikel ist schon etwas älter, ich habe das Vorhaben bisher nicht fertig gestell, aber eventuell helfen die Angaben ja dem Ein oder Anderem

Bild: http://adlersa.yotaweb.de/gallery2/gallery2/d/6477-3/Bigdesktop.jpg?g2_GALLERYSID=33658476444b24a4cf10b9eac3d4ead9Ja, ich geb ja zu, ich bin Monitorsüchtig. Normal arbeiten hier zwei 19″er an einer NVidia-Karte per TwinView, für noch mehr Übersicht muss von Zeit zu Zeit mein Laptop herhalten. Hierbei wird auf dem Hauptrechner ein virtueller Monitor emuliert und dessen Inhalt per Ethernet auf den zweiten Rechner verfrachtet. Ein ähnliches Setup hatte ich bereits zu meinen Windows-Zeiten mit MaxiVista. Unter Linux muss ich mich natürlich etwas Neues suchen – das Zauberwort heißt Xdmx. Dieser X-Server kann mehrer andere X-Server zusammenfassen. Oder wie es die Wiki schimpft: „It acts as a proxy X Window server for multiple back-end X servers.

Gentoo-User haben es hier einfach – Xorg (x11-base/xorg-server) hat dmx als USE-Flag – einmal setzen und schon werden alle Tools und Libs emerged. Unter Debian müsste das passende Paket xdmx-tools heißen. Zusätzlich ist Xnest zum Testen ein praktischer helfer – Gentoo-XOrg hats dabei, Debian-User sollten ein gleichnamiges Paket finden. Hiermit lassen sich virtuelle X-Server in einer laufenden Sitzung starten – ähnlich wie VNC.

Für den ersten Test werden auf dem Master zwei Xnester gestartet:

XSESSION="xterm" startx -- /usr/bin/Xnest :1 -geometry 640x480+0+0 -name Test1
XSESSION="xterm" startx -- /usr/bin/Xnest :2 -geometry 640x480+0+0 -name Test2

Ich nutze hier startx, da ich so in den Testservern ein Terminal erhalte und die Zugriffsrechte korrekt gesetzt werden. Danach kann der Xdmx gestartet werden:

Xdmx :9 -display :1 -display :2 -query localhost

Die beiden display-Angaben verweisen auf die virtuellen X-Server. Das Query stellt eine Anfrage an den Loginmanager – ist dieser auf Remoteverbindungen eingerichtet zeigt sich auf den ersten Testfenster die Loginmaske. Ich hatte in dem virtuellen X einige Tastaturprobleme, da aber auf #2 das Terminal verschwand und im Xdmx beide Screens aufgeführt waren lasse ich den Test mal als erfolgreich durchgehen.

Weiter zu den echten Screens: Zuerst benötigt der Hauptrechner Zugriff auf meinen Laptop – dazu wird auf dem Zweitgerät per "xhost +192.168.x.y die entsprechende IP freigeschaltet. Zum test kann man mit DISPLAY="laptop:0" xterm (laptop=IP oder DNS) ein Fenster auf dem Slave starten. Funktioniert das kann Xdmx den Dienst antreten:

Xdmx :9 -display :0 -display laptop:0 +xinerama -query localhost

Das ganze lässt sich dann noch in entsprechende Startscripte verpacken. Beendet werden kann Xdmx mit Strg+Alt+Backspace

Info am Rande: Es soll auch eine zweite Software geben, welche als OpenGL-Proxy dient, damit könnte eine einfache 3D-Beschleunigung möglich sein.

Noch ein paar Infos:

TwinView (NVidia) wird als ein großer Bildschirm erkannt

Statt TwinView 2 separate X-Screens einstellen. Geht z.B. über das NVidia-GUI

Gnome startet nicht/Macht Probleme/etc

Gnome kann pro Rechner und User nur 1x gestartet werden. Am besten mit einem anderen User oder einem anderen Windowmanager Xdmx starten

Tastaturlayout

-param XkbModel pc104 -param XkbLayout de -param XkbVariant nodeadkeys

Im Falle von Gnome unter System->Einstellungen->Tastatur entsprechend anpassen.

Probleme mit Schriftarten

Mittels -fontpath kann man die entsprechenden Pfade angeben. Fuer mein Gentoo z.B.

-fontpath /usr/share/fonts/local -fontpath /usr/share/fonts/misc -fontpath /usr/share/fonts/Type1 -fontpath /usr/share/fonts/TTF -fontpath /usr/share/fonts/75dpi -fontpath /usr/share/fonts/100dpi

Darstellungsprobleme

Folgende Optionen schalten einige Optimierungen ab – am besten selbst probieren was hilft. In meinem Fall reichte der noglxproxy um die meisten Programmfehler zu beheben und Videoplayer ans laufen zu bekommen:

-ignorebadfontpaths -noglxproxy -norender -nosubdivprims -nowindowopt -nooffscreenopt

Weitere Infos:

Multiseat X

Ein Rechner, ein User – so oder so ähnlich dürften die meisten PC-Setups aussehen. Während in Firmennetzen mit Terminalservern wieder eine Rückbesinnung auf die Mainframe/Terminal-Architektur Einzug gefunden hat sind solche Ansätze bei einzelnen PCs eher weniger verbreitet. Keine Verbreitung heißt aber nicht, dass so etwas unmöglich ist. Vor einigen Jahren berichtete bereits die c’t über diese Möglichkeiten, aus Mangel an Interesse überflog ich die Seiten aber nur grob.

Zwischenzeitlich hat sich dann doch eine Idee ergeben, mein Server sollte dran glauben – mit Onboard Cirrus-Karte und einer Radeon PCI ging es in den Test. TFT+Touchscreen starten eine X-Sitzung mit meinem Frontend, die Cirrus-Karte darf unterdessen mit Tastatur und Maus die zweite Bedieneinheit bilden und sich mit xterm & co rumschlagen.

Erster Blick auf die Dokus: Kernel über 2.4.irgendwas sollte passen, mehrere Grafikkarten ebenfalls und ein X.org über 6.9 sollte ebenfalls keine Hürde darstellen. Durch meine Basteleien mit (X)DMX (ops, ich seh grade die Doku hab ich nie veröffentlicht) ist mir noch so einiges aus der xorg.conf im Kopf, daher kein wirkliches Problem eine passende Grundconfig zu schreiben, die Anpassungen für Multiseat liefert die Gentoo-Wiki.

Der erste Teststart mit beiden Monitoren brauch ein paar Minuten – die I2C-Verbindung für DDC ist über 20m Monitorkabel wohl nicht gerade zuverlässig. Trotzdem starteten beide Monitore zufriedenstellend. Als nächstes der Start mit einzelnen Monitoren, leider nicht ganz so erfolgreich – jeder für sich startet problemlos, simultan jedoch kommt die Radeon aus dem Tritt und verabschiedet sich bis zum nächsten Reboot (genauer: Es werden falsche Monitorfrequenzen berechnet – laut Log soll die Radeon plötzlich irgendwas zwischen -32000000MHz und 32000000MHz unterstützen). Auch der versuch die PCI-Isolierung über die X-Argumente zu regeln brachte leider keinen Erfolg. Scheint, als ob ich bei Multihead bleiben muss, auch wenn dadurch beide Monitore nicht komplett unabhängig betrieben werden können.