Sonntag, Oktober 9 2011

ATI Catalyst Treiber unter Ubuntu entfernen

Einige Leute werden das Problem kennen: Aus Neugier installiert man den offiziellen proprietären ATI/AMD Treiber für Linux von der Homepage und stellt danach ernüchtert fest, dass das System langsamer geworden ist und scrollen und Fenster verschieben nur sehr hakelig von statten geht. Will man nun den offiziellen Treiber wieder loswerden, stellt sich die Frage nach dem wie!?! ATI hat eine einfache übersichtliche GUI erstellt um die Module zu kompilieren und zu installieren, eine einfache Deinstallationsroutine ist allerdings nicht integriert. Wer nun den fglrx Treiber komplett entfernen möchte, manövriert in das Verzeichnis /usr/share/ati und führt dort als Root User (sudo) das Skript fglrx-uninstall.sh aus. Damit sollte der Treiber und seine Überreste nach einem Neustart ins Nirvana verschwunden sein.

Montag, Juli 18 2011

Primary Monitor festlegen in Ubuntu 10.10 Gnome

Als ich meinen zweiten Monitor als Desktoperweiterung an meinen PC anschloss, stand ich vor dem Problem, dass der zweite Monitor immer der Primärmonitor wurde. Doch genau das war ja nicht gewünscht, denn der zweite Monitor sollte eben nur eine Erweiterung zum Hauptmonitor sein. Der Hauptmonitor ist per DVI angeschlossen und der Sekundäre per VGA. Nach einigem googlen stiess ich auf die Information, man solle die ~/.config/monitor.xml ändern, was in meinem Fall überhaupt nicht funktionierte. Um die Monitore richtig einzurichten, habe ich xrandr bemüht und sofort das richtige Ergebnis erhalten: Zuerst muss festgestellt werden, wie der Hauptmonitor heisst, dazu reicht der einfach xrandr Aufruf in der Konsole, was in meinem Fall die Monitore DVI-0 und VGA-0 zu tage förderte. Mittels xrandr --output DVI-0 --primary kann so der DVI Monitor als Primärmonitor gesetzt werden. Voila!

Freitag, Juli 15 2011

Mini OS: Android für x86, SliTaz und xPud und Co

Was viele schon von ihrem Smartphone kennen, findet nun auch auf dem heimischen PC Einzug: "Android" bzw. Android x86, ein speziell für x86 Architekturen aufbereitetes Androidsystem. Dies klang erstmal ziemlich gut und sollte seinen Platz auf meinem Futro S200 finden, dessen installiertes Browserlinux scheinbar überfordert war. Wie ich später herausfand, lag das wohl an der Inkompatibilität des Transmeta CPU mit dem Linuxkernel, welcher die CPU als i686 erkennt. Leider ist der TM Crusoe 800 jedoch kein vollwertiger i686 Prozessor, was sich durch Freezes und Systemträgheit bemerkbar machte. Daraufhin wollte ich Adroid x86 versuchen, welches in einer virtuellen Maschine schon einen sehr guten Eindruck machte und, so dachte ich, die schwachen Resourcen des Futro perfekt ausnutzen würde. Leider Fehlanzeige, denn mit keinem Kernelparameter konnte ich Android x86 mit dem Transmeta Crusoe zum Booten bewegen, sämtliche Versuche endeten mit einem schlichten "Unsupported CPU". Also suchte ich weiter nach einer schlanken und leistungsfähigen Distribution die sich mit der Futro Hardware verstand und stieß nach einiger Suche auf die Distribution SliTaz. Sehr vielversprechend wurde die CPU sofort erkannt und SliTaz bootete fix bis zum Desktop. Erstaunt von der Geschwindigkeit die dann doch mit wenig Speicher und schwacher CPU zu erreichen war testete ich das Surfen im Internet. Der mitgelieferte Midori Browser inklusive Flash Plugin lief für die gegebenen Verhältnisse wirklich zügig, jedoch schien SliTaz doch etwas zu überladen. So versuchte ich xPud, dessen Konzept mich voll überzeugt hat. Denn xPud stellt nur eine absolut minimale Oberfläche zur Verfügung, enthält aber einen aktuellen Firefox mit Flash Plugin und einige kleinere Programme, wodurch xPud eine größe von nur wenigen MB erreicht. Theoretisch, kann man mittels eigenem "Appstore" noch ein paar Programme nachladen (Skype, Mediaplayer usw.) was jedoch bei mir nicht funktionierte. Insgesamt stelle ich fest, dass es sich manchmal sehr lohnen kann sich nach Minidistributionen umzusehen, denn ein System wie xPud ist so klein und so schnell gestartet, dass es sich zur Installation neben einem Windows anbietet, da es eine Bootzeit von nur wenigen Sekunden hat. Quellen & weitere Mini Linuxe: www.android-x86.org/ www.slitaz.org www.xpud.org/ www.puppylinux.org www.browserlinux.com

Donnerstag, Mai 12 2011

Der verflixte lila-blank-screen-post-Grub Fehler

