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.
onli blogging am : Von Funtoo zu Void
Vorschau anzeigen