This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Udo 'Uwe' Vetter hatte mal nen Linux-Rechner - und spontan bricht in den Kommentaren ein Krieg über das Für- und Wider von Linux auf dem Desktop aus. Einige sind der Meinung, dass "ihre Anwendungen" nunmal einfach nicht für Linux existieren, ohne jedoch zu erwähnen, welche Anwendungen das sind. Andere suchen die Schuld bei der Oberfläche der verwendeten Distribution.
Für mich gesprochen muss ich sagen, dass ich mich unter Linux einfach wohler fühle. Wenn ich unter Windows arbeite (was zum Beispiel auf der Arbeit der Fall ist), dann fühle ich mich doch immer irgendwie eingeschränkt in meinen Möglichkeiten. Das hängt von vielen Faktoren ab, und ich kann es nicht wirklich in Worte fassen. Der Komfort der Kommandozeile gehört dazu (auch wenn das für Mausschubser komisch klingt), aber auch die Möglichkeit, tief in das System eingreifen zu können und dennoch keine Neuinstallation zu riskieren. Cygwin gibt einem viel vom Komfort der Bash oder der zsh zurück, aber letztendlich bleibt es ein Aufsatz, der schnell an seine Grenzen stößt.
Für wen sind Linux und andere unixoide Betriebssysteme denn nun geeignet? Nun, meiner Meinung nach vor allem für zwei Zielgruppen. Absolute Anfänger und weniger erfahrene Windowsbenutzer haben nach meiner Erfahrung erstaunlich wenig Probleme, sich in einem KDE oder Gnome zurechtzufinden. Meine Eltern und meine Schwester sind da gute Beispiele. Die Grenzen finden sich dort, wo die Leute Windowsprogramme kaufen und versuchen, diese zu Installieren, oder bei Leuten nach Hilfe fragen, die sich "mit Computern auskennen", aber keinen Blick über den Windows-Tellerrand wagen. Den Fehler dürfte aber jeder nur einmal machen, und auch ich habe in meiner Anfangszeit mal vergeblich versucht, eine Amiga-Diskette im einem 286er zu verwenden.
Die andere Gruppe bilden die Neugierigen und Lernwilligen, zu denen ich mich hier wohl auch zählen sollte. Also Leute, die die Welt außerhalb von Redmond kennenlernen möchten und sich im Klaren darüber sind, dass ihr bisheriges Wissen dabei nur begrenzt nützlich sein wird. Man erlangt den den Vorteil, beide Welten kennenzulernen und wird sich klar darüber, wo die essentiellen Unterschiede liegen. Natürlich wird man seine gewohnten Anwendungen vermissen (es sei denn, man hat schon vorher nur Firefox, OpenOffice.org und co verwendet), aber nur in den seltensten Fällen gibt es keine Alternative. Ich habe im Laufe der Jahre viele "Alternativen" gefunden, die ich nun unter Windows sehr vermisse - KMail zum Beispiel.
Meine Empfehlung an diese Fraktion ist: Ganz oder garnicht. Beide Betriebssysteme parallel zu betreiben verlockt zu leicht, bei Stolperfallen und ungewohntem Terrain "mal eben kurz" auf Windows zu wechseln. Wenn man mit dem neuen System warm geworden ist, und dann tatsächlich noch ein paar fehlende Programme hat, dann kann man sich Windows in einer virtuellen Maschine installieren und bei Bedarf mal eben im laufenden Betrieb starten.
Viele glauben jedoch, dass sie sich mit Windows sehr gut auskennen und deshalb auch Linux problemlos bedienen können müssten. Das ist Humbug, und der Frust nach der entsprechenden Erwartungshaltung natürlich viel größer. Man muss wirklich bereit sein und die Zeit haben, neu zu lernen, wenn man nach Jahren der Windowsbenutzung ein anderes OS anschauen will (das gleiche gilt natürlich auch für den Wechsel von Microsoft zu Apple). Und man muss wissen, dass vieles anders sein wird. Das geht schon bei der Philisophie der Entwickler los, denn die meiste Arbeit wird auch heute noch von Freiwilligen geleistet, in erster Linie für den eigenen Bedarf. Man muss also bereit sein, sich erstmal dem Betriebssystem anzupassen, und es erst im Laufe der Zeit an sich selbst anzupassen.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
KDE4 lässt weiter auf sich warten, außer der (bisher kaum brauchbaren) ersten Version 4.0 gibt es noch nicht viel zu sehen. Das hat mir die Gelegenheit gegeben mal zu überlegen, wieso ich eigentlich KDE verwende. Gnome mag ich nicht, da ich mich von der Oberfläche zu sehr eingeschränkt fühle. Früher war ich mal überzeugter IceWM-Anwender, später bin ich dann über Blackbox zu Fluxbox gewechselt und lange Zeit treu geblieben. Seit zwei oder drei Jahren nutze ich KDE, ich glaube, es war der sauber funktionierende Tray, der mich zum Wechsel bewegt hat.
Nachdem ein Arbeitskollege mich lange genervt viel Überzeugungsarbeit geleistet hat, und ich langsam auch nicht mehr einsehe, einen Großteil meines Speichers für die Desktopumgebung zu verbraten, habe ich heute XFCE4 getestet. Das funktionierte Gentoo-typisch einfach und problemlos durch die Installation der Pakete "xfce4" und "xfce4-extras". Kleine Randnotiz: Möchte man transparente Fenster und Schatten, dann sollte man dem Paket "xfwm4" das Useflag "xcomposite" spendieren.
Natürlich muss man sich ein wenig umgewöhnen, aber man hat schnell den benötigten Überblick. Was mich doch erstaunt hat: Viele kleine Minianwendungen, die ich mir unter KDE mühsam zusammensuchen musste, waren bereits im extras-Paket enthalten. Da kannte jemand meinen Geschmack :-).
So sieht mein Desktop nun aus:
Und bis jetzt bin ich begeistert, vor allem von der Geschwindigkeit. Träge Reaktionen gibt es kaum, vor allem Thunar, der Dateimanager, ist rasend schnell. Kleiner Wermutstropfen: Die Erkennung des USB-Sticks (im Sinne eines Icons, welches das entsprechende Verzeichnis öffnet) funktioniert nicht, obwohl eigentlich alles richtig konfiguriert ist und die erforderlichen Komponenten vorhanden sind. Als überzeugter Kommandozeilennutzer ist das für mich keine Einschränkung, aber neugierig bin ich schon. Mal schaun, ob ich das noch hinkriege.
Im Moment sieht es so aus, als könnte aus dem kurzen Seitensprung die große Liebe werden.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
ds-mod heißt nun Freetz, sonst ändert sich nix eine ganze Menge: Das Entwicklungsrepository ist nun öffentlich, so dass man als Anwender nicht mehr auf die finale Version warten brauch. Gut für alle, die ihre Fritz!Box mit der aktuellen Firmware 04.29.49 (bzw. 51, mit VPN) modden wollen! Auf meiner 7170 läuft es im Moment mit callmonitor, wake-on-lan und dnsmasq problemlos, allerdings sind die Einstellungen verloren gegangen. Also vorher unbedingt alles sichern bzw. aufschreiben!
Kleine Stolperfalle: dnsmasq erlaubt seit einiger Zeit keine Hostnames mehr mit Punkt im Namen. Ein hosts-Eintrag mit MAC-Adresse ( hat nichts mit Apple zu tun ;-)) muss also unbedingt den einfachen Namen enthalten. Ein alternativer Eintrag mit vollständiger Domain darf danach folgen, wobei die MAC-Adresse durch * ersetzt wird (siehe Beispiel in der Doku).
Doch wieso der Namenswechsel? Wir haben hier einen klassischen Fork. Daniel (der ursprüngliche Entwickler von ds-mod) hat bei Sourceforge eine komplette Neuentwicklung angefangen, die allerdings nicht besonders schnell voranzukommen scheint. Diese heißt weiterhin ds-mod, und deshalb haben die Entwickler der alten Version einen neuen Namen gebraucht. Sie haben sich für "Freetz" entschieden, eine Kombination aus "Free" und "Fritz".
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Heutegestern waren mal wieder ein paar Experimente mit diversen Windowmanagern angesagt. Eines vorweg, das geilste wäre die Toolbar von Fluxbox kombiniert mit den grafischen Effekten von Compiz und dem Application-Panel von XFCE. Naja, man kann nicht alles haben, insbesondere Fluxbox und Compiz ist eine Kombination, die nicht funktionieren kann.
Was mich an XFCE bisher störte, waren in erster Linie zwei Kleinigkeiten: Der doch recht behäbige Start, und dass für einige Anwendungen der Eintrag in der Taskbar fehlte (zum Beispiel beim Passwort-Dialog von KWallet und beim HBCI-Homebanking-Programm Moneyplex). Das zweite Problem ist im Entwickler-Repository bereits behoben. Der einfachste Weg, um als Gentoo-User an die neusten Versionen ranzukommen, ist, mit 'layman -a xfce' das XFCE-Development-Overlay einzubinden und dann die diversen xfce4-Pakete in die /etc/portage/package.keywords einzutragen:
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Das Stud.IP bietet die Möglichkeit, ein komplettes Verzeichnis als ZIP-Datei herunterzuladen. Dummerweise erhält dabei jede Datei eine voranstehende Nummer, also aus "vorlesung1.pdf" und "vorlesung2.pdf" werden "[1]_vorlesung1.pdf" und "[2]_vorlesung2.pdf". Besonders problematisch ist dies, wenn mehr als 9 Dateien heruntergeladen werden sollen oder die Reihenfolge nicht mit den Dateinamen übereinstimmt - in beiden Fällen zerhaut es einen die Sortierung.
Schnelle Abhilfe verschafft hier (zumindest für Unix- und Cygwin-User) das Tool 'mmv', welches zwei (oder mehr) Pattern entgegennimmt und alle Dateien des Verzeichnisses danach umbenennt. Das entsprechende Pattern für die Zip-Dateien aus dem Stud.IP sieht so aus:
mmv'[*]_*''#2'
Der Ausdruck lautet in Umgangssprache etwa: Nimm alle Dateien, die auf das erste Pattern passen und ersetze sie durch den Inhalt des zweiten Platzhalters. Die einfachen Anführungszeichen sind wichtig, damit die Shell nicht das erste Pattern von sich aus durch die Dateinamen ersetzt und das '#2' nicht für einen nachfolgenden Kommentar hält.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
...zumindest, wenn man nicht hinsieht und versehentlich
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Das versehentlich geschlossene Explorer-Fenster der Mausschubser ist für uns Shell-Liebhaber ein unabsichtlich hingetipptes "cd", welches uns aus unserem Arbeitsverzeichnis herauswirft und ins Home-Verzeichnis zurückbringt.
Aber, Unix-Hacker sind faul und selbstverständlich gibt es eine Art "Undo" für den Chdir-Befehl. Dieser lautet: "cd -". Warum hab ich das nicht früher entdeckt?
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Wie einfach es doch ist, einen Flame zu starten, unglaublich. Im Stud.IP-Forum zu Studiengebühren ging es um das Thema günstige Rechner und deren Zuverlässigkeit. Auf den Kommentar "so eine billige Kiste ist nach der ersten Hausarbeit unbrauchbar" antwortete ich etwas später:
Und wenn man nen richtiges(tm) Betriebssystem einsetzt, dann übersteht der Rechner auch die erste Hausarbeit problemlos. 256 MB halte ich aber für zu wenig, 512 sollten es schon sein. Das treibt den Preis auch nicht wirklich nach oben.
Und schon am nächsten Tag schrieb jemand:
Das ist Blödsinn - sorry . Ubuntu mag für Semiexperten ein gutes OS sein - für alle anderen lohnen die marginalen Unterschiede den Umstieg nicht und überfordern eher unbedarfte Anwender. Windows XP langt eigentlich für 99% aller Rechner, die letzten 1% sind entweder extrem lahme Kisten oder 64bitter, wo man XP64 einsetzen sollte.
Im Stud.IP möchte ich das Thema nicht beantworten, da es arg Off-Topic ist. Dafür hab ich nun den Aufhänger den ich brauchte um dies endlich mal hier im Blog zu thematisieren. Also, für wen ist Ubuntu (im speziellen, nicht Linux im allgemeinen!) geeignet?
Für extrem lahme Kisten (in Bezug auf den Arbeitsspeicher) garantiert nicht! Es gibt zwar Linux-Distributionen, die auf geringe Ressourcen ausgerichtet sind, aber (K)Ubuntu gehört mit Sicherheit nicht dazu. Selbst Xubuntu (die Ubuntu-Variante mit dem sparsamen Desktop XFCE) würde ich mit wenigstens 256 MB Ram betreiben, erst ab 512 MB kann man richtig glücklich werden. Für die grafische Oberfläche und einen Browser mag es reichen, aber schon OpenOffice.org möchte direkt nach dem Start des Writers gerne 155 MB Abeitsspeicher für sich haben. Also, eine einigermaßen tageslichttaugliche Maschine ab 800 MHz (der niedrigsten Stufe, auf der mein Laptop laufen kann) und wenigstens 512 MB Ram sollten es schon sein.
64-Bitter? Warum sollte da XP besser geeignet sein? Ich habe keinen solchen Prozessor, aber intuitiv würde ich eher das Gegenteil vermuten: Da die meisten Linux-Programme OpenSource sind und ohne großen Aufwand für 64-Bit-CPUs kompiliert werden können, kann ein Linux-System wesentlich besser an diese Prozessoren angepasst werden als eine Windows-XP-Installation (also das System im ganzen, nicht nur der Kernel).
Nun. für wen ist Ubuntu denn nun geeignet? Hier also meine ganz persönliche Meinung: Für blutige Anfänger und für Leute mit einem gesunden Maß an Neugier und Lernbereitschaft. Das größte Hinderniss beim Umstieg von Windows auf Linux ist die Umgewöhnung. Eine Reihe von Dingen läuft halt anders als bei Microsoft, was aber nicht unbedingt "schlechter" heißen muss. Das fängt schon bei den Case-Sensitiven Dateinamen an und endet bei der Art, wie das System konfiguriert wird. Dies muss man sich bewusst sein, sonst kann man gleich aufgeben. Die meisten Linux-Distributionen und -User wollen ja garnicht wie Windows sein, dann könnte man auch gleich Windows verwenden.
Jedenfalls kann ich gleich zwei Erfolgsstories aus dem Familienkreis aus dem Hut zaubern: Meine Schwester und meine Mutter. Beiden habe ich bereits vor zwei Jahren Ubuntu installiert, da ich mich geweigert habe, ein Windows bei denen zu adminstrieren. Bei meinen Eltern kam noch die Dialer-Gefahr durch den damaligen ISDN-Anschluss hinzu. Gerade meine Mutter hatte massive Bedenken, da sie bereits seit DOS-Zeiten an Microsoft-Produkte gewohnt ist. Aber letztendlich muss ich sagen: Es war kein Problem! Am Anfang riefen sie noch häufiger mal und stellten ein paar einfache Fragen, inzwischen muss ich vielleicht zweimal im Jahr etwas Hilfestellung geben. Also, wer für seine Bekannten einen Windows-Rechner aufgesetzt hat, wird da sicher öfters mal dran müssen. Und heute? Die Vorbehalte sind verschwunden, meine Schwester wollte sogar explizit, dass ich das Vista von ihrem neuen Laptop runterschmeiße und Ubuntu installiere (hätte sie letztlich wohl auch selbst hingekriegt, aber wenn der große Bruder schonmal da ist...).
Apropos Vista, in letzter Zeit breitet es sich ja langsam aus. Bei einem guten Betriebssystem würde ich das garnicht merken, nur machen diese Rechner öfters irgendwelche Mucken. Gestern in einer Vorlesung wurde z.B. so ein Rechner an den Beamer angeschlossen. Vista hat erstmal nen vergrößerten Desktop draus gemacht, für die Präsentation natürlich ungeeignet. Haben es die beiden Präsentatoren hinbekommen, dies selbstständig zu ändern? Nein, das hab ich gemacht. Soviel zu der intuitiven Bedienung von Windows.
Das schönste Problem war dann jedoch, dass im Clone-Modus (also das Monitor und Beamer das selbe Bild ausgeben) das Beamer-Bild ständig am zittern war. Ich habe keinen Schimmer, woran das lag, aber Hardware-Probleme kann ich ausschließen, denn der vergrößerte Desktop zitterte nicht.
Und für wen ist Linux nicht geeignet? Für fortgeschrittene User, die ihr Windows gut kennen und keine Lust und/oder Zeit haben sich umzugewöhnen. Ebenso für Gamer, obwohl die mit einer Doppelinstallation auch glücklich werden können (ich spiele lieber auf meiner Spielkonsole). Früher hätte ich gesagt, für Leute die auf spezielle Windows-Programme angewiesen sind, aber dank moderner PCs, auf denen auch virtuelle Rechner wie VirtualBox oder VmWare laufen können, und der Seamless-Technologie ist das kein Problem mehr (Seamless heißt, dass im Hintergrund ein komplettes Windows gestartet wird, aber nur einzelne Fenster angezeigt und direkt in die Linux-Umgebung integriert werden). Und bei Ubuntu im Speziellen gilt: Für Leute, die eine sehr große Kontrolle über ihr System haben möchten. Da ist man mit anderen Systemen wie Gentoo doch besser bedient.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Vor einiger Zeit hatte ich vor, als Fenstermanager konsequent auf Compiz zu setzen. Leider scheiterte dieser Plan bisher vor allem an zwei inkompatiblen Programmen:
OpenOffice.org Impress, die freie PowerPoint-Alternative: im Präsentationsmodus wird das Panel, also die Taskleiste, über der Folie angezeigt.
mplayer, der beliebte Video-Allesfresser: das Bild flackert stark, hin und wieder stürzt der auch einfach ab
Gegen 1) habe ich noch kein Mittel gefunden, außer, für eine Präsentation auf den XFCE-Fenstermanager xfwm4 umzuschalten. Kann ich mit leben, da die wenigsten Beamer mit der von meinem Laptop bevorzugten Auflösung von 1400x1050 Pixeln problemlos zurechtkommen und ich daher sowieso die Einstellungen ändern muss.
Problem 2) ist dagegen sehr ärgerlich. Das Flackern hängt mit der Technik zusammen, die der bevorzugte und (zumindest bei mir) performanteste Video-Ausgabetreiber 'xv' nutzt. Sie verursacht Konflikte mit den Methoden, die Compiz einsetzt, um die Fenster zu rendern. Das Problem ist schon länger bekannt, aber der allgemeine Workaround war bisher, einen alternativen Ausgabetreiber wie 'x11' zu nutzen und den (nicht von 'x11' unterstützten) Vollbildmodus durch die Software rendern zu lassen:
mplayer -vo x11 -zoom-fs video.mpg
Keine schöne Lösung, da die Vergrößerung durch die Software aufwendig ist und das Video daher oftmals ruckelt. Heute bin ich durch Zufall auf einen Artikel in SmSpillaz' Blog gestoßen, welcher den von David Reveman geschriebenen mplayer-xv-Patch mplayrepatch.patch beschreibt. Dieser behebt das Problem, indem es (vereinfacht gesagt) die problematischen Aufrufe nicht an die Grafikkarte, sondern an Compiz übergibt.
Ich war ein bisschen skeptisch, aber tatsächlich, es funktioniert und ich stelle keine fühlbaren Performanzeinbußen fest. Und es klappt auch, wenn Compiz mal nicht aktiv ist. Für Gentoo-User habe ich den Patch in die aktuelleste stabile Version (1.0_rc2_p26753-r1) des mplayer-ebuilds eingebaut. Einfach die Datei mplayer-mplayrepatch-ebuild.zip in das lokale Portage-Overlay entpacken und mplayer neu kompilieren (sorry für die ZIP-Datei, tgz wurde von der Wordpress-Installation hier nicht akzeptiert).
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Nachdem ich im April einen Bug-Report zum Synaptics-Ebuild erstellt habe, ist endlich ein entsprechender Patch von Florian Schäfer auch in das Gentoo-Portage eingeflossen (ab Version 0.14.6-r3, derzeit noch mit Keyword maskiert).
Kurz zusammengefasst: Der im Paket x11-drivers/synaptics enthaltene syndaemon überwacht die Tastatur und schaltet beim Drücken einer Taste das Touchpad vorrübergehend ab. Das soll verhindern, dass man versehentlich mit dem Handballen ein anderes Fenster aktiviert und der Text nicht dort ankommt, wo er hin sollte (im schlimmsten Fall verschickt man so ein Passwort per Instant Messanger). Das Problem ist, dass diese Abfragen in sehr, sehr kurzen Abständen erfolgen - alle 20ms. Das hindert die CPU bei Notebooks daran, in den Schlafmodus zu gehen, mit dem sie normalerweise Energieverbrauch und Abwärme reduziert (hat nichts mit dem Schlafmodus des Betriebssystem oder des Monitors zu tun - bei der CPU bemerkt man diesen Modus in der Regel garnicht, da sie bei Bedarf sehr schnell wieder auf volle Leistung geht). Beobachten kann man dies zum Beispiel mit dem von Intel entwickelten Kommandozeilen-Programm "PowerTop". Im Ergebnis bedeutet das schlicht und einfach eine geringere Akkulaufzeit.
Der neue Patch fügt einen Kommandozeilenparameter hinzu, mit dem das Abfrage-Intervall konfiguriert werden kann. Der Aufruf "syndaemon -m 500" reduziert dieses zum Beispiel auf 500ms, was für den normal schnellen Menschen immer noch ausreichend sein sollte. Wer XFCE benutzt, kann diesen Befehl zum Beispiel in eine ausführbare Datei im Verzeichnis '~/.config/autostart' ablegen, KDE-Benutzer schauen unter '.kde/Autostart' nach und Gnome... naja, weiß ich gerade auch nicht :-) Für diejenigen, welche sich ihren XFCE-Desktop nach meinem Vorbild verschlankt haben, habe ich inzwischen eine bessere .xinitrc geschrieben, die das Verzeichnis '.config/autostart' auswertet und alle ausführbaren Dateien startet.
Übrigens: Ich bin im Portage *g*!
30 Jul 2008; Samuli Suominen +files/synaptics-0.14.6-configurable_polling_interval.patch, +synaptics-0.14.6-r3.ebuild: Apply configurable polling interval patch from Novell so that syndaemon doesn't wake up CPU so often. Bug 216679, thanks to Roland Tapken, Thomas Kirchner and Krister Bäckman.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Gerade ein wirklich nettes Feature von KMail entdeckt: Enthält die eingestellte Signatur keinen Signaturtrenner ('-- ', also Strich-Strich-Space in einer eigenen Zeile), dann fügt KMail automatisch einen vor der Signatur an. Gefällt mir, da der Anwender so gezwungen wird, seine Signatur ordentlich als solche zu markieren. In anderen Mailern muss man sich explizit entscheiden, ob ein Trenner eingefügt werden soll oder nicht.
Wer's nicht kennt: Der Signaturtrenner markiert in E-Mails das Ende der Nachricht und den Anfang der Signatur. Auf diese Weise können zum Beispiel Mailinglisten-Archive diese automatisch abschneiden. Hier mal ein Beispiel, der Trenner ist rot markiert (mit einer verdammt alten Signatur von mir):
cu, Cybso
/¯¯* mailto:cybso@gmx.net
(ybso ICQ: 18715473 PGP ID:0x3E2D5C95
\__* I am a signature-virus. Why don't copy me into your sig?
[~~~http://members.xoom.com/mp3ml/ =Deutsche MP3 Mailingliste~~~]
[~http://members.xoom.com/stde/ =Deutsche Star Trek Mailingliste~]
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Cpu Frequency Daemon is a very configurable program for throttling the cpu's frequency depending on "rules". A rule tests for battery state, cpu temperatur, active processes and so on.
For example, a rule which throttles your cpu when it's to hot might look like this:
[Rule]name=CPU Too Hotacpi_temperature=65-100cpu_interval=50-100profile=Performance Low[/Rule]
And if you want full performance when watching movies you might have a rule like this:
As a Gentoo user I want full cpu power when emerge is running. But sadly, "programs=emerge" won't work because emerge' process actually is the python interpreter (and surely you don't want to define "programs=python" as it would fire on your processor for all python scripts):
So what we need is a cpufreqd.conf-statement which executes a shell command and scores the rule depending on the process' exit code (0 is good and anything else is bad). There is already a plugin, "exec", which executes a command before and after testing a rule or switching the profile, although this is not exactly what we want. Nevertheless the code of this plugin (cpufreqd_exec.c) only needs a few changes to get a new options called "exec" which does exactly what we need (I've attached patches for cpufreqd-2.2.1 and cpufreqd-2.3.3).
The rule for switching to "Performance High" when emerge is running now looks like this:
[Rule]name=emerge is runningexec=ps -u root | grep emergebattery_interval=0-100acpi_temperature=0-65cpu_interval=0-100profile=Performance High[/Rule]
(If somebody knows an more efficient method to check wether emerge is running or not, please post it into the comments).
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Technobabble-Warnung
Eigentlich dachte ich, das Problem aus dem Zusammenspiel von X11, Multimedia-Tastatur, evdev-Treiber, HAL und LinEAK sei gelöst gewesen - doch hat "roo" mich in den Kommentaren darauf aufmerksam gemacht, dass mit dem xorg.conf-Schalter “AutoAddDevices = no" einfach nur HAL deaktiviert wurde. Das funktioniert zwar, ist aber nicht das, was man gerne haben möchte - nämlich die Verwaltung aller Eingabegeräte an einer zentralen Stelle, im "Hardware Abstraction Layer".
Nun hat "roo" am Dienstag einen weiteren Kommentar geschrieben, den ich jedoch übersehen habe:
Also ich hab herausgefunden, dass das Problem nicht bei HAL, nicht bei evdev und auch nicht bei X liegt. Sondern beim Desktop Environment - sprich Gnome/Xfce/KDE. Habe nämlich mal Fluxbox emerged und damit mal probiert (Fluxbox lässt sich ja fix emergen und starten). Und dort habe ich diese Probleme nicht. Alle Tasten werden von xev perfekt erkannt. Und verursachen keine Probleme.
Tatsächlich hatte ich auch schon eigene Experimente durchgeführt, und bin zu dem gleichen Ergebnis gekommen: Unter Fluxbox kann ich alle Tastencodes der Spezialtasten mit xev beobachten, unter XFCE jedoch nicht die Lautstärketasten - und ausgerechnet die hatte ich in meinem letzten Beitrag meistens zum Testen verwendet.
In der Ausgabe von xev sind mir dann jedoch einige Details aufgefallen (hier als Beispiel für die Taste "Startseite"):
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Die meisten, die mich persönlich kennen oder durch das Archiv dieses Blogs stöbern, wissen, das Gentoo meine absolute Lieblingsdistribution ist. Der Grund ist für mich vor allem das Paketsystem "Portage" bzw. das Konzept der Use-Flags, welche eine Anpassung des System auf einem Level erlaubt, zu dem man bei den üblichen Binärdistributionen wie Ubuntu, SuSE, RedHat und co nur mit sehr großem Aufwand gelangen kann - der User "BliZZarD" hat das Anfang des Jahres im Heise-Forum ziemlich gut auf den Punkt gebracht.
Doch seit sich vor einigen Jahren der Gründer Daniel Robbins aus dem Projekt zurückgezogen hat, lässt das System spürbar nach. Zunächst hielt ich das Editorial im aktuellen LinuxUser (11/2008) für übertrieben - doch beim letzten Update stieß ich auf das in Bug #244511 beschriebene Problem.
Offenbar bereits seit drei Tagen sind Pakete als "Stable" markiert, die zur Installation die noch als unstable geltene Portage-Version 2.1.5 benötigen. Im Ergebnis sieht man beim Versuch, ein Update durchzuführen, im Moment folgende Ausgabe:
Calculating world dependencies... done!
[ebuild U ] sys-libs/com_err-1.40.9 USE="nls" 0 kB
[ebuild N ] sys-libs/e2fsprogs-libs-1.41.2 USE="nls" 0 kB
[ebuild U ] sys-fs/e2fsprogs-1.41.2 USE="nls" 0 kB
[ebuild U ] sys-libs/ss-1.40.9 USE="nls" 0 kB
[blocks B ] sys-libs/ss (is blocking sys-libs/e2fsprogs-libs-1.41.2)
[blocks B ] sys-libs/com_err (is blocking sys-libs/e2fsprogs-libs-1.41.2)
[blocks B ] sys-libs/e2fsprogs-libs (is blocking sys-libs/ss-1.40.9,sys-libs/com_err-1.40.9)
Die übliche Lösung bei solchen "blockings" ist es, das betroffene Paket vor dem Update zu entfernen. In diesem Fall wäre das aber hochgradig fatal, denn das zum Download der Pakete verwendete Programm "wget" hängt von der Systembibliothek "com_err" ab, wie Robert Wolf bereits vor zwei Tagen feststellte. Dieser auch von den Entwicklern empfohlene und normalerweise korrekte Weg würde einem das System also beschädigen und unter Umständen nur mit recht hohem Aufwand wiederherstellbar machen (sprich: die benötigten Pakete an einem anderen Rechner herunterladen und anschließend kopieren).
Die Lösung ist eigentlich einfach und von Daniel Carosone in Beitrag #40 beschrieben: Die Pakete wieder als unstable markieren, bis portage-2.1.5 stabil geworden ist und die Blockings selber Auflösen kann. Doch bis jetzt ist nichts passiert. Für das Projekt ist das wirklich peinlich, mit einer stabilen Version, die sich seit drei Tagen nicht sauber aktualisieren lässt, macht sich das Projekt wirklich keine Freude.
Wer davon betroffen ist, kann entweder (1) Portage in der Version 2.1.5 als stabil markieren und anschließend auf diese Version wechseln:
Obwohl ich mit beiden Verfahren erfolgreich war, ist (2) meine klare Empfehlung. Zumindest solange, wie es keine saubere Lösung für das Problem gibt und man auf die neuere Version der Programme nicht angewiesen ist.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Ich habe habe dem unerschrockenen Steinbock eine Chance gegeben, und mein Gentoo-System auf eine Backup-Festplatte ausgelagert. Aktuell bin ich von KDE 4.1 ziemlich begeistert, aber ob dieser Zustand anhält, werden die nächsten Wochen zeigen müssen. Insbesondere Portage werde ich vermutlich bald vermissen.
Was mir besonders positiv aufgefallen ist, ist die sehr gute Unterstützung für verschlüsselte Systeme. Nicht nur, dass ich ohne großen Aufwand meine gesamte Festplatte verschlüsselt habe - auch im Schlafzustand ist der Rechner nun geschützt. Und das, ohne dass ich irgendwas dafür tun musste. Bisher war es so, dass mein Homeverzeichnis zwar verschlüsselt war, aber nicht der Auslagerungsspeicher. Dadurch ist es theoretisch möglich, den Schlüssel dort zu extrahieren, was natürlich das ganze Konzept über den Haufen wirft.
So, nun muss ich aber erstmal ein paar fehlende Programme nachinstallieren. Wo ist Opera?
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Update: Due to an increasing number of english speaking visitors I have translated the main conclusion of this entry. Have a look at the comments.
Na, das ging ja gut los. Der Versuch, mit dem KNetworkManager eine statische IP-Adresse über's normale Kabel einzurichten, scheiterte. Die Daten wurden akzeptiert, aber nicht aktiviert. Der gleiche Versuch mit der Gnome-Variante des Tools ( nm-applet) verlief erfolgreich, integrierte sich aber natürlich alles andere als gut in die KDE-Umgebung (ansonsten hätte ich damit auch leben können).
Auf der Kommandozeile war als Ausgabe nur diese läppische Zeile zu finden:
Activate Connection /org/freedesktop/NetworkManagerSettings/Connection/2 on Device /org/freedesktop/Hal/devices/net_00_00_f1_7b_97_e0
Das Syslog ( /var/log/syslog) war da etwas informativer:
Nov 3 14:02:40 sam NetworkManager: connection _get _settings _cb(): connection _get _settings _cb: Invalid connection: 'NMSettingIP4Config' / 'addresses' invalid: 1
Nov 3 14:02:40 sam NetworkManager: connection _get _settings _cb(): connection _get _settings _cb: Invalid connection: 'NMSettingIP4Config' / 'addresses' invalid: 1
Nov 3 14:02:57 sam NetworkManager: connection _updated _cb: assertion `old _connection != NULL' failed
Bei der Suche nach dieser Ausgabe stieß ich auf einen Bugreport, der mir zeigte, dass ich nicht der einzige mit dem Fehler war. Um es kurz zu machen: Nachdem es auch dort keine Lösung gab, habe ich mir die Quelltexte der Pakete network-manager und network-manager-kde heruntergeladen, mit einigen Debugging-Ausgaben angereichert und bin schließlich dahinter gekommen, dass der Systemdienst NetworkManager die Netmask im CIDR-Format erwartet ("/24"), KNetworkManager diese aber im Dezimalformat ("255.255.255.0") übergibt.
Zu einem Patch hatte ich dann keine Zeit mehr, aber es gibt einen einfachen Workaround: Im Feld für die Netzmaske diese in CIDR-Schreibweise in den ersten Block eintragen, und die restlichen mit Nullen auffüllen: "24.0.0.0". Dann bekommt NetworkManager genau das übergeben, was er erwartet.
Aber das so ein fundamentaler Fehler im Release noch nicht behoben worden ist, erstaunt mich dann ja doch.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Ubuntu 8.10 ("Intrepid Ibex") uses the kernel's default suspend system, swsusp, but lacks support for TuxOnIce (formally known as "suspend2"). TOI has some advantages to the classic suspend system, for example "suspend to file", "LZW compression" (for faster resuming) and the ability to cancel any suspend request by pressing ESC. Have a look at the feature list for a comparison of these systems.
Espacially "suspend to file" is extremly important to me, because it allows to resume from an encrypted root partition. Of course, this also works with swsusp by using an encrypted swap device, but then you can't use a random password (or a password file stored on root) and have to enter at least two passwords when booting or resuming: one for root (/) and one for swap.
To add TOI support to Ubuntu, you have to build your own kernel. It's pretty easy, but if you use restricted kernel modules (drivers for your graphic card, VMWare/VirtualBox, ...) you will have to recompile them. So, here we go. First of all, download the kernel source and install some additional packages required at compile time:
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Warning: At the moment I can not recommend to use this script in conjunction with filewriter if you use a journaling filesystem for your root partition (ext3, reiser, ...). The reason is that when using filewriter the initramfs-script in /etc/initramfs-tools/scripts/local-premount/resume_tuxonice mounts this partition read-only to get the hibernation file's target. Unfortunately, the journal will be replayed in any case, so "mount -r /dev/hdX" does not mean "mount /dev/hdX, but don't make any changes on it". And this may result in a filesystem corruption because the resumed system things that these open transaction have not been handled yet. I'll do some changes to the scripts during the weekend, so please be patient of you want to "suspend to file". Yesterday, I described how to patch TuxOnIce-support into Ubuntu's kernel image. Today we will learn how to integrate this into Ubuntu's default hibernation framework, pm-hibernate. By doing this, you'll benefit from TuxOnIce' features without modifying your bootloader's configuration file and will be able to use your desktop's "Suspend to Disk"-command without changing any system file (because a customized system file might be overwritten on your next update). Furthermore, you will be able to combine suspend to disk with encrypted swap devices or (I prefer this) suspend to a file on your encrypted root partition.
Please note that the scripts I'll introduce are tested only by myself (yet), and they still lack of some features. I would be happy about every improvement. And of course I do not provide any warranty, you'll do this on your own risk. I think that the worst thing that might happen is that data on your root partition gets lost. But of course you're doing backups, don't you?
So, let's start. Oh, wait... did you ensure that you have a suitable backup? Ok. First I'll introduce what has to be done, and at the end I'll provide the scripts that implements this. Well, the first thing we have to do is to add resume support into Ubuntu's initramfs-Image. That is the file stored in /boot, starting with ' initrd.img' and ending with your kernel's version. If you're curious: it's a gzip'd cpio-archive, you can extract it using the following command:
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
If you experience problems or poor performance using Ubuntu's latest nVidia driver nvidia-glx-177 (as I did with a "nVidia Quadro NVS 160M"), try to upgrade to version 180. A package has been build for the next version of ubuntu (called "Jaunty Jackalope"), but sadly it has not been backported to Intrepid yet.
Who cares, I'll explain how to use Jaunty's repository with Intrepid to install this driver. First, make sure that you installation is up to date:
sudoapt-get update
sudoapt-get upgrade
Now, add Jaunty's "universe" repository to Apt's sources:
Prohibit an unmeant package replacement using Apt pinning. Edit /etc/apt/preferences (which might not exist yet) and put the following lines into it:
Package: *
Pin: release a=jaunty
Pin-Priority: 40
Multiple entries have to be separated by blank lines. If you want to know what this entries mean: there is an excellent (german) article at FedoraWiki.
Now run apt-get update again. If you upgraded before, apt-get upgrade should report zero updates. If there is a bunch of updates now that has not occured before, cancel and check wether you've edited /etc/apt/preferences correctly.
Last step: install the driver.
sudoapt-getinstall nvidia-glx-180
If you did not used the proprietary driver before, you have to edit /etc/X11/xorg.conf. Or, what I would suggest, install and run envyng to replace your current driver.
Beware
Unfortunately, Suspend-To-Disk-Support seems to be completely broken in this version. X crashes on resume. I was not able to get this working, neither with 180.06 nor with 180.11. At the moment, I've installed nvidia-glx-173 again.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Einmal, ein einziges mal, kaufe ich einen Drucker spontan und ohne mich vorher über die Linux-Kompatibilität zu informieren. Und prompt erwisch ich die Gurke eines Herstellers, der OpenSource anscheinend für Dreck hält :-(.
Mit ganz viel kompilieren und in PPD's rumpfuschen ging's dann schließlich doch einigermaßen zufriedenstellend.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Und wie es sich für so eine Bild-Schlagzeile gehört mit einem großen orangenen Warndreieck daneben.
Kurze Hintergrund-Information: Die nächste Ubuntu-Version kommt mit dem neuen Linux-Dateisystem "ext4". Nun wurde festgestellt, dass bei einem Absturz kurz nach dem Start die Konfigurationsdateien von KDE und Gnome zerstört (= geleert) sein können, was einen erneuten Start etwas schwierig macht. Nach einer kurzen Analyse hat der Entwickler des Dateisystems, Ted Ts'o, einen Workaround geschrieben, aber auch deutlich gemacht, dass eigentlich die Anwendung fehlerhaft programmiert ist.
Erst nach sechs Stunden hat sich mal jemand die Mühe gemacht, den Original-Kommentar von Ted Ts'o zu lesen. Kurz zusammengefasst: Viele Programmierer verlassen sich darauf, dass nach einem close() die Dateien auf der Festplatte liegen - was aber per Definition nicht wahr ist, erst ein flush() stellt dies sicher. Und damit ist es definitiv ein Fehler in der Anwendung, der halt erst dann auffällt, wenn das Dateisystem - wie auch ext4 - die Daten aus Performanz-Gründen lange im Speicher behält.
Aber das wirklich hässliche am Heise-Forum ist: All diese unqualifizierten Beiträge sind grün bewertet worden.
open("w")Achtung Betriebssystem, ich möchte in diese Datei schreiben, lass bloß niemand anderen da jetzt dran!close()So, ich bin fertig, nun dürfen andere auch wieder.flush()Hey Betriebssystem, ich hoffe, DU bist auch fertig mit der Datei.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Update 20.05.2009: Mit dem heute erschienenen Update auf kernel-desktop-2.6.29.3-1mnb-1-1mnb2 hat sich das Problem zumindest für mich erledigt. Der hier beschriebene Workaround sorgt nun im Gegenteil dafür, dass der X-Server nicht mehr startet. Deshalb vor dem Update die Zeile unbedingt auskommentieren!
Die Performance-Probleme gingen doch nicht auf Mandrivas Kappe. Statt dessen ist Intel schuld: Die Kombination aus Treiber-Version 2.7.0 und Kernel 2.6.29 macht laut diesem Foren-Beitrag zicken!
Die dort empfohlene Abhilfe hat auch bei mir funktioniert. In die /etc/X11/xorg.conf in der Section Device den folgenden Eintrag hinzufügen:
Außerdem wurde dort noch empfohlen, in die /etc/modules die folgende Zeile einzutragen;
i915 modeset=1
Bei mir war das aber nicht nötig, das System rennt auch ohne diesen Eintrag wieder wie gewohnt. Hoffen wir, dass ich an diese Einträge denke, wenn irgendwann der Kernel 2.6.30 stabil wird und sie nicht mehr nötig sein sollten ;-)
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Nachdem mich der Network-Manager von KDE 4.2 neulich so geärgert habe, wollte ich mal einem System die Chance geben, welches KDE als nativen Desktop verwendet. Da ich eine total unlogische und subjektive Abwehrhaltung gegenüber SuSE verspüre fiel die Wahl auf Mandriva 2009.1. Übrigens, Mandriva, welches damals noch Mandrake hieß, war die erste Linux-Distribution, die ich damals längere Zeit einsetzte.
Aber ich fürchte, die Beziehung steht unter keinem guten Stern.
Installation
Ich betreibe ein System mit Vollverschlüsselung, d.h. die gesamte Festplatte ist verschlüsselt. Dies ist für den Ubuntu-Installer eine harte Nuss, aber Mandriva hat da gleich mal Pluspunkte gesammelt, da ich problemlos eine verschlüsselte Root-Partition anlegen und sogar mein verschlüsseltes Homeverzeichnis einbinden konnte. Diesen Vorsprung konnte es aber nicht lange halten, denn zunächst vergaß das Programm mich darauf hinzuweisen, dass ein vollverschlüsseltes System nicht funktionieren kann, wenn es nicht wenigstens eine unverschlüsselte /boot-Partition gibt. Die Installation lief zwar durch, funktionierte am Ende aber natürlich nicht.
Gut, dass war recht schnell gelöst. Aber dann zeigte sich, wie lieblos die Vollverschlüsselung bei Mandriva implementiert ist. Es ging damit los, dass der USB-Treiber für die Tastatur nicht im 'initrd.img' eingebunden ist. Dadurch konnte ich das Passwort nur an der Laptop-Tastatur eingeben, was an meinem Schreibtisch etwas ungünstig ist, da das Laptop hier auf einem Ständer steht und die Tastatur damit einen unkomfortablen Winkel von ~30° hat - und mein Passwort ist nicht das kürzeste.
Dieses Problem lässt sich aber nach dem Start recht schnell lösen:
Nun werden die USB-Treiber eingebunden und vor der Passwortabfrage geladen. Übrigens, bei diesem Schritt muss ich mal anmerken, dass ich die Verwendung eines echten 'root'-Account mit eigenem Passwort im Vergleich zu 'sudo' ziemlich rückständig finde. So Web-1.0-mäßig ;-). Naja jedenfalls wird man recht schnell die nächste Einschränkung bemerken: Das initrd-Script prüft nicht, ob die Passworteingabe erfolgreich war, so dass sich das System mit einer "kernel panic" verabschiedet, wenn man sich mal vertippt hat. Dann hilft nur noch ein harter Reset. Der Grund dürfte darin liegen, dass die vom initrd-Script verwendete Shell 'nash' keine Schleifen und kein 'if' beherscht. Also erstmal die dash-Quelltexte runtergeladen, das Meta-Paket 'task-c++-devel' installiert (übrigens zweimal, da beim ersten mal mit einer angeblich fehlenden Abhängigkeit abgebrochen wurde), und versucht, das ganze mit './configure --enable-static && make' zu kompilieren. Fehlanzeige, es gibt einen Konflikt mit einer der mitgelieferten C-Header-Dateien, die das statische kompilieren verhindert. Nun gut, also 'dash' auf einem Ubuntu-System statisch kompiliert und rüberkopiert.
Update: Mandriva liefert bereits ein statisch gelinktes dash mit, es liegt unter /bin/dash.static. Ich habe den Patch für "mkinitrd" entsprechend angepasst.
Das fertige 'dash'-Programm wird nun unter /usr/libexec/dash abgelegt und das Script /sbin/mkinitrd ein wenig modifiziert ('dash' und der Patch für mkinitrd im Anhang). Nun ist das initrd-Image zwar etwas größer, dafür aber auch komfortabler. Ach übrigens, damit das Root-Dateisystem überhaupt erkannt wurde, musste ich die Kerneloption 'root=LABEL=mandriva-root' in 'root=/dev/mapper/crypt_sda7' ändern (siehe /boot/grub/menu.lst).
Netzwerk
Die Netzwerkverwaltung überzeugte. Im Gegensatz zu Ubuntu steht hier das Netzwerk auch ohne besondere Kunstgriffe bereits vor dem Login zur Verfügung. Dafür muss man zum Wechseln der WLAN-Verbindung allerdings auch etwas tiefer in die Einstellungen gehen. WPA-EAP konnte ich noch nicht testen, aber ich gehe davon aus, dass es funktioniert.
Paketverwaltung
Naja was gibt's dazu zu sagen. Wenn man Tools wie 'apt-get' oder 'emerge' gewöhnt ist, dann ist 'urpmi' eine echte Krücke.
Grafische Oberfläche
Merkwürdigerweise legte Mandriva in der Konfiguration eine Auflösung von "1024x768" fest, obwohl das Konfigurationswerkzeug ("Computer konfigurieren > X-Server") durchaus aus meine native Auflösung von 1400x1050 erkannte und akzeptierte.
KDE
Ubuntu legt die KDE-Konfiguration in $HOME/.kde ab, Mandriva in $HOME/.kde4. Ein kleiner Symlink verschafft Abhilfe, wenn man unter beiden Systemen die selbe Konfiguration verwenden möchte.
Außerdem muss man sich erstmal darüber klar werden, dass Mandriva über das gesamte Panel ein zweites gelegt hat. Um das Originalpanel zu erreichen ist es notwendig, rechts drauf zu klicken und "Kontrolleister entfernen" zu sagen - was das System mit einer bedrohlichen Warnung quitiert. Ignoriert man diese, ist aber wieder alles OK.
Nicht OK dagegen sind die Icons im Instant-Messanger "Kopete", welche nun wirklich riesig sind. Die Ursache dafür habe ich noch nicht gefunden. (Nachtrag: "Einrichten > Kontaktliste > Kontaktlistensil > Statissymbole linksbündig". Trotzdem merkwürdig, dass Mandriva diese Einstellung verändert hat.)
Performance
Das wundert mich echt. Im Gegensatz zu Ubuntu fühlt sich Mandriva sehr schwergängig an. Das liegt aber nicht an den Anwendungen, sondern an den CPU-Performance-Einstellungen. Obwohl beide Systeme den "ondemand"-Govenor verwenden, der die Leistung der CPU bei Bedarf erhöht, scheint die Reaktionszeit oder der Schwellwert bei Mandriva höher zu sein, so dass das System einen oftmals bei minimaler Taktfrequenz warten lässt. Update: Mandriva ist unschuldig.
Vorläufiges Fazit
Ich werde Mandriva noch ein paar Tage verwenden, aber es sieht wirklich nicht so aus, als ob wir Freunde werden. Alles, was abseits von der Vorgabe liegt, funktioniert nur halbherzig oder garnicht. Darüber hinaus habe ich innerhalb von nichtmal 24h gefühlt bereits mehr Probleme erlebt als in meiner gesamten bisherigen Ubuntu-Zeit (z.B. die Abhängigkeiten, die erst beim zweiten Durchlauf aufgelöst wurden, obwohl ich nichts verändert hatte). Außerdem vermisse ich 'apt' und 'sudo'. Letzteres kann man natürlich nachinstallieren, dennoch gehen die Systemprogramme davon aus, dass 'root' über ein eigenes Passwort verfügt.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Neben den klassischen WLANs "Uni Osnabrueck" und "FH Osnabrueck" sind beide Hochschulen seit längerem auch Teil des WLAN-Netzwerkes eduroeam. Für die Studenten hat dieses Netzwerk den Vorteil, dass sie auch den Zugang der jeweils anderen Hochschule mitnutzen können. Mit Kubuntu und seiner komischen NetworkManager-Lösung konnte ich mich dort nie erfolgreich anmelden, aber mit Mandriva geht es relativ problemlos.
Dann öffnet man die Netzwerk-Konfiguration "draknetcenter" und wählt das gefundene "eduroam"-Netzwerk (auf die Bilder klicken zum Vergrößern):
Ein Mausklick auf den Button "Konfigurieren" bringt einen auf die Einstellungsseite. Als Verschlüsselungsmodus muss "WPA/WPA2 Enterprise" ausgewählt sein, der "EAP Login/Benutzername" entspricht dem Benutzernamen für die Universitätsdienste mit angehängtem "@uni-osnabrueck.de", also z.B. "username@uni-osnabrueck.de", und das "EAP Passwort" ist das selbe, mit dem man sich z.B. in den Webmaildienst oder dem Stud.IP einlogt:
Für das eduroam-Netzwerk müssen noch einige "Fortgeschrittene Optionen" konfiguriert werden, indem der entsprechende Knopf am Ende der Seite angeklickt wird. Hier sind die folgenden Einstellungen zu treffen:
EAP CA Zertifikat: Vollständiger Pfad zur heruntergeladenen Zertifikatskette
Fertig, im Normalfall sollte das Netzwerk nun verbinden. Falls es nicht klappt hat es bei geholfen, die Datei /etc/wpa_supplicant.conf nach dem network mit der Zeile ssid="eduroam" zu suchen und einige überflüssige Zeilen zu entfernen, so dass der Ausschnitt danach so aussieht (die Reihenfolge der Einträge ist egal):
Nun noch mit dem Befehl /etc/init.d/network restart das Netzwerk neu starten und fertig. Natürlich kann man alternativ auch gleich die Datei /etc/wpa_supplicant.conf bearbeiten, wenn man keine Lust auf den grafischen Assistenten verspürt ;-)
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Vor einigen Tagen schrieb ich einen ziemlichen Veriss über meine ersten Versuche mit Mandriva. Das ist nun vier Tage her, und ich hab seit dem nicht einmal mehr Ubuntu gebootet. Deshalb hier ein kurzes Update: Suspend to Ram
Der "Schlafzustand" funktionierte bei mir immer genau einmal, beim zweiten mal wachte das System nicht wieder auf. Es handelt sich laut Bug #47276 um ein Problem im Linux-Kernel, welches für viele wohl mit Kernel 2.6.29rc5 behoben wurde - für mich leider nicht. Die manuelle Installation von Kernel 2.6.30rc5 brachte schließlich die erhoffte Abhilfe. Auf http://www.howtoforge.com/kernel_compilation_mandriva ist dies ganz gut beschrieben. Das einzige Manko dieser Anleitung ist, dass Mandriva inzwischen auf 'grub' und nicht mehr auf 'lilo' setzt. Der letzte Punkt ist demnach so nicht mehr korrekt.
Performance
Wie ich bereits festgestellt hatte, lag dies am Intel-Treiber. Die im verlinkten Beitrag beschriebene Lösung hilft, alternativ tuts auch ein manuelles Update auf Kernel 2.6.30.
Vollverschlüsselung
Nix neues von der Front. Der im letzten Artikel beschriebene Patch an 'mkinitrd' tut seinen Dienst ganz hervoragend.
TuxOnIce
Mein nächstes Projekt. Wegen der Vollverschlüsselung wird dazu jedoch ein etwas umfangreicherer Patch an 'mkinitrd' notwendig werden.
Das kritisierte dopppelte Kontrollpanel scheint auf meine von Ubuntu übernommene Konfiguration zurückzuführen zu sein. Mandriva ist also unschuldig.
Paketverwaltung
Durch Zufall bin ich auf den Smart Package Manager gestoßen, ein Distributionsübergreifendes Paketmanagement, welches in der Bedienung deutlich von Apt inspiriert ist. Bei MandrivaUser kann man sich über eine Weboberfläche Konfigurationsdateien mit den passenden Spiegelservern erstellen lassen.
Nicht mehr ganz so vorläufiges Fazit
Die französische Distribution und ich haben uns nach ersten Reibereien aneinander gewöhnt. Mein Ausflug in die Ubuntu-Welt währte damit gerade mal ein halbes Jahr. Mal schauen, wie lange ich mit Mandriva zufrieden bin. Die gröbsten Klippen sind umschifft und mit 'smartpm' existiert eine schöne Alternative zu 'urpmi'. Nur den echten 'root'-Account anstelle der konsequenten Verwendung von 'sudo' finde ich immer noch von vorgestern. Aber gut, Debian ist da nicht besser.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
In my installation, KDE failes to lock the screen on suspend / hibernate, even if the checkbox "lock screen" in the "Energieverwaltung" (how is this labeled in english? Power configuration? Don't know...) is enabled. So I've adapted this patch to Mandriva.
Create the file /etc/pm/sleep.d/50-lock with the following content:
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Ich installiere gerade das RC2 von Mandriva 2010.0 und der erste Eindruck ist: Reeeespekt! Ich hab's dem Installer besonders schwer gemacht, indem ich (neben einer kleinen ext2-Partition für /boot) den gesamten Rest in einr verschlüsselte dm-crypt-Partition gepackt habe, dort hinein ein LVM und dieses in swap, / und /home aufgeteilt habe:
Zur Erinnerung: Mandriva 2009.1 ist schon an wesentlich weniger gescheitert, an LVM habe ich mich damals nicht getraut weil schon für eine verschlüsselte root-Partition Handarbeit notwendig war. Aber 2010.0 hat's auf Anhieb hinbekommen, dieses Szenario erfolgreich zu booten!
Bin ja mal gespannt, wie meine weiteren Erfahrungen so sein werden.
Update
Mein Respekt steigert sich gerade ins unermessliche. An Suspend-To-Disk bei verschlüsselter Swap-Partition ist bis jetzt noch jede Distribution gescheitert, die ich getestet habe, Doch Mandriva hat sich gerade ohne zu murren schlafen gelegt und ist auch wieder aufgewacht!
Update 2
Aber definitiv noch RC und nicht Stable - nach einem Upgrade sind die LVM-Devices aus der /etc/fstab verschwunden und der neue Kernel panic'd rum. Wird Zeit für nen Bugreport :-)
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Wie schon erwähnt fehlt meinem neuen Notebook leider ein UMTS-Model. Nun ja, mein Handy habe ich immer dabei und dank der Fonic Tagesflatrate (2,50 EUR pro Kalendertag) kann ich in wichtigen Fällen darüber online gehen. Doch dazu müsste ich ja auch ständig das USB-Kabel mit mir rumschleppen. Glücklicherweise haben die Erfinder von Bluetooth schon vor vielen Jahren daran gedacht, dass man Handies ja auch als drahtlose Modem verwenden könnte.
Der Standard ist bereits ca. 10 Jahre alt, inzwischen sollte es doch auch für Linux kein Problem sein, oder? Denkste. Zumindest, was KDE 4.4 angeht. Das "kbluetooth"-Applet hilft zwar beim Austausch von Dateien und möglicherweise ist es auch für Eingabegeräte geeignet, aber das Pairing zum Einsatz der DUN-Schnittstelle ist damit offenbar nicht möglich.
Das heißt also: wie seit zig Jahren mit Kommandozeilentools rumfrickeln. Oder das GUI-Programm blueman installieren, welches sich in den Paketquellen aller aktuellen Distributionen befinden sollte. Anschließend den Gerätemanager 'blueman-manager' starten, der sich auch gleich als Applet ('blueman-applet') ins Tray einträgt.
Bluetooth am Handy aktivieren bzw. sichtbar schalten und anschließend auf die Lupensymbol (Adapter > Suche) klicken. Das Gerät auswählen und über das "Plus"-Symbol (oder Rechtsklick) hinzufügen. Optional anschließend durch das Stern-Symbol (oder Rechtsklick) "vertrauen". Nun per Rechtsklick oder über das "Gerät"-Menü den Punkt "Serielle Anschlüsse > Einwahl-Dienst" auswählen. Das Handy wird nun nach einer Pin fragen, hier eine beliebige Zahlenkombination eingeben. Danach wird der Bluetooth-Manager nach eben dieser Zahl fragen. Nun noch am Handy bestätigen, dass der PC sich verbinden darf und fertig. Wer mag, kann die Geräte über den entsprechenden Menüpunkt auch dauerhaft koppeln.
Damit ist die Arbeit für Blueman erstmal beendet, nun ist endlich wieder KDE an der Reihe. Das Symbol des KNetworkManagers rechts anklicken und auf "Verbindungen bearbeiten" gehen. Hier das Tab "Mobiles Breitband" öffnen und den Button "hinzufügen" anklicken. In dem Dialog, der sich nun geöffnet haben sollte, wahlweise "Irgendein Gerät" oder "Installiertes GSM-Gerät" auswählen und dann den Anweisungen folgen. KDE kennt bereits eine Vielzahl von Providern, darunter auch deutsche. Im Idealfall muss man also nur ein paar mal auf "Weiter" klicken und gar keine eigenen Daten eingeben.
Wenn alles geklappt hat, dann sollte der KNetworkManager nun bei einem Klick mit der linken Maustaste den Punkt "Mobiles Breitband" und darunter die eingerichtete Verbindung anzeigen. Sobald man diese anklickt, ist man online (jedenfalls theoretisch).
Wie gesagt, 2010 und immer noch so eine lange Anleitung erforderlich. Gut, dass das Pairing mit Headsets oder dem Bordcomputer im Auto nicht so kompliziert ist.
Achja, falls in Blueman beim Aufruf der "Einwahl-Schnittstelle" ein Fehler erscheint, dass das Gerät bereits verwendet wird, dann hilft es, den Eintrag zu löschen und das Telefon anschließend erneut hinzuzufügen.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Mein Laptop betreibe ich aufgrund der damaligen Arroganz der Entwickler bereits seit fast zwei Jahren nicht mit Gentoo Linux. Und hab es auch ehrlich gesagt auch nicht bereut. Aber der Web- und Mailserver, auf dem zum Beispiel auch tasmiro.de liegt, blieb weiterhin auf diesem OS. Überstand sogar einen Serverumzug und später die Migration in eine KVM. Doch gestern abend passierte ein Unglück. Eigentlich ein harmloses Update mit "emerge -Du world", wie schon duzende Male zuvor gemacht. Keine Fehlermeldung oder so. Doch als der Server auch nach 10 Minuten nicht neu gestartet war, schaute ich nach. Die genaue Todesursache hab ich nicht identifizieren können, vermutlich es hängt irgendwie mit udev und/oder baselayout zusammen. Der Kernel findet noch beide (virtuelle) Festplatten, aber es wird kein Eintrag in /dev erstellt. Dadurch scheitert das Mounten und dem System fehlen /boot, /var und /home.
Nun ja, ich habe einige Stunden lang versucht, das Leben des Patienten zu retten, aber vergeblich. Da er schon sehr alt ist, und auch einige Geschwülste (also nicht vollständig entfernte, aber inzwischen überflüssige Programme) hat, werde ich ihn ziehen lassen. Im Moment erstelle ich das letzte Backup seines Lebens, danach schließe ich die VM wieder an die Herz- grml-Maschine an, und heute abend kümmere ich mich um ein neues System.
RIP, Gentoo.
[Klarstellung: Damit ist nicht gemeint, dass ich Gentoo den Untergang wünsche, im Gegenteil - die Welt braucht solche Distributionen. Aber für mich persönliche war dies das letzte noch im Einsatz befindliche System, welches nun auf eine andere Distribution migriert wird. Entsprechend ist der "Nachtrag" auch als eine persönliche Anmerkung zu betrachten; solche Situationen sind auch bei Gentoo gewiss nicht an der Tagesordnung.]
Nachtrag:
Ich muss es einfach nochmal erwähnen: Dass ein Linux-System nach einem regulären Update nicht wieder startet ist der absolute Worst-Case. Vor allem wenn nicht einmal der Kernel betroffen ist darf das einfach nicht passieren. In diesem Fall hatte ich Glück, dass es sich um eine virtuelle Maschine handelt und ich damit auch ohne SSH an das Ding rankomme, es sogar von einem Rettungssystem booten kann. Wäre es das Hostsystem gewesen, dann hätte ich mir die Nacht um die Ohren schlagen dürfen, weil die provisorische Inbetriebnahme kaum möglich gewesen wäre.
Nachtrag 2:
Nach dem Hinweis von Linux Freund in den Kommentaren habe ich nochmal weiter recherchiert. Es lag an den Kernel-Flags "CONFIG_SYSFS_DEPRECATED" und "CONFIG_SYSFS_DEPRECATED_V2". udev hatte mich zwar darauf hingewiesen, dass es damit ein Problem geben könnte. Da ich nicht viel Zeit hatte, kompilierte ich deshalb einen Standardkernel mit "genkernel". Hätte ich ahnen sollen, dass auch dieser diese Flag enthalten würde? Keine Ahnung... unvernünftigerweise hatte ich mich darauf verlassen, dass da schon ein Kernel herauskommen würde, mit dem jedes normale Gentoo-System funktioniert. Tat es aber nicht. Nun habe ich meinen ursprünglichen Kernel nochmal ohne diese Flags kompiliert, und das System fährt hoch. Leider hat der Up- und Downgrade des "baselayouts" von 1 auf 2 und dann wieder auf 1 wohl doch noch etwas mehr kaputt gemacht.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Since my laptop is under repair I've tried to boot its operating system (Fedora 13) from a Mac Mini. I've bought a cheap external USB-Case for 2,5"-SATA-Drives from LogiLink, removed the drive from my Acer Aspire 1810T (beware of the glued foil and cable!), put it into the case and attached both USB cables to the laptop. And voilà, it works! Linux starts without any problems, as if the drive had never been anywhere else but in an external USB connector. So I've hopefully attached it to the Mac Mini. And this is the story how Apple stoles me a whole day of my life.
Even while I would like to tell you the whole story I think it would be a very boring article. So I'll just tell you what you have to do if you want to boot Linux from an external USB device.
First part, prepare the Mac. In OSX download and install rEFIt, an EFI boot menu. Take care that you customize the installation type during setup (german: "Installationstyp > Anpassen", I don't know how these steps are labeled in english) and select "File System Drivers" to get access to ext2, ext3 and ReiserFS partitions. After the second reboot you should see a boot menu with entries for OS-X, Windows (if installed) and, if your USB-Drive is already connected, an entry to boot Linux from it. If today is your lucky day this will work and you could stop reading now. But supposably something like this happens:
rEFIt's FAQ provides no real solution for this. It looks like Apple just don't want you to boot a native (MBR) bootloader from USB, as booting the same loader from the internal harddisk or from a bootable cdrom seems to work without any problems. So, let's modify the linux system to make it will be bootable by rEFIt by installing an EFI-enabled version of Grub2.
Boot the linux drive from another system. If you don't have one you can use a rescue system like grml, it will be listed in the rEFIt loader - and even bootable (wtf?). I recommend to take the latest grml64-medium, but ensure that you are downloading the same architecture as the linux system on the usb drive. Mount your root partition, chdir into its directory and execute mount -o bind /dev dev; mount -t proc none proc; chroot . bin/bash. Then mount other required devices like /boot or /home.
After you've booted (or chroot'ed) into your system you have to install grub2 with EFI support. Most likely your distribution's package is compiled without it, so download the current release from ftp://alpha.gnu.org/gnu/grub/ (1.98 at the time of writing), untar and compile it. You can do this as a normal user. Please don't run make install if you don't know for sure what you are doing.
$ wget ftp://alpha.gnu.org/gnu/grub/grub-1.98.tar.gz
$ tar xvzf grub-1.98.tar.gz
$ cd grub-1.98
$ ./configure --with-platform=efi --target=x86_64
$ make
$ ./grub-mkimage -d.-o grub.efi normal sh chain boot configfile \rebootcat lspci ls datetime loadenv search help efi_uga fixvideo \
font minicmd fat ext2 linux part_msdos part_gpt hfsplus appleldr
$ sudomkdir-p /boot/EFI/grub2
$ sudocp grub.efi *.mod *.lst /boot/EFI/grub2
This example supposes that the /boot directory is on it's own partition. If it isn't please use /EFI/grub2 instead of /boot/EFI/grub2. And if you want this to work don't name it anything else than EFI, not "efi" nor "Efi", since rEFIt is scanning for this directory.
A short note to the ./grub-mkimage-command: The grub.efi file should contain all modules that have to be avaible in the very first step. In most cases "help", "search", "minicmd", etc can be loaded at runtime using "insmod". But if something goes wrong you will be happy to have these modules in the core image. If you don't want to put grub on an OS-X device it should be safe to remove part_gpt hfsplus appleldr from the command line, but I haven't tried.
Now you have to create the configuration file at /boot/EFI/grub2/grub.cfg. If you're already using grub2 you can copy or symlink your existing config. Here's an example that should be bootable on any system. Of course you have to change the filenames of "vmlinuz" and "initramfs" to the ones on your system. If /boot isn't on it's own partition prepend /boot to the paths. Replace BOOT_PARTITION_UUID and ROOT_PARTITION_UUID with the values valid for your system. ls -l /dev/disk/by-uuid/ shows the current mappings. Note that these values will change if you reformat these partitions.
set default="0"
set timeout=5
set root='(hd1,1)'
search --no-floppy --fs-uuid --set BOOT_PARTITION_UUID
menuentry "GNU/Linux" --class gnu-linux --class gnu --class os {
set gfxpayload=keep
set root='(hd1,1)'
search --no-floppy --fs-uuid --set BOOT_PARTITION_UUID
echo Loading Linux ...
linux /vmlinuz-2.6.34.6-54.fc13.x86_64 root=UUID=ROOT_PARTITION_UUID ro quiet rhgb
echo Loading initial ramdisk ...
initrd /initramfs-2.6.34.6-54.fc13.x86_64.img
}
If you want to use the same settings for EFI and PC version of grub2 (the one shipped with your distribution) you can create a symlink: cd /boot/grub2 && symlink -s ../EFI/grub2/grub.cfg or vice versa.
Finally, I had to do some driver modifications. Put the following line into /etc/modprobe.d/macmini.conf for audio support:
options snd-hda-intel model=mb31
And replace the nouveau driver by the proprietary one. On Fedora 13 this is done by the following commands:
You can append rdblacklist=nouveau to the kernel's command line, but ensure that X isn't started as it might try to replace the VESA driver with nouveau.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Ein kleiner Memo-Eintrag, in erster Linie für mich selbst. Logisch, dass dies in Deutschland so nur mit selbst erstellten DVDs oder mit gekauften DVDs ohne Kopierschutz gemacht werden darf (und die archivierte Kopie natürlich auch nicht weitergegeben werden darf, aber das ist wohl selbstverständlich)...
Die Zuordnung der Indexes zu den Sprachen kann zum Beispiel mit mplayer geprüft werden. Allerdings verwendet mplayer die dezimale Schreibweise: 0x80 = 128, 0x81 = 129, usw. Mit dem Wissen um die Zuordnung kann die Umwandlung gestartet werden. Hier im Beispiel werden die zwei Tonspuren 0x80 (eng) und 0x81 (ger) getauscht. Weitere können am Ende des Befehls angefügt werden. Soll die Reihenfolge der Spuren nicht geändert werden, dann sind die -map-Parameter optional.
ffmpeg -i dvdtitel-N.vob -threads0\-map0-map0.2-map0.1\-vcodec libx264 -vpre normal -level51-crf23\-acodec copy -alang ger \
dvdtitel-N.mkv \-acodec copy -alang eng -newaudio
Bei Filmen im Interlaced-Format sollte man hinter "-vpre normal" außerdem noch " -flags +ilme+ildct" einfügen. Ob es sich um Interlacing-Material handelt, kann man zum Beispiel mit transcode schnell herausfinden:
Den Untertitel mit der ID 1 und der Sprache deutsch im vobsub-Format in die Dateien "dvdtitel-N.idx" und "dvdtitel-N.sub" speichern:
$ mencoder dvdnav://N -nocache-nosound-ovc frameno -o /dev/null \-slang de -sid1-vobsuboutindex0-vobsuboutid de -vobsubout dvdtitel-N
Den vobsub-Untertitel mithilfe von Texterkennung in das SRT-Format umwandeln:
Avidemux starten
Tools >OCR (VobSub -> srt)...
IDX-Datei auswählen, die dazugehörige .SUB wird automatisch gefunden
Ausgabe SRT-Datei
Falls bereits vorhanden kann ein bestehender Zeichensatz für die Texterkennung ("Glyphs") ausgewählt werden.
Dem OCR-Programm bei der Erkennung der Buchstaben helfen.
Avidemux scheint Probleme mit Umlauten zu haben. Stößt das Programm auf ein "ö,ä,ü,ß", so empfehlt es sich, statt dessen eben "oe,ae,ue,ss" einzugeben.
Gegebenenfalls den so erstellen Zeichensatz für eine zukünftige Verwendung speichern.
Die erzeugte SRT-Datei falls nötig ins UTF8-Format umwandeln:
$ recode latin1..utf8 dvdtitel-N.srt
Falls Avidemux die Zeichen nicht erkennt, fehlt in der .IDX-Datei vermutlich die Farbpalette. In diesem Fall die Datei einfach in einem Texteditor öffnen und die folgende Zeile einfügen (ohne den Zeilenumbruch):
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Flexbackup is a very nice and flexible tool to create full, incremental and differential backups. But if you store your backups in an untrusted environment you might want do encrypt the created archive files. Flexbackup cannot handle it by default, but there is a very simple way to get the desired results by replacing the default gzip binary with a wrapper file.
In this example I'm using mcrypt with symmetric block cipher DES. Replace it with gnupg if you want asymmetric encryption, but remember: if someone gains root access to read the key he doesn't need to decrypt your backup files - he already has access to the originals.
Create a file named /usr/local/bin/gzip_crypt:
#!/bin/shgzip$*| mcrypt -a des --keyfile"$HOME/mcrypt.key"
Store an encryption key in $HOME/mcrypt.key, e.g. /root/mcrypt.key. I would suggest to use at least 16 random characters for it, see the manpage of mcrypt for details. Ensure that the key isn't readable for someone else:
$ chmod 0600 "$HOME/mcrypt.key"
Don't - DON'T, DON'T, DON'T - enter the key as command line argument to mcrypt as it would be visible in the process list for every user while mcrypt is running!
Now edit your flexbackup.conf and change the following options to these values:
$compress='gzip';$comp_log='bzip2';# or just 'false', gzip_crypt isn't able to handle this$path{'gzip'}='/usr/local/bin/gzip_crypt';
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
If you have a table "tablename" with a (non-PK) column "number" and you want to enumerate all existing rows starting with 1000 you can use the following SQL statement:
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Today I wrote a patch to Flexbackup 1.2.1 which allows you to define exclude expressions on a per-directory-base (like svn:ignore, cvs_ignore or tar's --exclude-from). Apply this patch and add the following line to your flexbackup.conf:
$exclude_expr_filename='.flexbackup_exclude';
This activates an additional routine in the file_list_cmd() method. As soon as the 'find' command has enough parameters to iterate through all directory it is used to retrieve a list of '.flexbackup_exclude' files. Each file is read line by line and a regular expression will build and appended to the directory's name, e.g:
All files matching this expression will be ignored. This is done by piping find's output through xargs and perl:
$ find.[conditions...]-print0|xargs-0 perl -e'foreach (@ARGV) { print "$_" if ! /dummy\/((.*\.tmp$)|(a_very_big_file\.iso))/ and 1'
If more than one .flexbackup_exclude-file is found more conditions are prepended to the 'and 1'-dummy-condition. Because every condition is tested (and ignored if compilation failed) it should not be possible to break the backup using these files.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
2014-02-26:
I've updated this HowTo for current versions of udev and kvm.
libvirt/kvm allows you to expose any usb device attached to your physical maschine to the guests. Just edit the domain's XML definition and add the following <hostdev> to the <devices> area:
<domaintype='kvm'>
...
<devices>
....
<!-- The XHCI driver includes support for USB 2 devices, which makes
it easier as with UHCI/EHCI to add an USB controller. Remove
existing USB controllers from definition. --><controllertype='usb'index='0'model='nec-xhci'/><hostdevmode='subsystem'type='usb'managed='yes'><sourcestartupPolicy='optional'><vendorid='0x03f0'/><productid='0x4217'/></source></hostdev></devices></domain>
Vendor id and product id can be determined with lsusb:
$ lsusb
...
Bus 002 Device 018: ID 03f0:4217 Hewlett-Packard EWS CM1015
...
Sadly this only works if the device is attached and enabled when the VM is started. The connection will be lost whenever the device is disabled or removed. But you can re-attach it at runtime. Just put the hostdev-definition into it's own file:
Previously, this example depended on sysFs{idVendor} and sysFs{idProduct} in order to match the correct USB device. These do not exist any longer, so I replaced them with environment variables containing the same information. To find out what attributes are available for matching, run udev monitor --property --udev while attaching and detaching the device.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
I'm doing some end-user support for Linux desktops (family and friends). From a chat with my mother and observation of our trainee I've noticed that what's normal users making the most head pains are the different packaging formats. For example, when you want to download Google Chrome Linux users are confronted with four different options:
32-Bit-DEB
64-Bit-DEB
32-Bit-RPM
64-Bit-RPM
Sometimes there are even different .deb's or .rpm's for multiple systems (Debian/Ubuntu, Fedora/OpenSuSE/Mandriva, ...). And of course there are package managers that have a fundamentally different design philosophy (emerge or ABS).
Even if the requested package could be found in the distributions package repository the very first step for new linux users is: Google the vendors homepage and click "download". As I don't think there will ever be a "one and only" package manager for all distributions maybe we should start thinking about some kind of "meta-package-format" (MPF) that's a simple text file which contains parsable information about plattform specific packages. Some kind of computer readable download page. I think of it as an INI file with various sections and conditions that have to match. The first section that matches all conditions takes it.
A short example how this might look like:
[Ubuntu 11.04/64]vendor=Ubuntuversion=11.04arch=x86_64package=http://www.example.org/dist/myprogram-x.y.z-ubuntu-x86_64.deb[Ubuntu 11.04/32]vendor=Ubuntuversion=11.04arch=i386|i586|i686package=http://www.example.org/dist/myprogram-x.y.z-ubuntu-i386.deb[Generic deb/64]format=debarch=x86_64package=http://www.example.org/dist/myprogram-x.y.z-x86_64.deb[Generic deb/32]format=debarch=i386|i586|i686package=http://www.example.org/dist/myprogram-x.y.z-i386.deb[Fedora]# Can be found in regular repositoryvendor=Fedorapackage=myprogramm[Generic rpm/64]format=rpmarch=x86_64package=http://www.example.org/dist/myprogram-x.y.z-x86_64.rpm[Generic rpm/32]format=rpmarch=i386|i586|i686package=http://www.example.org/dist/myprogram-x.y.z-i386.rpm[Gentoo]format=ebuildpackage=http://www.example.org/dist/myprogram-x.y.z.ebuild[Windows/32]vendor=Microsoftos=Windowsarch=i386package=http://www.example.org/dist/myprogram-x.y.z-i386.exe[Windows/64]vendor=Microsoftos=Windowsarch=x86_64package=http://www.example.org/dist/myprogram-x.y.z-x86_64.exe[OS-X]vendor=Appleos=OS Xpackage=http://www.example.org/dist/myprogram-x.y.z.dmg[Fallback]package=http://www.example.org/dist/myprogram-x.y.z.tar.gz
Now all that you have to do is to provide this MFP file for download. The MFP manager will evaluate the conditions, download the sufficient package format and give it to the system dependent package manager.
What do you think about this? Am I reinventing the wheel? Is it just a 15th standard? Or is this the idea that helps end users to get in touch with the various linux distributions out there?
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Soeben habe ich die neuen 2TB-Festplatten in den Media-PC eingebaut und mich dazu entschieden, dieses mal dem neuen Linux-Dateisystem btrfs eine Chance zu geben. Im Gegensatz zum klassischen ext beherscht dieses nämlich von Haus aus RAID-Funktionalitäten (Level 0, 1 und 10) sowie Snapshots. Das RAID im Level 1 schützt vor physikalischen Fehlern, die Snapshots - sofern man sie regelmäßig anlegt - vor logischen, wie einem versehentlichen 'rm -rf'.
Die Frage ist, wie stabil btrfs inzwischen geworden ist. Da es beinahe das Standardsystem unter Fedora 16 geworden wäre ist meine persönliche Einschätzung: Stabil genug für mich. Der Grund, warum FC16 doch noch ext4 verwendet, ist das fehlende bzw. nicht rechtzeitig fertig gewordene fsck. Mit den git-Quellen jedoch kein Problem, dort findet sich inzwischen ein btrfsck. Sowieso würde ich für den Einsatz einen aktuellen Kernel (3.x) und die aktuellen Tools aus dem Git-Repository verwenden, siehe https://btrfs.wiki.kernel.org/.
Zuerst müssen die Partitionen im RAID-1-Modus formatiert werden:
Im Gegensatz zu einem klassischen mkfs gibt man hier also zwei (bzw. mehr) Devices an. Mit den Parametern -d (--data) und -m (--metadata) wird der jeweilige Speichermodus festgelegt. Standardmäßig spiegelt btrfs bei mehr als einer Partition die Metadaten (raid1) und teilt die Daten auf beide Devices auf (raid0).
Damit btrfs alle zusammengehörigen Partitionen automatisch finden kann, erhalten sie die selbe UUID und unterschiedliche Sub-UUIDs:
Dementsprechend reicht es beim Mounten auch aus, entweder eines der beiden Devices oder die UUID anzugeben. Die folgenden drei Befehle sind also identisch zueinander:
$ mount /dev/sdd1 /mnt
$ mount /dev/sde1 /mnt
$ mountUUID=243efbc4-5f72-4352-9160-d693b3ed41b5 /mnt
Der Befehl btrfs filesystem show zeigt alle erkannten Dateisysteme an:
$ sudo btrfs filesystem show
Label: 'mediafiles' uuid: 243efbc4-5f72-4352-9160-d693b3ed41b5
Total devices 2 FS bytes used 809.82GB
devid 1 size 1.82TB used 817.03GB path /dev/sdd1
devid 2 size 1.82TB used 817.01GB path /dev/sde1
Btrfs v0.19-102-g2482539
Es gibt jedoch eine kleine Stolperfalle. Soll das RAID-1-btrfs beim Booten automatisch eingehängt werden, so *müssen* alle Devices in der /etc/fstab eingetragen werden. Ansonsten meckert das System, da es nicht alle dazugehörigen Devices selbst finden kann, selbst wenn die UUID verwendet wird:
Gefährlich ist dies vor allem bei Headless-Systemen, da im laufenden Betrieb die automatische Erkennung der Devices durchaus funktioniert und ein Eintrag ohne die device=-Optionen daher beim Testen durchaus funktionieren würde.
Nicht ganz einfach ist übrigens die Größe bzw. der freie Speicher des RAID-1-Dateisystems zu ermitteln:
df zählt hier also einfach den gesamten und belegten Speicher aller Einzelpartitionen zusammen. Der Grund hierfür liegt, soweit ich das im Wiki verstanden habe, in einem Berechtigungsproblem: Um das Dateisystem als RAID-1 zu erkennen und die Größe damit korrekt anzugeben müsste df direkt darauf zugreifen, was ihm aber zumindest als normaler User nicht erlaubt ist. btrfs bringt daher sein eigenes df mit:
Das Tool btrfs wird auch verwendet, um weitere Devices zum Raid hinzuzufügen, zu entfernen, Snapshots anzulegen oder das FS zu defragmentieren. Hiermit habe ich bisher aber noch nicht experimentiert, ggf. wird's einen Nachtrag geben. Erstmal werde ich nun das Verhalten im MythTV-Betrieb beobachten und vor allem auf die - subjektive - Performance im Vergleich zu ext4 achten.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Wenn ich mit ffmpeg Videos in das x264-Format (in einem mkv-Container) umkodieren will, stoße ich manchmal auf folgende Fehlermeldung:
Application provided invalid, non monotonically increasing dts to muxer in stream 1: 6010976 >= 6010976
av_interleaved_write_frame(): Invalid argument
Danach bricht ffmpeg ab. "dts" hat dabei übrigens nicht mit dem Tonformat "DTS" zu tun, dennoch liegt das Problem an der Tonspur, die offenbar nicht ganz standardkonform ist, auch wenn ein Videoplayer sie abspielen kann. Es gibt diverse Patches, die dieses Problem umgehen sollen, aber nach meiner Erfahrung funktionieren sich nicht in allen Fällen oder haben andere Nebenwirkungen (z.B. kurze Aussetzer).
Erfolgsversprechender ist es, Video- und Tonspur einzelnd zu kodieren (bzw. letztere entnehme ich meistens unverändert aus der Quelle) und diese danach zusammenzufügen. Theoretisch kann es dabei zwar zu Sync-Problemen kommen, aber wenn beides aus der gleichen Quelldatei stammt sollte es funktionieren.
Zuerst konvertiert man die Videospur:
$ ffmpeg -i quelle.vob \<i># Verwende alle Kerne. Ggf. die Zahl der zu verwendenen CPU-Kerne angeben</i>-threads0\<i># Kein Audio und keine Untertitel (Subtitle)</i>-an-sn\<i># eigene Präferenzen für Videokodierung</i>-vcodec libx264 -preset slow -tune film -level41-crf23\<i>Zieldatei im mkv-Format</i>
ziel-nosound.mkv
Anschließend fügt man die Tonspuren hinzu. In diesem Beispiel wollen wir die erste (englisch) und die dritte (deutsch) Tonspur aus der Quelle nehmen, wobei die deutsche jedoch vom Player standardmäßig ausgewählt werden soll:
$ mkvmerge \<i># Ziel mit Tonspuren</i>-o ziel.mkv \<i># Optionaler Filmtitel</i>--title"Titel des Films"\<i># Nur Videospur (-A) aus temp. Ziel nehmen</i>-A ziel-nosound.mkv \<i># Keine Videospur (-D) und die Audiospuren 1 und 3 der Quelle...</i>-D-a1,3\<i># ...Sprachen und Standardspur in der Quelle...</i>--language1:eng --language3:ger --default-track 3\<i># Video und Tonspur entstammen der selben Quelle, sonst file</i>
--append-mode track \
quelle.vob
Vorsicht, die Angabe der Sprache und der Standardspur bezieht sich auf die Nummer in der Quelldatei. Dementsprecend beziehen sich solche Parameter immer auf die nächste angegebene Quelldatei.
Danach sollte man die korrekte Zuordnung und die Synchronisierung der Tonspuren prüfen.
This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.
Wichtiger Hinweis: Dieses "HowTo" ist in erster Linie als Erinnerung für mich selbst gedacht. Wenn ich jemand anderem damit ebenfalls helfen kann freue ich mich, aber aus zeitlichen Gründen kann ich im Moment nur sehr begrenzt Support geben.
Ich betreibe den yaVDR als Client/Server-Anwendung. Im Server befinden sich zwei DVB-S(2)-Karten, der Client im Wohnzimmer ist über das LAN angebunden.
Der Frontend des Client ist der ganz normale vdr-sxfe (libxineoutput), bei Bedarf kann XBMC über das Menü oder eine Taste gestartet werden. De Server selbst wird als Client nur selten benutzt, und wenn, dann meistens für Videos oder Aufnahmen. Aus diesem Grund kommt dort der XBMC mit PVR-Addon als Frontend zum Einsatz.
Damit der auf dem Server laufende VDR keine DVB-S-Karte für sich selbst belegt, schaltet das VDR-Plugin suspendoutput nach einer kurzen Wartezeit den VDR (als Client) ab:
Doch bei diesem Setup gibt es ein Problem, denn suspendoutput bewirkt, dass der automatische Shutdown (bzw. Standby) nach der "MinUserInactivity" des VDR bei Nichtverwendung ignoriert wird. Und selbst wenn dieser ausgelöst würde: Das laufende XBMC würde den Shutdown verhindern.
Gehen wir zuerst das einfachere Problem an. XBMC soll erst nach einem Tastendruck auf der Fernbedienung tatsächlich gestartet werden. Dies geht über das Templatesystem von yaVDR recht einfach:
$ cat> /etc/yavdr/templates_custom/etc/init/xbmc.conf/25_wait-for-remote <<EOL
xset dpms force off
(irw | read -r) || true
xset dpms force on
EOL
$ process-template /etc/init/xbmc.conf
Mit "xset" wird das Display ab- bzw. wieder eingeschaltet, und die Anweisung mit "irw | read -r" horcht auf die Fernbedienung und beendet sich nach der ersten Zeile (= dem ersten Tastendruck). Die Klammern und das "true" sind notwendig, damit ein Abbruch des "irw" durch ein "kill" nicht als Fehler interpretiert wird.
Dass der Shutdown überhaupt ausgelöst wird ist etwas schwieriger, wenn suspendoutput in Betrieb bleiben soll. Im Quelltext des Plugins gibt es sogar einen entsprechenden Codeschnipsel, der jedoch auskommentiert ist und so direkt erstmal nicht funktioniert.
Leider habe ich den Entwickler des Plugins per E-Mail nicht erreichen können, also habe ich mich selbst an die Arbeit gemacht und einen Patch geschrieben, der den Code aktiviert und einen entsprechenden Eintrag im Konfigurationsmenü ergänzt.
Mit diesen Tricks sollte sich der Server nun nach der eingestellten Wartezeit in den Standby-Modus begeben und rechtzeitig zu einer Aufnahme wieder aufwachen, natürlich vorausgesetzt, dass gerade keine andere Aufnahme läuft.
Damit der Client den Server wieder aufweckt, modifiziert man am besten die Datei /etc/network/interfaces:
# The primary network interface
auto eth0
iface eth0 inet dhcp
post-up /usr/sbin/etherwake AA:BB:CC:DD:EE:FF
AA:BB:CC:DD:EE:FF muss durch die MAC-Adresse ("Hardware address") des Servers ersetzt werden, die man mit "ifconfig" ermitteln kann. Außerdem muss das Paket "etherwake" installiert sein. Andere Wake-On-Lan-Pakete sind natürlich auch geeignet, nur muss dann der Befehl hintre "post-up" entsprechend angepasst werden.
Ein kleines Problem gibt es immer noch: Nach einem Standby wird das Interface zwangsweise neu gestartet. Um das zu erzwingen hilft noch ein kleines Script:
$ cat> /etc/pm/sleep.d/40_etherwake << EOL
#!/bin/shcase$1in
hibernate|suspend)#Befehl vor Wechsel in Suspend;;
thaw|resume)#Befehl nach aufwachen aus Suspend
/etc/init.d/networking restart
;;esac
Nun sollte der Client den Server beim Einschalten automatisch aufwecken.
Den Shutdown testen kann man übrigens am besten, in dem man eine "screen"-Session öffnet, den Shutdown-Befehl mit einer Verzögerung von 10 Sekunden auslöst, die Screen-Session mit STRG-A, STRG-D detached und sich auslogt:
Use this howto on your own risk! I do not guarantee that it's free of errors! If you're not absolutly sure about something written here, or you don't know how to make backups of your router config and how to savely restore them: don't follow these instructions!
First of all, since there is no package for ferm available, we have to install it manually. Luckily, it's only a simple Perl script, so just fetch the ferm script file, copy it to /usr/sbin/ferm and make it executable.
Next, the required perl packages have to be installed with opkg. I've started with a basic set of Perl modules and installed the missing ones one after one, until a call to ferm didn't throw an error. These are the packages I've finally installed:
Next, place you're ferm ruleset at /etc/firewall.ferm. This is my, for the moment, but of course you can extend it as you want. This ruleset allows SSH from WAN port, so ensure that password authentication is disabled! Otherwise, remove the rule at line 42:
Now write an "include" script for OpenWRT's firewall so that it get's executed when the firewall is started or reloaded:
/etc/firewall.ferm.sh:
/usr/sbin/ferm /etc/firewall.ferm
And append the following block to /etc/config/firewall:
config include
option path '/etc/firewall.ferm.sh'
option reload '1'
And remove the include config for /etc/firewall.user. You could disable (option enabled '0') every config rule as they would be replaced by ferm nevertheless, but don't disable the zone configs! They are still required so that fw3 reloads the ruleset when the interfaces changes.
Finally, if you want to be able to edit your ferm rules via the LuCI web frontend, symlink /etc/firewall.ferm to /etc/firewall.user.
Remember: If you add new interface to your filewall zones this won't have any effect! You have to manually add them to the ferm config. I've added some variables at the top of the config that makes this easier.
$ mkdirtest
$ cdtest
$ touch'Little boby tab$(ls)'
$ ls-l
-rw-rw-r-- 1 roland roland 0 Mär 3015:18 Little boby tab$(ls)
$ eval$(echorm-v"$(echo Little*)")
rm: cannot remove 'Little': No such file or directory
rm: cannot remove 'boby': No such file or directory
rm: cannot remove 'tabLittle': No such file or directory
rm: cannot remove 'boby': No such file or directory
rm: cannot remove 'tab$(ls)': No such file or directory
$ printf %q Little*
Little\ boby\ tab\$\(ls\)
$ eval$(echorm-v"$(printf %q Little*)")
removed 'Little boby tab$(ls)'
This article might not longer be relevant as a new opensource client called "openfortivpn" exists that utilized the SSLVPN feature of Fortigate instead of IPSec. See my new article Connecto to Fortigate VPN with OpenfortiVPN.
This article might be relevant to you if you have problems connecting to a FortiGate IPSec VPN with Linux (vpnc). For example, when using NetworkManager, you might see something like this in syslog:
VPN connection 'FortiGate VPN' (IP4 Config Get) reply received from old-style plugin.
VPN Gateway: 1.2.3.4
Tunnel Device: tun0
IPv4 configuration:
Internal Address: 172.20.1.1
Internal Prefix: 32
Internal Point-to-Point Address: 172.20.1.1
Maximum Segment Size (MSS): 0
Forbid Default Route: no
Internal DNS: 172.1.1.1
No IPv6 configuration
VPN connection 'FortiGate VPN' (IP Config Get) complete.
(11) failed to find interface name for index
Policy set 'FortiGate VPN' (tun0) as default for IPv4 routing and DNS.
Writing DNS information to /sbin/resolvconf
SCPlugin-Ifupdown: devices removed (path: /sys/devices/virtual/net/tun0, iface: tun0)
VPN plugin state changed: started (4)
VPN plugin state changed: stopped (6) VPN plugin state change reason: 0
Or, when you've using the command line interface:
vpnc version 0.5.3r512
IKE SA selected psk+xauth-3des-sha1
NAT status: this end behind NAT? YES -- remote end behind NAT? no
got address 172.20.1.1
/etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf is not a symbolic link to /run/resolvconf/resolv.conf
IPSEC SA selected 3des-sha1
**vpnc: vpnc.c:1194: lifetime_ike_process: Assertion `a->next->type == IKE_ATTRIB_LIFE_DURATION' failed.**
So, after playing around with the VPN settings in the FortiGate UI I finally found that the problem is the a->next->type == IKE_ATTRIB_LIFE_DURATION part. It seems that FortiGate is using a wrong value for this field, or at least one that isn't accepted by vpnc.
Since it seems that there is not way to change this behaviour using configuration the only option you have is to patch vpnc. Fortunately, this is very easy, at least on Debian-Based systems (like Ubuntu or Mint). So, here's the way you go:
That is it, now your VPN connection should work - or at least don't die on this error.
You have to repeat this whenever there is a new version of this package. But since development stopped in 2008 I don't expect many updates to it. Alternativly, prevent any upgrades of the package with sudo apt-mark hold vpnc.
TIL Ein Upgrade von Debian Squeeze (6) auf Jessie (8) ohne Umweg über Wheezy (7) ist möglich, aber mit Schmerzen verbunden.
TL;DR: Eine Neuinstallation geht in der Regel einfacher. Falls man es trotzdem probieren will, dann sollte man an ein Backup denken und einigermaßen wissen, wie man mit Dependency-Problemen bei der Paketinstallation umzugehen hat.
Ein paar mal bricht die Installation ab, dann kommt man mit dpkg --configure -a und apt-get install -f weiter und kann anschließend mit apt-get upgrade bzw. apt-get dist-upgrade fortfahren. Das Paket nagios-plugins-contrib musste ich vollständig entfernen, um ein Dependency-Problem zu lösen - am Ende kann man es jedoch wieder neu installieren.
Wenn man noch auf dem Originalkernel arbeitet und nicht auf einem zurückportierten, dann will udev außerdem irgendwann zu seinem Glück gezwungen werden. Es warnt vehement davor, weil das System dadurch nicht mehr hochfahren wird; zumindest nicht, solange man den Kernel noch nicht aktualisiert hat:
$ touch /etc/udev/kernel-upgrade
In dem Fall am Ende unbedingt kontrollieren, ob auch der 3.16er-Kernel installiert wurde bzw. ihn nachinstallieren:
I've got a lot of feedback for my old article How to connect to a FortiGate IPSec-VPN using Linux. However, the connection with vpnc was never stable for me, it always segfaults after a while and I had to restart it.
So I did some more research and found a relative new project called openfortivpn by Adrien Vergé, which uses the SSL VPN tunnel feature of Fortigate instead of IPSec. Additionally, NetworkManager support already exists thanks to the Gnome people.
Today I want to describe a more generic way to do the same. This should not only work for SSH but for every services that communicates via TCP. Everything you need is systemd, netcat (nc) and a wake-on-lan tool like etherwake.
For the impatient
The first step is to create a systemd socket that listens on a local port for new connections. Since SSH normally uses port 22 I'm going to bind this on localhost:2222. Of course you can also listen on a public interface if you are building a public gateway to a server within the local net.
The second file we have to create is a service file that will be invoked by the socket. The basename must be identical to that of the socket, but followed by an @ sign and the .service suffix.
/etc/systemd/system/<b>forward-ssh@.service:
[Unit]Description=Forwards request to another host. Sends WOL if not reachable.Wants=network-online.targetAfter=network.target network-online.target[Service]ExecStartPre=/bin/sh -c 'for n in `seq 1 6`; do nc -z 192.168.2.2 22 && break || (wakeonlan D8:F4:62:67:86:3A >&2 && sleep 10); done'ExecStart=/bin/nc -q0 192.168.2.2 22StandardInput=socketStandardOutput=socket
Replace the the IP "192.168.2.2", Port "22" and MAC address "D8:F4:62:67:86:3A" with those of the server that you want to connect to.
Next, reload and enable the daemon (Note: You have to enable the socket, not the service):
The socket file tells systemd to listen in Port 2222 for incoming connections. Whenever (this is what "Accept=true" means) a new connection to this port is established the service is invoked.
The service file first launches the command in ExecStartPre. You can ignore the "/bin/sh -c '...'" wrapper for the moment, it is only required because systemd does not allow shell operators within the command:
nc -z 192.168.2.2 22 checks if the remote port is reachable. This is more reliable than "ping" (as I used in my old article) since ICMP might be blocked by a firewall. If the port is reachable ExecStartPre returns immediately. If not, it sends a Wake-on-Lan package to the server's MAC address and waits 10 seconds for it to wake up. After that the check is done again, up to 5 times (seq 1 6), so the server has to wake up and boot within 60 seconds.
When ExecStartPre returns than ExecStart is invoked:
This opens a TCP connection to 192.168.2.2 on port 22, and pipes the incoming socket's connection to STDIN/STDOUT. When the connection to localhost:2222 finally is closed the nc process will end too, so the remote server can go to sleep again.
And what is this good for?
My fileserver goes to sleep after an idle time of 15 minutes. I have a Raspberry Pi behind my router that is running Nextcloud. Within Nextcloud I've defined a remote connection to the fileserver. This trick allows me to wake up the fileserver only if Nextcloud demands access to the fileserver.
Since Nextcloud only waits up to 10 seconds for an SFTP connection you might also want to apply this small patch to the the Nextcloud source that increases the timeout to 60 seconds:
$ patch -p1 <<EOF
--- a/apps/files_external/lib/Lib/Storage/SFTP.php Tue Feb 07 21:48:03 2017 +0100+++ b/apps/files_external/lib/Lib/Storage/SFTP.php Tue Feb 07 21:49:28 2017 +0100@@ -124,7 +124,7 @@ }
$hostKeys = $this->readHostKeys();
- $this->client = new \phpseclib\Net\SFTP($this->host, $this->port);
+ $this->client = new \phpseclib\Net\SFTP($this->host, $this->port, 60);
// The SSH Host Key MUST be verified before login().
$currentHostKey = $this->client->getServerPublicHostKey();
EOF
But why not running the fileserver directly on the Pi?
RAID 5
Gigabit-Ethernet
BananaPi sucks (sorry, but that's true. I've tried it. Terrible software support. Really.)
And from time to time I need a potent system to do thinks like video transcoding.