Da es anscheinend kaum jemanden zu geben scheint der das folgende Problem mit dem Grub2 Bootloader hat/gelöst hat, will ich es mal auf diesem Weg versuchen; Vielleicht hat ja jemand eine passende Lösung parat? Nach der (Neu)Installation von Ubuntu Natty Narwhal und dem damit verbundenen Reinstall des Grub2 Bootloaders  fingen die Probleme an. Eigentlich kein wirkliches Problem, aber nervig allemal: Nach der Auswahl des Bootmenüeintrags verschwindet das Menü und Grub hängt nun gut 10 bis 15 Sekunden fest, dabei bleibt der Bildschirm komplett lila (Im Prinzip verschwindet nur der Text vom Menü). Der Rechner tut jedoch die ganze Zeit lang nichts! Dann lässt sich der restliche Bootprozess in der Konsole ablesen, jedoch keine Fehlermeldung oder ähnliches. Plymouth habe ich deaktiviert um das Problem sicher eingrenzen zu können. Auch an den Grafiktreibern kann es nicht liegen, da ich statt der proprietären ATI Treiber, die freien radeon Treiber verwende. Ich habe nun schon mit einigen Kernelparametern und Grub Optionen herumgespielt, viel gegoogelt und gelesen, jedoch lies sich das Problem bisher nicht lösen. Auch mit bootchart konnte ich nichts ungewöhnliches feststellen (...klar eigentlich, das Problem tritt ja vorher auf...). Für Tipps und Ideen bin ich dankbar!

Mittwoch, April 13 2011

Nach DSCPs filtern mit ngrep

Da ich aus den man-pages von ngrep nicht wirklich schlau geworden bin, wie man nun auf einzelne Bits im IP Header prüft und daraus Filter baut, will ich den Vorgang kurz am Beispiel von DSCPs erläutern. Auf sämtlichen Websites finden sich nur Erklärungen zum Filtern nach einfachen Attributen wie z.B. IP, Port oder bestimmten Signalwörtern wie Login oder Mail, komplexere Filterbeispiele findet man jedoch kaum. Um nun DSCPs filtern zu können muss das entsprechende Feld im IP Header durchsucht werden und mit dem Hex-Wert für den jeweiligen DSCP verglichen werden. Das TOS Feld beginnt ab dem zweiten Byte des Headers, also muss ip[1] benutzt werden, statt ip[0] oder ip was das erste Byte auswählen würde. Nun gibt es zwei Möglichkeiten, entweder man filtert nach dem kompletten TOS Feld oder nur nach dem DSCP Wert. Der Einfachheit halber nehmen wir hier das gesamt TOS Feld, bestehend aus 6 Bits für den DSCP und 2 Bits für ECN. Nun rechnen wir unseren gewünschten DSCP Wert in einen Hex-Wert um. Dabei wird aus dem DSCP Wert AF32 <--> DEC 28 <--> BIN 011100 <--> HEX 0x1C Da die ECN Felder meistens leer sind, können wir in diesem Fall einfach zwei Nullen an unseren Binär DSCP hängen und haben somit das komplette TOS Feld ausgefüllt. Der Hex-Wert für das TOS Feld lautet demnach 0x70. Um nun mit ngrep nach DSCP AF32 zu filtern nutzen wir nun einfach den Befehl ngrep -i ip[0] == 0x70 und ngrep filtert. Gleiches lässt sich natürlich auch auf die IP Präzedenz Klassifizierung übertragen. Links: http://ngrep.sourceforge.net/ http://www.stearns.org/doc/ngrep-intro.current.html

Freitag, Februar 18 2011

Projekt: Lebensmittelverwaltung

Nach vielen vergangenen Tagen ohne Artikel, möchte ich mich mal wieder mit einer Projektvorstellung meinerseits zurückmelden. Wäre es nicht toll, einen intelligenten Vorratsschrank zu haben? Von einem Computer überwacht und mit automatischer Einkaufszettel-Erstellung, Statistiken und Rezeptvorschlägen? Genau dies habe ich, zumindest zu Teil, schon realisiert. Doch wie weiss man, welche Artikel sich in seinem Vorrats- bzw. Kühlschrank befinden? Klar, RFID! Aber diese Lösung scheidet aus: RFID Chips müssten an jedem Produkt vorhanden sein und ein entsprechender Reader müsste auch auf große Distanzen Chip IDs auslesen können. Systeme die das leisten könnten sind teuer und lassen sich von Otto Normal Verbraucher nicht bezahlen. Also greife ich hier auf eine ältere, aber dennoch bewährte Variante zurück: Den Barcode. Auf jedem Artikel findet sich ein Barcode, der schnell und einfach durch einen Barcode Scanner gelesen werden kann. Im Internet existieren einige Datenbanken, die zu EAN Nummern einen Produktnamen zurückgeben - soweit so gut. Kombiniert man nun diese Datenbanken mit einigen manuellen Eingaben, kann man sich seine eigene kleine Produktdatenbank anlegen. Da sich die Anzahl der unterschiedlichen Produkte in einer privaten Küche ungefähr abschätzen lässt, wird die Datenbank auch nicht unendlich gross. Realisiert wird das ganze System in PHP. Auf einem lokalen Server liegen die Scripte und die Datenbank und können einfach per Webbrowser aus dem LAN aufgerufen werden. Der Barcodescanner simuliert Tastatureingaben und so kann ein Barcode direkt im Browser in ein Formularfeld eingetragen werden. Dazu muss lediglich der Focus beim Laden der Webseite auf das Formular Element gesetzt werden. Das System auf dem der Browser läuft ist ein extrem sparsamer und lüfterloser Siemens Futro Thinclient mit 800Mhz Transmeta CPU, welcher im aktivbetrieb nach eigenen Messungen ca. 12-17W verbraucht. Als Softwarebasis dient ein schlankes Browserlinux Betriebssystem, ein Remaster, welcher auf der PuppyLinux Distribution aufbaut und auf einer internen CF Karte installiert ist. Zur Zeit befindet sich das System, insbesondere die Datenbank noch im Aufbau. Wenn der Großteil meiner Lebensmittel in der Datenbank steht und die PHP Scripte über den Teststatus hinausgehen, werde ich beides auch zu Download bereitstellen.

