Tipp: Regle Fancontrol richtig runter
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
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!
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
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.
Meine Skyrim-Mods
Skyrim hat mich auch zum Ende hin nicht völlig überzeugt. Das hat mich jedoch nicht davon abgehalten es durchzuspielen. Ohne Mods wäre dies wahrscheinlich nicht geschehen. Deshalb im Folgenden eine Kurzbeschreibung aller von mir verwendeten Mods, lose gruppiert. Sie alle sind empfohlen, Einschränkungen schreibe ich wo nötig dazu.
Edit: Die vielen Youtube-Videos verlängern die Ladezeit dieses Eintrags stärker, als ich erwartet hatte. Deshalb ist der Rest nun in den erweiterten Eintrag verschoben, wodurch die Videos nicht mehr auf der Startseite oder im Feed landen sollten. Verzeihung, wenn diese Editierung den Eintrag in eurem Feedreader nochmal hochholt.
"Meine Skyrim-Mods" vollständig lesen
Telefon
Eben: Ein Kollege (nennen wir ihn Anton) war im Büro am rumräumen. Sein Telefon wollte wohl nicht so wie er. Er war am Kabel rumstecken und begutachtete kritisch das Telefon am leeren Schreibtisch gegenüber. Nach einer Weil ging er zu einem anderen Kollegen (nennen wir ihn Bert), der bisher mit Kopfhörern auf das Geschehen ignoriert hatte. Anton nahm das Telefon in die Hand, drehte es, guckt auf die Kabel, stellt es wieder zurück. Bert nahm die Kopfhörer ab und guckte ihn an. Anton: "Wie funktioniert das?" Bert, eiskalt: "Das ist ein Telefon", nahm den Hörer ab, hielt es ans Ohr und tippte eine Nummer ein.
Der dritte Kollege fing an laut zu lachen, Anton schaute Bert einfach an, völlig perplex.
Vernünftige Bash mit sensible.bash
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