GARTEN EDEN

#linux #programming #android #online #stuff

Kernel 3.16 macht Google Maps unter Linux wieder nutzbar

An welchem Patch es letztendlich genau lag, weiß ich nicht (dieser?), jedenfalls läuft bei mir seit Kernel-Version 3.16.0 Google Maps mit Chrome und Firefox flüssig, wo vorher nur absolute Langsamkeit war – mit Renderingzeiten von 3 Sekunden und mehr pro Kartenabschnitt und CPU-Auslastungen von 100% pro Kern.

Da war ich auch nicht alleine, doch im Zusammenspiel mit der VA-API scheint das Problem behoben zu sein. (Maps’ Lite-Modus zu aktivieren, hat bei mir übrigens keine Besserung gebracht.)

VDPAU/VA-API?

Ja, ich habe die Grafikbeschleuniger VDPAU/VA-API aktiviert. Sicherlich kann man diese Entscheidung kontrovers betrachten, zumal in Browsern unter Linux böse Hacks erforderlich sind (siehe unten), aber beim Betrachten von Videos in den unterstützten Formaten (z.B. MPEG-2/-4, H.264) entlastet es die CPU schon drastisch, weswegen ich es auch empfehlen kann.

Eingeschränkt übertragbar

Die fragmentierte Landschaft von diversen Beschleunigungsarchitekturen und -schnittstellen bleibt ein Armutszeugnis für die Grafikentwickler der großen Hersteller, deswegen richtet sich meine Empfehlung primär nur an Nutzer mit einem ähnlichen System, sprich:

Sicherlich gibt es ähnliche Szenarios, in denen das Vorgehen entsprechend funktioniert. Nur kann ich sie mangels Hardware nicht testen.

Weitere Infos

Beim Einrichten von VA-API habe ich mich damals an die (leider nicht mehr ganz aktuellen) Anleitungen von Webupd8 (1, 2) gehalten. Das Vorgehen funktioniert aber immer noch.

PS: Die Warnungen auf den Seiten und in Chromes Flags-Seite sind eindeutig. Es ist bisher experimenteller Code, den man da aktiviert. Auch Intels offizieller Grafiktreiber schreibt sich ins System und vor den Standard-Stack, den die Distribution mitbringt.
Dennoch konnte ich keine Probleme feststellen.

0 Kommentare

Fast TSC calibration failed loswerden

Wer seinen Kernel selbst kompiliert, kennt vielleicht die Meldung
Fast TSC calibration failed.
die allerdings nicht angezeigt wird, wenn man den Ubuntu-eigenen Kernel nutzt.

Im Endeffekt ist dieser Hinweis völlig harmlos; Er besagt nur, dass die Taktraten-Informationen nicht direkt beim ersten Anlauf (per TSC) ausgelesen werden konnten. Danach wird eine andere Methode probiert, die eher für Multi-Core Systeme geeignet ist, die dann zum Erfolg führt.

Boot ohne Hinweis

Nun gibt es zwei Möglichkeiten. Entweder man weist den Kernel per Boot-Parameter an, direkt die erfolgversprechende Methode* zu wählen (acpi_pm) oder man blendet den Hinweis einfach aus.

Ich habe mich für Letzteres entschieden und bin damit auf der Seite von Kernel-Hacker Paul Bolle, der sich dazu entschieden hat, dieser eher unwichtigen Meldung den Status eines Fehlers (pr_err) zu entziehen und stattdessen als Information einzustufen, die beim Bootvorgang standardmäßig nicht angezeigt werden.

Patch

Der Patch dafür sieht folgendermaßen aus (getestet mit Kernel 3.15.6):

diff -rupN a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
--- a/arch/x86/kernel/tsc.c	2014-07-09 20:21:40.000000000 +0200
+++ b/arch/x86/kernel/tsc.c	2014-07-16 12:57:28.639510526 +0200
@@ -618,7 +618,7 @@ static unsigned long quick_pit_calibrate
 			goto success;
 		}
 	}
-	pr_err("Fast TSC calibration failed\n");
+	pr_info("Fast TSC calibration failed\n");
 	return 0;
 
 success:

fast-tsc-calib-failed.patch (386B text/x-patch)

Nun sollte das System ohne den Hinweis starten.


*Die auf dem aktuellen System verfügbaren Methoden kann man auslesen mit:

cat /sys/devices/system/clocksource/clocksource0/available_clocksource

Und dann als Parameter in clocksource= in der Zeile GRUB_CMDLINE_LINUX in /etc/default/grub eintragen.

0 Kommentare

Fehler beim Mounten von USB-Laufwerken

Aus unerfindlichen Gründen weigerte sich Ubuntu bei mir einen USB-Stick einzuhängen, der das Boot-Flag gesetzt hatte und ein ISO 9660 Dateisystem enthielt.

mount: wrong fs type, bad option, bad superblock on /dev/sr0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail  or so

Interessanterweise verschwindet das Problem, wenn man mount auffordert, den automatischen Modus zu benutzen, anstatt – so wie es Ubuntus Standardeinstellung ist – explizit das Dateisystem vorzugeben. Ergo war nach:

sudo mount -t auto "/dev/sdb1" "$MOUNT_VERZEICHNIS"

der Stick gemountet. (Die Laufwerksbezeichnung und der Einhängepunkt sind natürlich anzupassen.)

0 Kommentare

⇓   Ältere Artikel   ⇓