Samstag, Mai 22 2010

Ubuntu Server und die neuen Netzwerkkarten

Nachdem in meinem Server eine Netzwerkkarte ausgefallen war und ausgetauscht werden musste, bestellte ich direkt zwei neue. Schnell waren die Alten ausgetauscht und die Neuen eingebaut, doch nach dem Start des Servers Ernüchterung: Neben der auf dem Mainboard verbauten Netzkarte wurde nichts weiter gefunden! ifconfig gab keine Auskunft über die Netzkarten und auch der Versuch die Karten per ifup zu aktivieren schlug fehl. Komisch eigentlich, denn lspci bewies eindeutig, dass die Karten eingesteckt waren und laut Logs trat auch kein Fehler auf. Nach einiger Suche stiess ich auf die Lösung: Ubuntu legt in der Datei /etc/udev/rules.d/70-persistent-net.rules Informationen über Netzkarten, deren Namen, Hardwareadresse usw. ab. Da dort noch die alten Netzkarten als eth1 respektive eth2 eingetragen waren und die Neuen unter eth3 und eth4 geführt wurden, schien Ubuntu sie nicht weiter zu beachten. Nach dem Entfernen der Einträge der alten Karten und Anpassen der Namen sind die Karten nun wieder da und alles läuft wieder ohne Probleme.

Donnerstag, Mai 6 2010

Das externe Windows

Wer schon einmal versucht hat, Windows auf einer externen Festplatte zu installieren, wird wissen dass sich Windows dem gekonnt verweigert. Windows lässt sich einfach nicht auf externen Festplatten, Speichersticks oder -karten installieren (Anm. des Autors: Linux ist das egal...) . Doch probieren geht über studieren, denn die Idee die mir vorschwebte, war es eine Festplatte per E-SATA an den Rechner anzuschliessen und darauf Windows zu installieren. Doch auch das ging schief, denn der E-SATA Port in meinem Rechner nutzt einen anderen Controller als die internen SATA Ports, wie ich herausfand. Also, letzer Versuch: SATA auf E-SATA Slotblech, direkt auf dem Mainboard angeschlossen, Kabel rein und los... und diesmal klappte es perfekt! Für alle, die sich nun fragen, was das ganze soll: Mit dieser Lösung, habe ich die Möglichkeit bei Bedarf per Hardwarebootloader  (Stromversorgungsschalter an der Platte) Windows zu booten, ohne mein Linux System mit Windows Müll zu belasten und wilde Partitionen anzulegen. Also nochmal zusammenfassend: Windows auf externen Medien? - Nein! Ausser sie sind direkt an den Sata Controller angeschlossen.

Montag, Januar 11 2010

Schluss mit ext4 und 64 BITte nicht mehr...

Einge Zeit musste ich mich nun schon mit plötzlichen Systemfreezes herumärgern, die wohl scheinbar durch das Dateisystem ext4 hervorgerufen werden. Weder Logs noch etwas anderes konnte ich als andern Übeltäter identifizieren und so musste ext4 auf meiner Root SSD dem betagten, aber stabilen ext3 weichen. Wo ich schonmal dabei war, nutzte ich gleich die Gelegenheit um mich gleich auch von der 64bit Architektur zu trennen und die 32bit Version von Ubuntu Karmic mit PAE (Physical Adress Extension) Kernel zu installieren. Nun kann ich auch endlich Adobe AIR Anwendungen benutzen und auch performanceseitig scheint die 32bit Variante schneller zu sein, als ihr 64bit Pendant. Einziges Manko, welches ich nachträglich noch beheben musste, waren Probleme bei der Lüfterregelung. Aus irgendeinem Grund schien der Lüfter durchweg mit ca 80% Geschwindigkeit zu drehen, was den Rechner natürlich enorm laut machte. Mithilfe von lm_sensors bzw. pwmcontrol habe ich den Lüfter jetzt manuell eingestellt und nun herrscht glücklicherweise wieder Ruhe.

