Steam auf 64-Bit Funtoo
Sunday, 5. June 2016
Steam hat jetzt eine ganze Weile problemlos funktioniert. Aber kürzlich hatte sich irgendetwas geändert und es ging nicht mehr. Ich werde hier dokumentieren, wie man Steam installieren und sein System vorbereiten muss.
Multilib
Steam braucht die 32-Bit Versionen verschiedener Libraries. Um das zu erschlagen aktiviert man am einfachsten Multilib für das gesamte System. In die /etc/portage/package.use kommt ein:
*/* abi_x86_32
Danach das System aktualisieren:
emerge --sync layman -S emerge --ask --update --deep --with-bdeps=y --newuse @world
Steam aus Overlay installieren
Steam selbst ist in verschiedenen Overlays. Wir nutzen hier das von anyc:
layman -a steam-overlay emerge steam-meta
Danach einmal steam
starten und nach seiner Installation schließen.
Veraltete Libs löschen
Um keine Probleme mit den veralteten Libs zu bekommen, die Steam mitliefert, folgen wir diesem Tipp und löschen sie:
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+srt4_amd64 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+srt4_amd64.md5 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/installed/libstdc++6_4.8.1-2ubuntu1~12.04+steamrt2+srt1_amd64 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/installed/libstdc++6_4.8.1-2ubuntu1~12.04+steamrt2+srt1_amd64.md5 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++_pic.a && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++_pic.map && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/share/doc/libstdc++6 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/share/doc/libstdc++6-4.6-pic && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+srt4_i386 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+srt4_i386.md5 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/installed/libstdc++6_4.8.1-2ubuntu1~12.04+steamrt2+srt1_i386 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/installed/libstdc++6_4.8.1-2ubuntu1~12.04+steamrt2+srt1_i386.md5 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/gcc/i686-linux-gnu/4.6/libstdc++_pic.a && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/gcc/i686-linux-gnu/4.6/libstdc++_pic.map && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6.0.18 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/share/doc/libstdc++6 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/share/doc/libstdc++6-4.6-pic && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime.old/i386/usr/share/doc/libstdc++6 rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgcc_s.so.1 && rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1
LIBGL_DRIVERS_PATH setzen
Dies ist der Knackpunkt. Auf einem 64-Bit-System würde Steam jetzt versuchen, die 64-Bit-Treiber zu laden und daran scheitern. Also brauchen wir ein Startskript, das Steam zum richtigen Treiber führt:
#!/bin/sh killall compton LIBGL_DRIVERS_PATH="/usr/lib32/dri" LIBGL_DEBUG="verbose" /usr/bin/steam compton --vsync opengl --backend glx &
Allerdings würden jetzt ebenfalls die Spiele in Steam diese 32-Bit-Treiber laden, und daran scheitern wenn sie selbst 64-Bit-Programme sind. Genau das war, was anfangs nicht passierte – eventuell wurde CS:GO aktualisiert? Auf jeden Fall muss deshalb der Treiberpfad wieder umgebogen werden. Dafür in der Library auf das Spiel rechtsklicken, Properties auswählen und bei Set Launch Options dies eintragen:
LIBGL_DRIVERS_PATH=/usr/lib/dri %command%
Steam sollte jetzt einwandfrei funktionieren.
Linuxundich abgemahnt
Friday, 3. June 2016
Verachtenswert: Dennis Skley und sein Abmahnanwalt Lutz Schroeder haben Chris eine Abmahnung über 1600€ für durch einen technischen Fehler nicht mehr korrekt den Autor verlinkende/nennende Bilder geschickt, die Chris auf seinem Blog verwendet hat. Chris, laut seinem Eintrag, wird oder hat sich schon einen Anwalt genommen und wird natürlich nicht die vollen Kosten zahlen. Helft ihm doch bitte trotzdem die Kosten zu tragen. Chris ist ein langjähriger Supporter von Linux und freier Software, war zu meiner Zeit der Supporter im ubuntuusers.de-Forum, und ist seitdem auch als Autor für die gute Sache aktiv.
Das eigentlich verachtenswerte ist nicht die Abmahnung, sondern die Abmahnung ohne vorherige Kontaktaufnahme. Dieses System ist eine Spezialität Deutschlands, in normalen Rechtsstaaten sind solche Unterlassungsaufforderungen erstmal kostenlos. Mehrfach schon wurde vom Gesetzgeber versprochen diese kostenpflichtigen Abmahnungen abzuschaffen, passiert ist jedoch nie etwas. Was wahrscheinlich daran liegt, dass Anwälte mit dieser Räuberei sehr viel Geld verdienen und eine starke Lobby haben – noch zudem sind viele Abgeordnete vorher Rechtsanwälte gewesen.
Arcan, der aus dem Nichts kommende Displayserver
Friday, 3. June 2016
Arcan bezeichnet sich selbst als Multimedia Framework, ist aber gleichzeitig ein Displayserver wie X oder Wayland. Doch fangen wir mit Durden an.
Durden ist ein Fenstermanager, mehr noch, eine Desktopumgebung, und basiert auf Arcan. Durden implementiert sowohl tiling, tabbed als auch freies (floating) Fenstermanagement. Über ein globales Menü können alle denkbaren Einstellungen angepasst werden, Änderungen greifen sofort. Das ist mächtig, z.B. wenn wie im Video zu sehen die Fensterrahmen verändert werden:
Die Video sind auch sonst eine gute Einführung, und sie geben einen Eindruck in was Arcan ist.
Arcan ist also ein alternativer Displayserver. Er kann unter X gestartet werden, aber auch anstatt X. Sein Konzept erklärt der Autor so:
Look for a useful distinction between the typically distinct display server, game engine, streaming multimedia processing / low- mid- level graphics
In anderen Worten: Es geht darum, neu zu definieren was ein Displayserver können soll. Und ich meine man sieht das an Durden, wie dort Grafiken eingesetzt werden können. Der Stand des Projekts wird in mehreren Präsentationen gezeigt, hier die für Arcan:
Interessant ist der Zeitplan: Arcan existiert schon eine ganze Weile, wird von seinem Autor stetig weiterentwickelt. Es gibt einen großen Knackpunkt, und das ist die Unterstützung von X-Anwendungen. Firefox z.B. kann unter Arcan derzeit nicht direkt starten, schon weil GTK nicht funktioniert. Das soll sich mit der Wayland-Integration nächstes Jahr ändern. Bisher gibt es eine Lösung mit einem QEMU-Fork, die letoram nutzt, aber die war für mich nicht ausreichend dokumentiert.
Für mich ist das Projekt ziemlich erstaunlich. Es gehört was dazu, sich hinzustellen und zu entscheiden die Grundlagen des Desktops umzukrempeln. Es gehört noch mehr dazu das über Jahre hinweg weiterzuentwickeln. Arcan als Alternative oder Ergänzung zu Wayland zu haben könnte für den Linuxdesktop toll sein, auch wenn ich Arcans Interna nicht wirklich beurteilen kann.
Die Installation war einfach. Wer einen Blick in eine alternative Linuxwelt werfen will sollte Durden und Arcan antesten.
Pixel Piracy
Sunday, 29. May 2016
Pixel Piracy ist ein 2D-Piratenspiel, beeinflusst von den 2D-Indiespielen die nach Minecraft erschienen sind, wie Terraria. Man startet mit einem Piraten, einem Floß und etwas Kleingeld. Die Welt ist unterteilt in kleine Einzelabschnitte, entweder eine Insel, eine Stadt oder ein feindliches Schiff. In Städten können Piraten angeheuert und die verschiedenen Gegenstände gekauft werden, unter anderem Fähigkeitsbücher, Essen oder neue Blöcke für das eigene Schiff.
Ziel des Spiels ist es zu einem mächtigen Piraten zu werden und vier andere epische Piraten zu besiegen. Zumindest ist das die Vorgabe. Im Grunde kann man machen was man will und sich dabei aufbauen wie man will. Ich habe zuerst ein paar Kopfgelder eingesammelt, dann gegen Piraten gekämpft, schließlich gesehen dass es weiter weg Vikinger (Piraten mit leicht anderen Schiffen) zu besiegen gibt und dies getan. Je weiter weg vom Zentrum der Karte man sich befindet, desto höher das Level der Gegner.
Ich war erst sehr angetan von dem Spiel. Man muss sich erst etwas reinknien, denn das Interface ist suboptimal und es gibt einiges zu beachten, hatte dann aber Spaß daran meine Piraten auszurüsten und hochzuleveln, ihnen Rollen zu geben und auch an den Kämpfen und dem Ausbauen meines Schiffs.
Später wird es sicher etwas eintönig werden, aber da bin ich noch nicht. Was mich bisher von einer positiven Wertung abhält sind die technischen Probleme. Anfangs passierte das nicht, aber inzwischen bleiben regelmäßig Piraten auf Inseln stecken. Sie können sich dann schlicht nicht mehr bewegen, auch nicht zum Schiff zurückkehren. Manchmal kann man sie befreien, indem man ihren Charakterbildschirm manipuliert, aber dann fallen sie später vom Rand der Insel ins Wasser – was sie tötet, wenn sie nicht schwimmen können. Dazu kommt, dass das Spiel nicht besonders gut läuft. Bei einem 2D-Spiel ist das inakzeptabel, das muss dauerhaft und unabhängig von der Auflösung flüssig laufen.
Ich habe es mit einem Humble Bundle gekauft, auf Steam kostet es 10€. Sollten die Bugs gefixt werden ist es einen Blick wert.
Designer-Geschwätz am Beispiel des Ubuntu-Wallpapers
Thursday, 28. April 2016
Aus dem Blogpost zum Wallpaper von Ubuntu 16.04:
Our Suru language is influenced by the minimalist nature of Japanese culture. We have taken elements of their Zen culture that give us a precise yet simplistic rhythm and used it in our designs. Working with paper metaphors we have drawn inspiration from the art of origami that provides us with a solid and tangible foundation to work from. Paper is also transferable, meaning it can be used in all areas of our brand in two and three dimensional forms.
Und was ist aus diesem hochintellektuellen Designansatz am Ende geworden? Das:
Lila-braune geometrische Formen, hübsch präsentiert mit Kompressionsartefakten.
Seit dem Lila-Redesign hat Ubuntu kein schönes oder auch nur interessantes Hintergrundbild mehr hinbekommen. Es wurde ein bisschen besser, es sieht nicht mehr wie Hingekotztes aus (keine Übertreibung, das erste Hintergrundbild nach neuer visueller Richtlinie weckte bei einigen diese Assoziation), aber es ist immer absolut langweilig. Schön auch im Blogpost an den Hintergrundbildern der letzten Jahre zu sehen; es ist einfach immer eine leicht andere Variation von lila-braun plus geometrischen Formen. Das kann man hochstilisieren zum Feng-Shui-Zen der japanischen Hochkultur, dafür muss man aber schon Kunststudent und ziemlich bekifft sein. Für alle anderen ist klar: Da hat ein Designteam weder Mut noch Ideen noch Talent.
Shadowrun Returns: Dragonfall
Monday, 18. April 2016
Dragonfall ist eine alleine lauffähige Erweiterung für das erste Shadowrun. Es ist das bessere Spiel.
Diesmal spielt die Geschichte in Berlin. Der neuerstellte Charakter ist Teil eines Runs der schiefgeht. Jemand stirbt, danach wird das Team gejagt und versucht selbst, Informationen über das große Böse zusammenzubekommen. Statt einer vollständig linearen Geschichte zu folgen ist der Spieler freier, er kann (ein bisschen) Missionen auswählen. Dies passiert im zentralen Gebiet, einem Berliner Kiez, in dem zwischen den Missionen auch Gespräche geführt und Händler besucht werden können.
Der Kern des Spiels ist noch der Gleiche. Gleiche Engine, gleiche Fähigkeiten, gleiches Kampfsystem. Aber statt den Söldnern gibt es nun permanente Teammitglieder mit Hintergrundgeschichte, Charakter und Fähigkeitsauswahl. Das Spiel ist mit ~23h Spielzeit wesentlich länger. Und es gibt viel mehr Möglichkeiten die eigenen Fähigkeiten einzusetzen, z.B. mit genügend Stärke Wände einzureißen oder mit Charisma eine Wache von der Ungefährlichkeit der Situation zu überzeugen oder die Aura eines Geistes zu lesen. Dazu kommen viel mehr Wahlmöglichkeiten in Gesprächen, und Möglichkeiten den Ausgang von Missionen zu bestimmen.
Obwohl es durch die längere und weniger straffe Geschichte auch etwas gegenüber dem Vorgänger verliert: Insgesamt kommt Dragonfall näher an die großen Rollenspiele. Es erreicht weder Fallout 2 noch Baldur's Gate 2, aber es ist durchaus ein gutes Rollenspiel, und ich habe es gerne gespielt.
Shadowrun Returns
Monday, 11. April 2016
Shadowrun Returns hat mir gut gefallen. Es besteht hauptsächlich aus Rundenkämpfen, aber hat für mich noch genug Rollenspielelemente. Den eigenen Charakter auszubauen (ich wählte eine pistolentragende Elfenschamanin) ist motivierend und die Kämpfe schön taktisch. Dabei erinnert es an Fallout Tactics, nur mit mehr Rollenspiel nebenher.
Das mit Fantasy durchmischte Cyberpunkszenario fand ich aber auch cool, das half. Und die Story ist für das Genre genau passend überdreht und klischeehaft. Snow Crash mit Magie.
In zwei Szenen hatte ich FPS-Einbrüche. Ansonsten lief es flüssig, und die gesamte Spielzeit über war es stabil. Ich sah keinen einzigen Absturz, nichtmal einen Bug; es ist eine sehr gute Linuxversion.
Tipp: Regle Fancontrol richtig runter
Tuesday, 29. March 2016
Ein wichtiger Schritt für einen leiseren PC ist das Undervolten des Prozessors. Ungenutzte Festplatten werden mit hdparm -S
schlafen gelegt. Das Gehäuse ist gedämmt und die Lüfter generell leise. Aber der wichtigste Schritt ist das richtige Regeln der Lüftergeschwindigkeiten, unter Linux mit fancontrol.
Selbst ordentliche Lüfter sind laut wenn sie aufdrehen. Aber sie kühlen auch mit wenigen Umdrehungen noch gut. Nach meinem Umzug zu Funtoo ist mir klargeworden, dass ich sie vorher nicht weit genug heruntergeregelt hatte. Diesmal war ich aggressiver: Höhere Minimaltemperaturen und die PWM-Regelung so eingestellt, dass die Lüfter gerade noch laufen. So langsam sind sie fast unhörbar, bewegen aber immer noch etwas Luft. Der Effekt ist, dass der PC im Leerlauf fast lautlos ist, und unter Vollast (bei der Kompilierung von Programmen z.B.) werden die Lüfter nur etwas hörbarer.
Meine /etc/fancontrol:
INTERVAL=10 DEVPATH=hwmon2=devices/platform/it87.552 DEVNAME=hwmon2=it8720 FCTEMPS=hwmon2/device/pwm1=hwmon2/device/temp2_input hwmon2/device/pwm2=hwmon0/temp1_input FCFANS=hwmon2/device/pwm1=hwmon2/device/fan1_input hwmon2/device/pwm2=hwmon2/device/fan2_input MINTEMP=hwmon2/device/pwm1=40 hwmon2/device/pwm2=50 MAXTEMP=hwmon2/device/pwm1=75 hwmon2/device/pwm2=75 MINSTART=hwmon2/device/pwm1=110 hwmon2/device/pwm2=60 MINSTOP=hwmon2/device/pwm1=80 hwmon2/device/pwm2=55 MINPWM=hwmon2/device/pwm1=80 hwmon2/device/pwm2=55
Die erste Spalte steuert den Prozessor- und den hinteren Gehäuselüfter, beide sind über einen PWM-Splitter verbunden und reagieren auf die Prozessorgeschwindigkeit. Die zweite Spalte steuert den Lüfter der Grafikkarte und den vorderen Gehäuselüfter, hier wird auf die Grafikkartentemperatur reagiert.
Im Leerlauf hat der Prozessor 41°C, unter Vollast 55°C.
Simdock 1.5: Vektorgrafiken
Thursday, 24. March 2016
Gestern habe ich Version 1.5 von simdock veröffentlicht.
Die große Neuerung ist die Unterstützung von Vektorgrafiken. Im Bildschirmfoto hierdrüber sind Icons aus dem Iconset Numix-Circle zu sehen, das zumindest für mein System ausschließlich mit SVG-Dateien ausgeliefert wird. Darüber stolperte ich in letzter Zeit mehrfach. Simdock aber konnte nur klassische Bildformate einbinden, für Icons waren das immer PNGs. Jetzt funktionieren auch SVGs. Leider kann wxWidgets die noch nicht nativ zeichnen. Die Vektorgrafiken werden daher intern von wxsvg zu wxBitmaps umgewandelt.
Starter bleiben nun bei den ihnen zugewiesenen Icons. Simdock hat ja das Feature, automatisch das Icon im Dock zu wechseln wenn das gerade fokussierte Fenster einer Anwendung ein anderes Icon hat. Das ist praktisch, aber da diese Anwendungsicons nicht immer hübsch sind, und nicht in guter Qualität zurückgegeben werden, sieht das nicht gut aus. Für Starter ist das daher nun deaktiviert, Tasks (Icons für Anwendungen, die keine Starter sind) wechseln aber weiterhin. Sie brauchen das, damit z.B. das kaputte Icon des Splashfensters von Eclipse nicht dauerhaft als Icon gewählt wird.
Ansonsten wurde ein Bug gefixt, sodass Klicks mit der mittleren Maustaste wieder neue Instanzen einer Anwendung starten. Das wurde auch durch einen neuen Toleranzbereich erleichtert, in dem Bewegen der Maus bei gedrückter mittlerer Maustaste noch nicht als Verschieben des Docks gewertet wird.
Technisch schon in einem Zwischenrelease enthalten, aber hier noch nicht erwähnt: Die unterstütze wxWidgets-Version ist nun 3.0. Das erleichtert die Nutzung unter aktuellen Distros wie Funtoo, aber sollte auch unter Ubuntu keine Problem bereiten. Die Builddateien wurden entsprechend angepasst.
Ich bin bisher sehr zufrieden mit diesem Release. Es lief bei mir bisher absolut stabil, und mit den Änderungen sieht simdock gleich besser aus. Insgesamt freut es mich, wie sich das Dock derzeit anfühlt, und auch mit dem Code komme ich inzwischen besser zurecht. Die Änderungen dieses Releases waren angenehm einfach umzusetzen.
Für Ubuntu gibt es ein PPA, für Gentoo und Funtoo ein overlay. Natürlich kann simdock auch manuell kompiliert werden.
Overlays sind Klasse!
Monday, 21. March 2016
Overlays sind das Pendant von Gentoo zu PPAs. Es ist eine einfache Lösung und gefällt mir ziemlich gut.
Wobei, um fair zu blieben, für mich war mein Overlay besonders einfach einzurichten weil ich damals für das PPA ordentliche Makefiles geschrieben hatte. Simdock hätte sonst immer noch den automake-Murks, und izulu hätte gar kein Makefile. Mit den einfachen Makefiles beider Programme ist ein Ebuild schnell geschrieben und damit das Overlay fast schon fertig.
Ein Overlay ist eine Sammlung von Ebuilds. Ebuilds sind soetwas wie .deb-Dateien, nur anders: Eine Textdatei, die den Quellcode verlinkt, die Abhängigkeiten auflistet und beschreibt, wie das Programm kompiliert werden kann. Das Ebuild für simdock sieht z.B. so aus:
# Copyright 1999-2016 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=6 DESCRIPTION="Small dock with pseudo-transparency" HOMEPAGE="https://github.com/onli/simdock" SRC_URI="https://github.com/onli/simdock/archive/${PV}.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64" IUSE="" RDEPEND="gnome-base/gconf x11-libs/libwnck:1 x11-libs/wxGTK x11-libs/libxcb x11-libs/xcb-util-wm" DEPEND="${RDEPEND} x11-proto/xcb-proto dev-util/pkgconf" # simdock uses a simple makefile without the configure step src_configure() { : }
Die Kompilierung muss gar nicht weiter beschrieben werden, make
und make install
werden automatisch aufgerufen.
Ein Overlay ist dann einfach ein Ordner im Dateisystem, in dem zusätzlich ein paar Metabeschreibungen liegen, insbesondere Manifest-Dateien mit den Prüfsummen der Quellcodearchive. Weil ich das heraussuchen musste: Diese Manifestdatei erstellt ein
ebuild *.ebuild manifest
Den Ordner könnte man dann mit PORTDIR_OVERLAY
in der make.conf aktivieren.
Dieser Ordner im Dateisystem kann aber auch ein Git-Repository sein. Dann fehlt nur noch eine weitere Metabschreibungsdatei, damit andere Nutzer mit layman das Overlay ins eigene System importieren können. Meines importiert man so:
layman -o https://raw.github.com/onli/overlay/master/repositories.xml -f -a onli
In diesem liegen Ebuilds für izulu und simdock.
Es ist fantastisch wie einfach das ist. Ich schlage mich seit Jahren mit .debs und PPAs herum und hatte dank letzteren und Launchpads Gitimport inzwischen ordentliche .deb-Pakete für Ubuntu, kann das also durchaus bewerten. Ebuild und Overlays sind zehnmal so einfach. Leichter zu verstehen, leichter zu schreiben und leichter einzurichten.
Von Ubuntu zu Funtoo
Monday, 14. March 2016
Nach über zehn Jahren mit Ubuntu habe ich übers Wochenende meinen Haupt-PC auf Funtoo umgestellt. Laut Distrowatch ist Funtoo eine der vielen unbekannten Distributionen. Ich stolperte im Zuge der systemd-Diskussion drüber und finde die Grundidee sympathisch, eine bestehende gute Distribution (Gentoo) zu nehmen und im Kern zu verbessern.
Doch warum überhaupt wechseln, und warum zu Funtoo? Ich hatte mehrere Gründe:
- Ich musste sowieso neu installieren. Mein Ubuntu lief noch mit dem 32bit-Kernel, für den die kommende wohl die letzte LTS-Version gewesen wäre. Ich wollte aber gerne etwas früher wechseln als unbedingt nötig, um nicht dann dazu gezwungen zu werden, wenn ich möglicherweise keine Zeit dafür habe.
- Ich nutzte Ubuntu nicht so wie üblich. Und an manchen Ecken merkt man, dass Ubuntu nicht für Fenstermanager und Zusatzprogrammen statt großen Desktopumgebung gemacht ist. Auch wenn ich mich komfortabel eingerichtet hatte: Von Standardkonfiguration der Pakete bis zur Dokumentation der Konfigdateien war das nicht ideal.
- Um systemd zu vermeiden. Egal ob die Diskussion aufgebauscht ist oder nicht: Mir gefällt nicht, wie die Entscheidung gefällt wurde, mir gefällt nicht, was entschieden wurde, und mir gefällt nicht, dass ich als Nutzer keine Wahl haben soll. Ich werde nicht nur wegen systemd unter Arch meinen Pogo zu einer anderen Distribution umziehen, solange Arch für ihn die beste Option ist. Aber solange ich für mein Hauptsystem die Wahl habe, möchte ich die auch nutzen. Funtoo arbeitet aktiv daran, diese Wahlmöglichkeit zu erhalten, und hat die notwendigen Alternativen parat.
- Mit aktueller Software statt von Distributionen gepflegten älteren Versionen habe ich in letzter Zeit gute Erfahrung gesammelt. X und seine Treiber bekamen durch xorg-edgers einen Riesenboost, sodass der freie Treiber AAA-Spiele laufen lassen konnte. Compton, trojita, auch meine eigene Software simdock und izulu: All das kommt durch PPAs direkt von upstream. Selbst Firefox muss immer die neueste Version sein, wobei die von Ubuntu geliefert wird. Ruby wird über rvm stetig aktualisiert. Ich glaube, dank Github und der Professionalisierung der Treiberseite durch Steam ist die Zeit dafür reif.
Installation
Funtoo hat keinen regulären Installer. Die Installation läuft der Anleitung folgend manuell im Terminal einer Live-CD ab. Der Grundablauf ist klar: Festplatte formatieren (wofür ich natürlich gparted statt parted wählte), Funtoo herunterladen, das Archiv entpacken, chrooten, das System aktualisieren und schließlich den Bootloader installieren. Da das Archiv einen Kernel enthält geht das alles relativ schnell.
Ich lief in kleinere Probleme, weshalb ich das zweimal machen musste. Zuerst war die Partitionstabelle meiner SSD keine klassische mit MBR, weshalb ich den UEFI-Bootloader hätte wählen müssen, wofür ich die Platte im vorherigen Schritt aber nicht formatiert hatte. Also nochmal zurück zum Anfang. Da war mir das zweite Problem schon aufgefallen: Um wie gewünscht f2fs zu verwenden hätte ich den Kernel neu kompilieren müssen. Soviel Zeit wollte ich aber nicht in ein System stecken, von dem ich ja nichtmal wusste ob es auf meine Hardware läuft. Daher läuft hier jetzt überall ext4.
Konfiguration
Kern der Distribution ist das mit Gentoo geteilte Portage-System. Mit seinem Client emerge kompiliert man damit Programme in einer aktuellen Version passend zum eigenen System. Die Konfiguration läuft dabei in Funtoo über die /etc/make.conf und deren USE-flags, wobei da ein Profilsystem drübergestülpt ist.
Das Profilsystem ist fünfteilig: Die Architektur arch (bei mir: x86-64bit), per build die Aktualität der Pakete (current), die Prozessorarchitektur subarch (amd64-k10) und die Vorauswahl der Pakete durch das flavor (core), ergänzt durch eine Mehrzahl von möglichen mix-ins (z.B. X, es könnte aber auch gnome oder kde sein). Das Profilsystem ersetzt also Metapakete, nur anpassbar und samt Architekturauswahl.
Die make.conf wird dadurch enlastet aber nicht unnötig. In ihr kann man immer noch Optimierungen angeben, wie die Prozessoroptimierungen oder gewünschten Voreinstellungen für die Kompilierung (z.B. -j 3
um 3 Threads gleichzeitig zu nutzen). Mit den oben erwähnten USE-flags lässt sich da System weiter konfigurieren, z.B. um mit vaapi eine beschleunigte Videodecodierungsapi für AMD-Karten zu aktivieren. Am klarsten wird es wohl durch ein Beispiel:
MAKEOPTS="-j3" CFLAGS="-march=amdfam10 -O2 -pipe" CXXFLAGS="-march=amdfam10 -O2 -pipe" FEATURES="parallel-fetch collision-protect" VIDEO_CARDS="radeon radeonsi" INPUT_DEVICED="evdev" CPU_FLAGS_X86="mmx sse sse2 sse4a 3dnow 3dnowext popcnt mmxext" ACCEPT_LICENSE="*" EMERGE_DEFAULT_OPTS="--jobs 4 --load-average 2" PORTAGE_TMPDIR="/tmp" LINGUAS="en" CORE="bzip2 lzma symlink X zip zlib" SYSTEM="ipv6 lm_sensors dunstify" AUDIO="alsa faac mp3 lame vorbis" VIDEO="glamor gallium dri3 dri xa xvmc vaapi dvpau gbm egl gles2 llvm opengl" REMOVED="-dvd -cups -print -samba -dbus -systemd -ldap" USE="${CPU_FLAGS_X86} ${INPUT_DEVICES} ${VIDEO_CARDS} ${CORE} ${SYSTEM} ${VIDEO} ${REMOVED}"
Die Dokumentation der make.conf mit der Liste der globalen USE-Flags war dabei unabdingbar, um mit der Konfiguration zurechtzukommen. Wobei meine sicher noch nicht final ist.
Mit zram eine Ramdisk für /tmp zu aktivieren war übrigens eine meiner ersten Handlungen. Die Last der Kompilierung muss wirklich nicht meine SSD treffen.
Mit emerge Paket
kann man etwas installieren. emerge -s
sucht. equery uses Paket
zeigt die vorhandenen USE-flags, was überraschend wichtig ist. emerge --sync
entspricht apt update
. emerge -uavDN @world
ist ein apt upgrade
, aber wenn man die USE-flags geändert hat emerge --ask --update --deep --with-bdeps=y --newuse @world
ausführen sollte.
Probleme
Nach der Installation hatte ich zwar relativ schnell (dazu unten mehr) ein X mit Fenstermanager und Browser, aber es war arschlangsam. glxinfo
gab zwar direct rendering: yes aus. Tatsächlich war die 3D-Beschleunigung aber nicht über die Grafikkarte aktiviert, was ich an der Nutzung von llvmpipe als Grafikkartentreiber erkennen musste. Das Problem war, dass ich als Grafikkartentreiber in der make.conf radeon aktiviert hatte. Für eine HD 7950, eine Karte der Reihe Southern Island mit Tahiti-Architektur, braucht ein X-Server mit glamor aber radeonsi. Damit war die GUI dann schnell.
Noch bestehendes Problem ist, dass seitdem Firefox das System einfrieren lässt. Warum weiß ich nicht, im Forum bekam ich noch keine Antwort, die letzte Fehlermeldung im Log lässt auf ein Speicherverwaltungsproblem schließen:
Mar 12 23:35:59 [kernel] [ 4352.046372] radeon 0000:01:00.0: bo ffff8800736e6400 va 0x000000de0e conflict with (bo ffff880288729000 0x000000de10 0x000000de12)
Daher schreibe ich diesen Eintrag gerade mit Qupzilla, während Chromium kompiliert.
Mein Eindruck
Mein Eindruck von Funtoo ist weder eindeutig positiv noch negativ. Es ist möglich, dass ich mich mit dem System arrangiere, aber genausogut probiere ich vielleicht noch ein anderes System aus.
Positiv finde ich, wie konfigurierbar diese Distribution ist. Es ist absolut möglich ein System nach den eigenen Vorstellungen zu bauen, mehr geht wohl nur noch mit Linux from Scratch. Funtoo ist auch gar nicht so kompliziert – klar, da sind Konfigurationsdateien zu bearbeiten und etwas Grundwissen ist erforderlich. Aber es war bisher nichts dabei was ich so ähnlich unter Ubuntu nicht auch schon hätte machen müssen (okay, das ist heutzutage nicht unbedingt normal). Die klare Struktur der Konfigurationsdateien, die Hilfetexte und das Portage-System unterstützen dabei auch gehörig. Auch ist es angenehm, direkt die aktuelle Version jedes Programms zu bekommen.
Aber das Kompilieren nevt mich dann doch. Ich habe schon mehrmals eigene Kernel kompiliert und weiß, dass so etwas dauern kann. Aber wie lange Desktopprogramme wie Chomium und Firefox samt ihren Abhängigkeiten zum Kompilieren brauchen war mir schlicht nicht klar. Und ja: Durch die Abstürze derzeit Firefox nicht nutzen zu können ist auch ein großes Manko.
Ich kann nur hoffen, dass nach der Einrichtung die Kompilierzeit sich unaufdringlich in den Alltag einbauen lässt. Und dass die Probleme mit Firefox kein Zeichen dafür sind, dass eine Distribution mit aktuellen Paketen dauerhaft instabil sein wird. Gleichzeitig freut es mich doch sehr, jetzt ein tolles kleines System auf dem PC zu haben. Falls die Probleme nicht unumschiffbar werden bleibe ich wahrscheinlich dabei.
Vernünftige Bash mit sensible.bash
Friday, 4. March 2016
Sensible Bash (via) ist eine Sammlung sinnvoller Voreinstellungen für die Bash. Mir gefällt die Sammlung gut, denn es sind in meinen Augen nur hilfreiche Einstellungen darunter, keine zu kontroversen Änderungen. Aufgerufenen Ordnern ein cd
voranzustellen beispielsweise kann nur hilfreich sein.
Um die Einstellungen zu nutzen, kann man die Datei sensible.bash als .sensible.bash im Homeverzeichnis speichern und dann diesen Code an den Anfang der ~/.bashrc einfügen:
if [ -f ~/.sensible.bash ]; then source ~/.sensible.bash fi
Offsite-Backup mit borg und rsync.net
Monday, 29. February 2016
Es gibt so ein paar Daten, die mir wichtig sind. Meine Passwortliste beispielsweise. All das ist verschlüsselt und mehrfach gesichert – auf der lokalen Backupplatte, auf dem Heimserver, auf dem Laptop. All das hilft null, wenn hier mal ein Feuer ausbricht während der Laptop zuhause liegt. Das Offsite-Backup fehlte.
Auf Hacker News las ich in einem Kommentar von einem speziellen Angebot von rsync.net. 3 Cents pro GB per Monat, bei einer Mindestgröße von 20GB, zahlbar jährlich, ohne Transferkosten – das sind $7.20 im Jahr und ist damit das günstigste mir bekannte Angebot. Der Kniff ist wohl, dass es ausdrücklich für Profis gedacht ist. Außerdem werden nur die Backup-Tools attic und borg unterstützt, allerdings ohne speziellen Kundensupport. All das ist für mich super, denn die Tools sehen einfach genug aus – ich kann vom reduzierten Preis profitieren und werde wohl keinen speziellen Kundensupport brauchen.
Ich habe also die Profi-Warnung weitgehend ignoriert und einen Account angelegt, mich als Backup-Tool dann für borg entschieden. Mein Backupskript sieht so aus:
#!/bin/sh REPOSITORY=NUTZER@RSYNC-SERVER # Backup borg create --stats --compression lzma,2 \ $REPOSITORY::`hostname`-`date +%Y-%m-%d` \ /media/data/Dropbox \ # Remove old backup borg prune -v $REPOSITORY --keep-weekly=2
Das ist fast genau das Skript aus dem Schnelleinstieg. Vorher musste das Borg-Repository aber noch erstellt werden:
borg init --encryption=repokey NUTZER@RSYNC-SERVER:backup
Obwohl meine kritischen Daten sowieso verschlüsselt sind, war mir wohler dabei dieses Backup nochmal separat zu verschlüsseln.
Und das wars schon. Der pogo hat zwar beim ersten Backup ziemlich lange gerödelt, aber es musste ja auch eine ganze Menge an Daten über die Heimleitung hochgeladen werden, und ich hatte anfangs eine zu hohe Komprimierungsstufe gewählt (im Skript oben ist da schon angepasst). Der nächste Durchlauf wird schneller, weil schon vorhandene Daten nicht nochmal hochgeladen werden.
Bis jetzt bin ich sehr zufrieden damit, und es freut mich sehr, dass diese letzte gravierende Backuplücke endlich gefüllt ist. Nur automatisiert muss das noch werden.
Trojitá, ein schnelles Emailprogramm
Saturday, 27. February 2016
Trojitá gefällt mir gut, weil es minimalistisch und schnell ist. Ein echter IMAP-Client hat wohl wirklich Vorteile – neue Emails werden sofort angezeigt, es gibt durch den Fokus darauf auch anders als bei Sylpheed keine Probleme mit dem Neuladen der Emailliste. Generell reagiert die Qt-Oberfläche schnell und sieht ordentlich aus.
Aktuell ist Version 0.6 (nebenbei: via), und leider ist das wirklich keine fehlbezeichnete 1.0. Es fehlen Elemente der Oberfläche wie eine Möglichkeit, von der UI aus alle markierten Emails anzuzeigen. Verschlüsselung ist noch nicht integriert und die Sortierung der Emailliste funktioniert nur in einem bestimmten Modus, wird auch nur dann gespeichert. Trotzdem, bis jetzt konnte ich mich mit seinen Macken arrangieren und empfand Trojitá als angenehme Alternative. Falls die Entwicklung weitergeht wird das ein tolles Programm.
Kimonos Nutzerverachtung
Sunday, 21. February 2016
Kimono war ein SaaS-Anbieter, mit dem man Webseiten scrapen konnte und der die Daten dann in einer komfortablen API bereitgestellt hat. Nun schaltet er ab:
Was mich daran so ärgert sind die zwei Wochen bis zur Abschaltung. Mir ist bewusst, dass externe Dienste wegfallen können, und entsprechend war die Nutzung von kimono für pc-kombo so abstrahiert, dass es relativ leicht ersetzbar ist. Aber trotzdem sind die externen APIs ein kritischer Bestandteil der Seite. Und jeder kritische Bestandteil ist in zwei Wochen nur schwer ersetzbar.
Das ist auch nicht üblich. Wenn externe Dienste wegfallen versuchen verantwortungsvolle Betreiber normalerweise, ordentliche Migrationszeiten zu schaffen. Das nun abschaltende Copy zum Beispiel gibt bis Mai Zeit, die hochgeladenen Dateien zu sichern, drei Monate. Und Google, die das mit dem Abschalten ja nun wirklich nicht toll machen, hat das sogar durchdefiniert und garantiert immer monatelange Migrationszeiten und Warnungen.
Konsequenzen:
- Palantir steht nun auf meiner schwarzen Liste.
- Ebenso wie die beiden Kimono-Gründer, Ryan Rowe und Pratap Ranade.
- Ich nutze dieses Wochenende, um zu scrapy und zur Scrapy Cloud zu migrieren.
Wieder ein externer Anbieter? Nicht ganz: Ein externer Anbieter einer FLOSS-Lösung, die auch selbsthostbar ist. Das gewann ganz knapp den Kampf in meinem Kopf gegen die Alternative, so etwas selbst zu implementieren. Auch, weil ich die Scraper lokal definieren werde (die ja im Grunde nur eine URL mit mehreren Xpaths sind) und sie dann nochmal einfacher in einer selbstgebauten API-Software nutzen kann, falls scrapy doch nicht passen sollte.
Ich fand kimono toll und hilfreich. Es ist so richtig ärgerlich, eigentlich unfassbar, dass sie ihren Abgang so verkacken. Was für Gründe kann es geben, so unnötig verbrannte Erde zu hinterlassen?