Montag, November 2 2009

USB Support in Virtualbox unter Ubutu Karmic

Das altbekannte Problem mit USB Geräten in einem Virtalbox Gast ist auch in Karmic Koala nicht behoben. Hier kann man allerdings nicht mehr vorgehen, wie ich in diesem Artikel beschrieben habe, weil sich bei Karmic einiges "unter der Haube" getan hat und das Script mountkerfs.sh nicht mehr existiert. Dennoch lässt sich der USB Support wieder leicht und schnell aktivieren: Zuerst den eigenen Benutzer zur Gruppe "vboxusers" hinzufügen, dies kann über die "Benutzer und Gruppen"-GUI unter System --> Systemverwaltung geschehen. Um Zugriff auf die USB Geräte zu aktivieren, muss zuerst wieder die Gruppen ID der vboxusers Gruppe herausgefunden werden. Die geschieht per cat /etc/group|grep vboxusers , was in meinem Fall die Ausgabe vboxusers:x:121:nox liefert. Die Zahl, hier 121 ist die Gruppen ID. Nun öffen wir die Datei /etc/fstab mit Root Rechten in einem Editor (z.B. per sudo gedit /etc/fstab ) und fügen am Ende folgende Zeilen ein: #virtualbox USB fix none /proc/bus/usb usbfs devgid=121,devmode=664 0 0 Wichtig hierbei ist, das hinter devgid die korrekte Gruppen ID eingetragen wird! Dann die Datei speichern und den Rechner neu booten, danach sollten sämtliche USB Geräte mit Virtualbox benutzt werden können. Refernzsystem ist hier Ubuntu Karmic Koala AMD64 Kernel 2.6.31-14-generic mit Virtual Box 3.0.10-54097 Ubuntu Karmic amd64.

Donnerstag, Oktober 15 2009

Die eigene Handschrift am PC

Heute bin ich auf eine sehr gute und interessante Webseite aufmerksam geworden: www.fontcapture.com ! Hier hat man die Möglichkeit anhand von Buchstaben-Schriftproben seine eigene individuelle Handschrift in den PC zu bringen. Dies funktioniert ganz einfach, zuerst druckt man sich einen Bogen aus, auf dem man dann sämtliche Buchstaben, Zahlen und Zeichen einträgt. Hat man dies ordentlich erledigt, muss man die Seite einscannen und die gescannte Datei zu fontcapture.com hochladen. Auf dem Server wird dann aus den Schriftproben eine Truetype Schrift erstellt, die man sich in einer Vorschau mittels beliebigem Text anzeigen lassen und natürlich auch direkt downloaden kann. Die .ttf Datei muss bei Windows in den Ordner C:\Windows\Fonts und unter Linux zum Beispiel nach \usr\share\fonts\truetype. Die von mir produzierte Schrift, sieht wie folgt aus: writing

Mittwoch, September 9 2009

Flash in Chromium

Einige Zeit kann man nun schon den Browser Chromium testen, welcher auf Googles Chrome Engine basiert. Leider war es bisher nicht möglich Flash abzuspielen, was Chromium für mich als vollwertigen Browser ausschloss. Mittlerweile ist es aber möglich und auch ziemlich schnell erledigt, Flashvideos mit dem Chromium Broser zu sehen. Dazu muss lediglich die libflash.so, die vermutlich schon auf den meisten Systemen enthalten ist, von /usr/lib/adobe-flashplugin einfach nach /usr/lib/chromium-browser/plugins/ kopiert werden. Ist das Flashplugin noch nicht installiert, kann dies per sudo apt-get install flashplugin-nonfree installiert werden. Damit das Plugin auch genutzt wird, muss Chromium mit dem Parameter --enable-plugins gestartet werden, also chromium-browser --enable-plugins . Bisher läuft der Browser bei mir inklusiver Flash Plugin schnell und stabil, bleibt noch abzuwarten wie er sich in Zukunft entwickelt.

Samstag, September 5 2009

Alternative Linux mirware für den violet mir:ror

Wer den mir:ror von Violet unter Linux betreiben möchte, wird schnell feststellen, dass einige Dinge nicht so schön funktionieren wie auf eine Mac oder unter Windows. Nehmen wir mal eins der wichtigesten Beispiele: das Ausführen von Scripten. Die aktuelle mirware Version kann leider nur mit Windows .bat - Scripten und Mac OS Scripten umgehen. Tiefergreifende Shell Skripte unter Linux sind leider nicht möglich. Doch findige Leute haben sich dieses Problems angenommen und eine eigene "mirware" namens erawrim speziell für Linux gebastelt. Es arbeitet auf der Konsole und legt für jedes RFID Tag einen eigenen Ordner im ~/.erawrim Verzeichnis an, dessen Namen man zu Beginn einmal festlegen muss. In dem jeweiligen Ordner befinden sich standartmäßig 4 Dateien: pose.sh (zeigen) und retire.sh (entfernen), zwei leere Skripte, die mit Leben gefüllt werden dürfen. Zudem noch die Dateien lasttime und times welche einmal das Datum der letzten Sichtung des Tags und die Anzahl der bisherigen Sichtungen des Tags enthält. Der große Vorteil ist nun natürlich, dass man komplett selbst bestimmen kann, welche Aktionen ausgeführt werden sollen, wenn die Tags auf den Mirror gelegt werden. Auch komplexe Shellskripe sind damit startbar und auch die Sprachausgabe lässt sich relativ leicht durch espeak oder mbrola nutzen. Für schöne optische Anzeigen kann man das Gnome Notification Framework nutzen. Ein wirklich großer Vorteil gegenüber der original mirware ist allerdings noch gar nicht beachtet worden: die Unabhängigkeit von violet und ihren Servern bzw. dem Internet, was die Erkennungs- und Ausführungsgeschwindigkeit enorm steigert. Da die Software bisher nur in Französisch mit französischer Dokumentation vorliegt, werde ich kurz erklären wie man erawrim installiert und lauffähig bekommt. 1) Zuerst die aktuelle Version aus dem SVN besorgen mittels: svn checkout http://erawrim.googlecode.com/svn/trunk/ erawrim-read-only 2) Nun in das Verzeichnis erawrim-read-only wechseln und mittels make && sudo make install kompilieren und installieren. 3) Nun den Mirror vom USB Anschluss trennen und den erawrim deamon mit erawrim_do start starten. 4) Jetzt wird man auf französisch aufgefordert den Mirror einzustöpseln und danach mit ENTER zu bestätigen. Hat alles geklappt wird dies durch z.B. Ouverture réussie: /dev/hidraw2 angezeigt. Möglich sind auch andere hidraw Geräte. 5) Das wars auch schon fast! Nun kann ein RFID Tag registriert werden. Legt man ein Tag auf den Reader, wird man aufgefordert einen Namen für das Tag/Objekt einzugeben. Diesen gibt man ein und bestätigt mit ENTER. Damit ist das Objekt registriert und die jeweiligen Skripte können nur im Ordner ~/.erawrim/<Objekt/RFID-Name>/ nach den eigenen Wünschen angepasst werden. Das Skript benötigt beim Start einmal Root Rechte für den Zugriff auf den Mirror. Tipps und Ideen gibts hier (auf Französisch): http://noog.fr/blog/2009/03/22/mirror-de-la-societe-violet-sous-linux/ Die erawrim Seiten bei google code: http://code.google.com/p/erawrim/

Dienstag, September 1 2009

Netzwerkstatistiken mit vnstat

Nachdem nun das Routing des Servers gut funktioniert, dachte ich mir es wäre sicherlich hilfreich eine kleine Statistik über den ein- und ausgehenden Netzwerktraffic zu bekommen. Statistikprogramme gibt es viele, aber die meisten sagten mir nicht zu. Entweder war der Aufwand der Konfiguration übertrieben hoch oder das Monitoring zu unübersichtlich oder für "mal eben gucken" zu aufwändig. Im Endeffekt habe ich mich für das Tool vnstat entschieden, welches wirklich einfach zu konfigurieren ist und mithilfe eines Webservers und eines kleinen PHP Scripts die Ausgaben übersichtlich und grafisch aufbereitet im LAN bereitstellt. vnstat findet sich in den Ubuntu Repositories und kann einfach per apt installiert werden und ist nach kurzem Anpassen der Config betriebsbereit. Das PHP Frondend findet sich hier.

Dienstag, August 11 2009

Multipath Routing... neuer Versuch

Wie sich nach gut einem Tag herausstellte, funktionierte das Multipathrouting doch nicht so gut wie gedacht. Das Problem war anscheinend das einige Pakete nicht korrekt ihren Weg ins/durchs Netz fanden und durch Loops bzw. falsch konfigurierte Routingtabellen das Netz derart stark verstopften, dass fast keine vernünftige Konfiguration mehr möglich war. Auch netzinterne pings wiesen eine Latenz von mehreren Sekunden auf! Das Aufteilen der beiden Router auf unterschiedliche Subnetze brachte auch keinen Erfolg, mit dieser Konfiguration kam gar keine Internetverbindung zu stande. Vermutlich weil die Clients nun keinen DNS Server mehr hatten mit dem sie kommunizieren konnten und der Server/Gateway diese Anfragen anscheinend auch nicht weiterleitete. Eine Möglichkeit dies zu testen wäre natürlich noch einen LAN-internen DNS aufzusetzen und zu prüfen ob die Clients dann im Stande sind eine Internetverbindung aufzubauen. Es gibt also noch viel zu tun! Das Problem scheint doch komplexer zu sein, als anfänglich gedacht... Original Artikel: http://maltekueppers.de/wp/?p=1346 LÖSUNG: http://maltekueppers.de/wp/?p=1363

Donnerstag, August 6 2009

Multipath Routing und 2 DSL Leitungen

routingDie Anschaffung einer 2. DSL Leitung stellte mich vor folgendes Problem: Wie schaffe ich es, beide Leitungen zu benutzen und ihre Routen gemäß der Bandbreiten zu gewichten? Der Server, der diese Aufgabe erledigen sollte, war sowieso schon lange in Betrieb und benötigte nur eine kleine Umkonfiguration sowie ein wenig zusätzliche Hardware, sprich 2 Netzwerkkarten. Mein erster Versuch, das Multipath Routing mit 2 Netzkarten zu bewerkstelligen stellte sich als schwieriges Unterfangen ein und so baute ich kurzerhand eine 3. NIC ein. Was soll nun passieren und was passiert nicht? Multipath Routing bedeutet, dass die Daten die Möglichkeit bekommen, mehrere Wege (Paths) in ein Netz zu bekommen. Das suchen sie sich jedoch nicht selbst aus, sondern der Router (in diesem Fall der Server) entscheidet, welche Pakete über welche Route also welchen Internetanschluss laufen. Hierfür gibt es verschiedene Gewichtungsmöglichkeiten der einzelnen Routen die man nach Lust und Laune oder Bandbreite einstellen kann. Man nutzt also nur beide Leitungen abwechselnd nach festen Kriterien, bündelt aber nicht die Anschlüsse (bonding)! Ein Download nutzt weiterhin immer nur eine Leitung (load balancing)! Aber zum Technischen: Konfiguration: Vorneweg: Für sämtliche Befehle werden root Rechte benötigt! Es bietet sich also an, direkt in einer root-shell zu arbeiten! Vorraussetzung ist ein Linux PC / Server mit installiertem Paket iproute2. Zuerst legt man 2 neue Routing Tables in der Datei /etc/iproute2/rt_tables an, indem man am Ende folgendes einfügt 200     se555     #Routingtable für Verbindungen zu Router 1 201     v721      #Routingtable für Verbindungen zu Router 2 Die Namen für die einzelnen Tables können natürlich auch anders vergeben werden. Nun kommt die eigentliche Arbeit, das Einstellen der Routen. Hier gibt es mehrere Ansätze wo die Informationen hinterlegt werden sollen. Die einen plädieren für ein Script, ich konnte mich mehr mit dem Ansatz anfreunden, die Informationen direkt in die /etc/network/interfaces Datei einzutragen. Bei mir sieht die Datei wie folgt aus: iface eth0 inet static address 192.168.1.200 netmask 255.255.255.0 # Connection zu SE555 iface eth1 inet static address 192.168.1.199 netmask 255.255.255.0 post-up ip route add 192.168.1.1 dev eth1 src 192.168.1.199 table se555 post-up ip route add default via 192.168.1.1 table se555 post-up ip rule add from 192.168.1.199 table se555 post-down ip rule del from 192.168.1.199 table se555 # Connection V721 auto eth2 iface eth2 inet static address 192.168.1.198 netmask 255.255.255.0 post-up ip route add 192.168.1.2 dev eth2 src 192.168.1.198 table v721 post-up ip route add default via 192.168.1.2 table v721 post-up ip rule add from 192.168.1.198 table v721 post-down up rule del from 192.168.1.198 v721 Dabei gehören folgende IPs zu folgenden Geräten: eth0 192.168.1.200        LAN Interface eth1 192.168.1.199        Uplink zu Router 1 eth2 192.168.1.198        Uplink zu Router 2 192.168.1.1                       Router 1 192.168.1.2                       Router 2 Ist alles eingestellt, können die Interfaces hochgefahren werden mittels ifconfig eth1 up bzw. ifconfig eth2 up. eth0 sollte ja bereits up sein, sofern man per ssh verbunden ist. Sind nun alle Schnittstellen aktiv, kann die Konfiguration schnell mit ifconfig überprüft werden. Der Befehl ip route gibt Übersicht über das Routing der einzelnen Interfaces. Nun muss dem System nur noch mitgeteilt werden über welche Route, was geroutet werden soll und in welchem Verhältnis. In meinem Fall ist Anschluss 1 eine DSL6000 Leitung und Anschluss 2 eine DSL25000 Leitung. Die Bandbreite von A1 ist also knapp 1/4 von A2, darum sollen Pakete in diesem Verhältnis auf die Leitungen aufgeteil werden. Das Routing, bzw. die Verteilung der Pakete erfolgt nach Eingabe von: ip route add default scope global nexthop via 192.168.1.1 dev eth1 weight 25 nexthop via 192.168.1.2 dev eth2 weight 75 Damit sollte nun alles Funktionieren. Die default route wird nun auch angezeigt, wenn man ip route erneut zu rate zieht. Bei mir siehts wie folgt aus: 192.168.1.0/24 dev eth2 proto kernel scope link src 192.168.1.198 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.200 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.199 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 default nexthop via 192.168.1.1 dev eth1 weight 25 nexthop via 192.168.1.2 dev eth2 weight 75 Nun muss nur noch der DHCP Server so eingestellt werden, das als Router bzw. Gateway die 192.168.1.200, also das LAN Interface benutzt wird. Und voila, das Multipath Routing konfiguriert! Folgeartikel: http://maltekueppers.de/wp/?p=1356 ENDGÜLTIGE LÖSUNG: http://maltekueppers.de/wp/?p=1363 Quellen: http://lartc.org/howto/lartc.rpdb.multiple-links.html http://www.debian-administration.org/articles/377 http://wiki.ubuntuusers.de/Multiple_Uplink_Routing

Freitag, Juli 17 2009

Home Power Control

PollinK8IOEs ist vollbracht! Nach vielem Testen und Basteln habe ich es nun geschafft. Die K8 I/O von Pollin ist zusammengebaut und ist wider erwarten doch funktionstüchtig :). Nach anfänglichen Problemen mit dem USB to RS232 Kabel, welches jegliche Kommunikation mit der Karte verweigerte (Hinweis für mich: Solche Adapter sind Müll!), versuchte ich den COM Port zu nutzen welcher glücklicherweise mein Mainboard noch ziert. Doch auch der verweigerte in Zusammenarbeit mit der Karte seinen Dienst. Glücklicherweise fand ich an meinem Homeserver noch einen echten LPT Ausgang und damit sollte auch die Karte endlich funktionieren und ihren Dienst aufnehmen (Kleiner Hinweis: Die Karte scheint wirklich nur an echten LPT Ausgängen zu arbeiten!). Nach langem Suchen im Internet stieß ich auf den Quellcode für das Programm lpic, eine Software, welche das einfache Steuern der Karte unter Linux ermöglicht. Nachdem ich Programm und Karte nun auf Herz und Nieren getestet hatte, begann ich mit dem Auseinanderbauen der Funkfernbedienung und lötete Kabel an die Tasterkontakte um die mit der Relaiskarte schalten bzw. drücken zu können. Auch das funktionierte einwandfrei und die Fernbedienung schaltete per Relaiskarte die Steckdose. Dummerweise benötigt man pro Steckdose zwei Kanäle an der Relaiskarte, einen zum Schalten des Ein- und einen zum Schalten des Austasters, was aber nicht weiter stört, denn 4 Steckdosen reichen mir (vorerst) allemal. Ein weiteres Problem war die Entfernung des Servers bzw. der Fernbedienung zu den zu schaltenden Steckdosen, denn diese ist enorm hoch (20m durch Wände). Ein Wunder das die Dosen noch ein Signal erhaschen. pollink8io1 Nach einigem herumprobieren wurde es mir allerdings zu nervig, ständig für das Schalten einer einfachen Steckdose eine SSH Verbindung zum Server aufzubauen und dort mühevoll Befehle einzutippen. Dann kam mir eine Idee: Apache mit PHP! Da der Server sowieso mit einem Webserver ausgestattet war, musste ich ihn nur noch dazu bringen per PHP Shell Skripe auszuführen. Auch das klappte mit einigen Hürden irgendwann, sodass ich nun in der Lage bin sämtliche Steckdosen per Webinterface bzw. per Lan zu steuern. Das Script ist im Moment nur elementar, aber funktionsfähig. Mit Sicherheit werde ich noch einige Funktionen einbauen, die mir das Leben erleichtern bzw. das Steuern komfortabler Gestalten, aber fürs erste soll es so reichen. Hier meine Vorgehensweise: Bei Linuxforen.de fand ich folgenden C-Quellcode der unter GNU-GPL veröffentlicht wurde. Ich habe lediglich die "Fehler" behoben (siehe Thread):  lpic.c Kompiliert man nun das ganze mit gcc lpic.c -O -o lpic -Wall erhält man die compilierte lpic File, welche dann nach /usr/bin/ kopiert werden sollte. Ist dies geschehen, sollte man nun per lpic 8 toggle alle Relais auf der K8 IO schalten können. Dazu muss man übrigens root Rechte besitzen, da ansonsten eine Fehlermeldung erscheint. Funktioniert dies können wir uns um den Apache sowie die PHP Realisierung kümmern. Ich gehe davon aus, dass Apache mit PHP installiert ist und läuft. Da wir für die Ausführung des Scripts root Rechte benötigen, müssen wir zuerst www-data in der /etc/sudoers file hinzufügen. Dazu fügen wir die Zeile www-data ALL=NOPASSWD: /usr/bin/lpic hinzu und speichern die Datei. Dann legen wir uns im Webroot ein Verzeichnis an, welches unsere PHP Files beherbergen soll, ich habe es "steckdosen" genannt (also /var/www/steckdosen). Hier hinein kommen 2 Files, einmal eine index.php und eine steckdosen.php. Die index.php enthält ein simpeles Formular, welches die Eingaben an die eigentliche Funktionsdatei steckdosen.php weitergibt. Diese ruft dann unser Shellscript lpic mit entsprechenden Parametern auf, je nach Funktion. Da ich die "Taster" der Fernbedienung nur kurz drücken muss um die Steckdose schalten zu lassen, kann ich das Relais nach kurzer Zeit auch wieder öffnen (sonst würde ich die ganze Zeit das An-Signal weitersenden), dies geschieht durch erneuten Aufruf von lpic im php Code nach einer kurzen Pause von 2 Sekunden. Zusätzlich habe ich eine meta-refresh eingebaut, welches mich wieder zurück zur index.php bringt. So kann ich nun meine Steckdosen von der ganzen Welt :) aus übers Internet mit einfachsten Mitteln steuern. Verwendete Files: lpic.c Download index.php Download steckdosen.php Download Quellen: http://www.ip-phone-forum.de/showthread.php?p=749716 http://www.linuxforen.de/forums/showthread.php?t=198642&highlight=relais+software

Samstag, Juli 11 2009

Das automatisierte Heim

Ein kleiner Traum rückt näher: das vollautomatisierte Heim! Ich habe eine Relaiskarte bestellt, über die ich Funksteckdosen schalten kann. In Verbindung mit diversen anderen Programmen lassen sich so automatisch Lichtschalter betätigen, Kaffeemaschinen einschalten und noch vieles mehr. Der große Vorteil bei diesem Projekt besteht darin, dass alles komplett per Funk steuerbar ist, also keine nervige Verkabelung durch die halbe Wohnung notwendig ist. Technisch soll das ganze wie folgt funktionieren: An die Schaltausgänge der Relaiskarte (K8IO von Pollin.de) werden die Taster der Funkfernbedienung gelegt, damit sollte es dann möglich sein per Relais die Fernbedienungskontakte zu schliessen und ein an/aus Signal an die Steckdosen zu schicken. Da die Karte nur einen LPT Parallel Port Leitung hat, musste ich nun zusätzlich noch ein USB to RS232/LPT Adpaterkabel holen, denn diese  antiquierte Technik beherrscht mein neuer Rechner nicht mehr ohne Hilfe. Sollte alles glatt laufen, müsste die Karte über /dev/ttyUSB0 ansprechbar sein. Ich werde berichten, sobald alles da und zusammengebaut ist.

Donnerstag, Juli 9 2009

Ubuntu One Betatest

Vor einiger Zeit hatte ich schon über das Ubuntu One Projekt berichtet. Nun habe ich endlich eine Invitation als offizieller Betatester bekommen und kann Ubuntu One ausgiebig testen. Nach hinzufügen eines PPA Keys und dem Herunterladen des Pakets ubuntu-one kanns losgehen. Startet man im Menü dann Ubuntu One, macht es sich durch ein Icon bemerkbar, bestehend aus einer Wolke und dem Ubuntu Logo, welches sich bei Synchronsationsaktivität dreht. Ausserdem wird im Homeverzeichnis ein eigener Ordner Names  "Ubuntu One" angelegt, der wiederum 2 Unterordner "My Files" und "Shared with me" enthält. Diese beiden Ordner werden dann synchronisiert, sobald man Daten hineinkopiert, wobei "Shared with me" Dateien enthält, die ein anderer User explizit mit einem anderen Teilt. Der Service an sich ist relativ schnell und arbeitet recht zuverlässig. Auch der Zugriff von Windows Rechnern via Web funktioniert gut, sofern man sich mit seinem Launchpad Account eingeloggt hat. Insgesamt macht Ubuntu One einen ganz ordentlichen Eindruck, integriert sich wirklich nahtlos in den Gnome Desktop und arbeitet angenehm im Hintergrund. Nichts desto trotz wäre die kostenpflichtige Variante für mich keine Überlegung wert, da es ja viele andere dieser Services, wie z.B. Dropbox gibt, die Multiplattform fähig sind.

Donnerstag, Mai 28 2009

Lets do it the Mac way...

Das Schöne an Linux? Man findet immer wieder neue tolle Sachen. Heute habe ich zum ersten Mal den Avant-Window-Navigator (AWN) getestet. Dieser stelle eine Leiste mit Shortcuts, Launchern und kleinen Applets zur Verfügung, wie man es vom Mac her kennt. Nach einigem herumprobieren ist die Leiste nur für mich ein vollwertiger Ersatz für die etwas langweilige standart Fensterleiste von Ubuntu geworden. Ausserdem steht so auch mehr Platz für zum Beispiel Browserfenster zur Verfügung, denn die Leiste entfernt sich auf Wunsch von selbst oder sitzt einfach über dem entsprechenden Window. Laufende Programme sind dezent mit einem kleinen Pfeil versehen und lassen sich einfach durch einen Klick wieder maximieren oder eben minimieren. Die Bar ist wirklich komfortabel und bietet auch bei vielen geöffneten Fenstern noch einen guten Überblick. Wer die Bar testen möchte, findet sie bei Ubuntu in den Repositories. Weitere Infos gibts hier https://launchpad.net/awn .

- Seite 1 von 5