Keine Hardware-Beschleunigung bei VMWare und openSUSE Linux

Beim Start meiner virtuellen Maschinen unter openSUSE 13.2 mit dem VMWare-Player 6.0.6 habe ich immer folgende Meldung bekommen:

Hardware graphics acceleration is not availabe.

As a result, this virtual machine may experience very low graphics performance. Follow the instructions provided by your graphics card vendor or Linux distribution in order to update your computer’s OpenGL drivers.

Mein Rechner hat eine integrierte Intel HD Graphics 3000 und läuft mit MESA 10.3.7. Aber nicht das Updaten der MESA Treiber löst das Problem, sondern ein Editieren der *.vmx Datei mit einem beliebigen Texteditor. Am Ende fügt man einfach folgendes hinzu:

mks.gl.allowBlacklistedDrivers = „TRUE“

[Quelle: http://mysteriouscable.blogspot.de/2014/07/as-result-this-virtual-machine-may.html]

Und schon ist die Meldung weg 🙂

Performanceproblem VMWare / Windows 7 / KDE (openSUSE 13.2) gelöst

Das Windows, das bei meinem Rechner dabei war, betreibe ich unter VMWare. Der Rechner selbst läuft unter Linux.

Leider hatte ich ziemliche Performance-Probleme beim Wechsel zwischen der VM und den anderen laufenden Programmen. Alleine auf einen anderen virtuellen Desktop zu wechseln, auf dem nur ein einziges Programm lief, hat gefühlt ewig gedauert und das System komplett lahm gelegt.

An sich fühlte sich das an, als würde das komplette RAM Inhalt auf die Festplatte ausgelagert. Wobei das eigentlich kaum möglich ist. Der Rechner hat 8 GB und die VM nur 4 GB. Da sollte eigentlich Luft sein. Von daher war mir immer schleierhaft, warum das so ein Problem ist. Zumal ich mir auch sicher bin, dass früher™ das Problem nicht so extrem in dieser Form bestanden hat.

Heute habe ich dann zufällig gemerkt, dass diese totale Systemüberlastung sogar auftritt, wenn ich mittels Alt+F2 unter KDE die Eingabezeile zum Schnellstart von Programmen einblende. Und die kann nun wirklich nicht viel Speicher fressen. Ein „top“ hat mir verraten, dass der Window Manager „kwin“ – zusätzlich zum VMWare Player – dann jede Menge CPU braucht. Und darüber bin ich drauf gekommen, wo das Problem liegen könnte.

Es sind die sogenannten „Arbeitsflächen-Effekte“! Also die Animationen beim Wechsel zwischen virtuellen Desktops, beim in den Vordergrund-Bringen von Fenstern etc. Und in der Tat, auf älteren Rechnern hatte ich die meist nicht aktiviert, deswegen hatte ich das Problem dort nicht.

Die gute Nachricht ist, man muss die nicht komplett deaktivieren, man kann sie mit der Tastenkombination Shift+Alt+F12 auch temporär deaktivieren bevor man VMWare startet. Und mit derselben Kombination wieder aktivieren, wenn VMWare beendet ist. Problem gelöst 🙂KDE Arbeitsflächen-Effekte

NuGet restore "funzt nicht"? Doch!

Nur ganz kurz, weil ich da zuletzt unnötig viel Zeit mit verloren habe: ich hatte ein Projekt in C#, das das Entity Framework mit NuGet eingebunden hatte und zwar so, dass das Paket nicht im Source Control eingecheckt werden sondern jeweils bei Bedarf im Rahmen des Builds geholt werden sollte (grundsätzlich geht das so: Enabling Package Restore During Build).

Lokal auf meinem Rechner funktionierte das auch prima. Nur beim automatischen Build auf dem Build Server (per TFS) hat das irgendwie nicht geklappt und gab immer nur „are you missing an assembly reference?“. Im Build Log habe ich gesehen, dass NuGet es schafft, die Pakete zu holen bzw. dass alle benötigten Pakete schon installiert seien. Im Netz war dann der Tipp, das „packages“ Verzeichnis auf dem Build Agent mal zu löschen (half nicht) oder per „Update-Package -reinstall“ alle Pakete in der Solution neu zu installieren (half auch nicht) oder noch esoterischere Hinweise.

Irgendwann ist mir dann auf dem Build Agent aufgefallen, dass die richtigen Verzeichnisse zwar vorhanden waren, aber keine „EntityFramework.dll“ existierte, sondern nur eine „EntityFramework.xml“. Anscheinend hatte ich es dann mit den falschen Suchwörtern probiert („nuget restore only xml not dll“ oder leichte Abwandlungen davon), denn zunächst habe ich da nichts Brauchbares gefunden. Erst nach viel zu langer Zeit bin ich über Missing Nuget Packages on TFS Build Server gestolpert, was die Lösung brachte…

Ich hatte zwar „“ in der NuGet Konfiguration eingestellt, wie überall beschrieben, aber es irgendwie geschafft, den „packages“ Ordner einzuchecken ohne die DLLs. Und dann funktioniert das restore nicht, denn anscheinend wird nur geprüft, dass die richtigen Verzeichnisse vorhanden sind, nicht aber, ob alle Dateien darin vorliegen.

Abhilfe war dann wie in Missing Nuget Packages on TFS Build Server vorgeschlagen: das „packages“ Verzeichnis aus dem Source Control löschen.

Wake-On-Lan mit Opensuse 13.1

Ich habe seit kurzem ein Cubieboard2[1] zuhause, auf dem meine ownCloud läuft. Und da ich nun einen permanent laufenden Rechner habe, dachte ich mir, ich richte meinen großen PC so ein, dass ich den zur Not auch mal remote hochfahren kann. Um z.B. tagsüber von unterwegs schonmal einen größeren Download anzuschmeissen, damit der fertig ist, wenn ich nach Hause komme. Und weil ich doch ein bisschen rumprobieren musste, fasse ich hier einfach mal alles kurz zusammen.

Als erstes muss man die richtigen Einstellungen im BIOS treffen. Mein Mainboard ist ein ASUS P8H67-M LX/SI, wo man im erweiterten Modus erst das APM Menü öffnen muss.
APM Menü in den erweiterten BIOS Einstellungen

Und dort aktiviert man dann „Einschalten durch PCIE“.
Wake-On-Lan aktivieren (PCIE)

Danach kommt die Einrichtung des Betriebssystems an die Reihe. Bei mir läuft Opensuse 13.1. Im Netz habe ich zwar recht schnell die nötige Einstellung per ethtool gefunden, doch das alleine hat nicht geholfen, der Rechner liess sich nicht aufwecken. Etwas weitere Recherche lieferte dann noch den Hinweis, über das SysFS das Wakeup für das entsprechende Gerät grundsätzlich zu aktivieren. Demzufolge habe ich dann diese beiden Zeilen ans Ende der /etc/init.d/boot.local geschrieben:

ethtool -s enp5s0 wol g;
echo enabled > /sys/class/net/enp5s0/device/power/wakeup

Wobei „enp5s0“ der Name des Netzwerkinterfaces ist (sonst üblicherweise „eth0“). Das „g“ im „ethtool“ Kommando bedeutet übrigens, dass das Aufwecken über ein sog. Magic Paket passiert.

Auf meinem Cubieboard habe ich mir dann folgende ausführbare Datei als /usr/local/bin/wake-desktop angelegt (die MAC Adresse gibt’s via „ifconfig enp5s0“)

#!/bin/bash
if [ $EUID -gt 0 ]; then
exec sudo „$0“
fi
etherwake -D bc:ae:c5:e1:8a:d9

und meinen User in die /etc/sudoers eingetragen

brack    ALL=NOPASSWD: /usr/local/bin/wake-desktop

Und nun kann ich mich z.B. von meinem Fairphone aus auf das Cubieboard einloggen (ich nutze JuiceSSH) und den Rechner aufwecken.

PC aufwecken per JuiceSSH

Anmerkungen:
[1]: über die Einrichtung des Cubieboards und der ownCloud darauf will ich auch noch bloggen, das kommt aber erst später. An dieser Stelle nur kurz der Hinweis, dass ich dieses Debian Wheezy (7.5) Image installiert habe und die fertigen ownCloud Pakete vom Opensuse Build Service nutze

Audio und Video zusammenführen mit FFMPEG

Als ich mal ein Best of Kalkofe gesehen habe, hab ich bei obigem Beitrag fast keine Luft mehr vor Lachen gekriegt. Ich finde das Video so dermaßen zum Brüllen, dass ich mir das aufs Klugfon gespeichert habe. Runtergeladen hatte ich das mit einer Browser-Erweiterung am PC. Nur hat die leider nur eine niedrige Auflösung erwischt, die auf dem Handy ziemlich schlecht aussah. Also eine andere Erweiterung probiert, die alle Auflösungen findet.

Problem war dann nur, dass das Video nun zwar ordentlich auf den Handy aussah, leider der Ton aber nicht funktionierte. Die erste, kleine Version war ne FLV, die große ein MP4. Ich dachte, es wär vielleicht ein Codec-Problem, und habe diverse Player ausprobiert. Geholfen hat das alles nichts. Eine erste Recherche nach fehlendem Ton bei Videos unter Android ergab auch nichts. Am PC wollte ich mir dann mal die Metainformationen genauer angucken, und siehe da, auch hier kein Ton. Wie sich herausstellte, gab es für die große Auflösung eine separate MP4A Audio-Datei. Die war schnell runtergeladen. Nur wie fügt man die zu einer Datei zusammen?

Wahrscheinlich hab ich die falschen Suchbegriffe genutzt, jedenfalls hab ich nur ziemlich komplizierte Anleitungen mit teils ellenlangen Skripten gefunden. Dabei ist die Lösung eigentlich ganz einfach. Und damit der Nächste nicht lange suchen muss, wie man einfach nur Video- und zugehörige Audiospur aus zwei separaten Dateien zusammenführt:

ffmpeg -i inputvideo.mp4 -i inputaudio.mp4a 
-acodec copy -vcodec copy outputvideoplusaudio.mp4

Fairphone Update auf 1.6 (Cherry) mit Unified Storage

Das Fairphone (First Edition) ist mein erstes Smartphone, es läuft unter Android 4.2.2. Ich bin ziemlich zufrieden mit dem Gerät, von der Hardware könnte aber die Kamera besser sein.

Was mich aber ziemlich gestört hat, ist die Aufteilung des 16 GB großen Speichers, die nur 1 GB Platz für den internen Speicher lässt. Das hat zur Folge, dass ich diverse Apps wieder deinstallieren musste, weil sie einfach zu viel Platz weggenommen haben. Teilweise ließen sich aus Platzmangel einige Apps auch nicht mehr updaten. Es hat auch nichts genützt, so viel wie möglich in den Telefonspeicher zu verschieben. Einige dicke Brocken bieten diese Option leider erst gar nicht. Oder ich will nicht auf die zugehörigen Widgets verzichten.

Umso erfreulicher fand ich die Ankündigung „Software update v1.6 log – August 2014“. Neben den Korrekturen – die mir nicht so wichtig sind – kommt nun eine Option in den Fairphone Updater, mit dem man bequem auf „Unified Storage“ umstellen kann. Das bedeutet nichts anderes als eine Umpartitionierung, die den Unterschied zwischen internem und Telefonspeicher aufhebt. Das hätte man auch selbst schon manuell durchführen können, das war mir aber bisher zu viel „Gefrickel“.

Die Anleitung „How do I upgrade to the unified storage partition (for first edition Fairphone owners)?“ dazu enthält auch einen Link auf „How to backup and restore your Fairphone„, ein Thema, mit dem ich mich bisher noch nicht wirklich auseinandergesetzt hatte. Dort werden verschiedene Optionen beschrieben:

  1. Manuell
  2. Die eingebaute Sicherung und Wiederherstellung
  3. Drittanbieter-Apps

In der Vorbeiretung hatte ich aber auch eine Anleitung gefunden, welche das Backup über adb ermöglicht: „How to take full Backup of your Android without Rooting“.

Ich hatte mich entschieden, sowohl die eingebaute Sicherung und Wiederherstellung zu probieren als auch die Variante mit adb. Weil erstere am bequemsten klang und zweitere als Sicherungsnetz am vollständigsten. Bei der eingebauten Sicherung hatte ich alles zum Sichern ausgewählt. War easy und ging schnell. Das Backup per adb habe ich dann wie in der Anleitung gemacht und nebenbei laufen lassen. Und weil es selbst keinen Fortschritt anzeigt, habe ich hin und wieder mal die Größe der Sicherungsdatei geprüft. Nach etwa 3 Stunden waren es über 8 GB. Erst da wurde mir bewusst, dass auch der Inhalt der externen SD-Karte mitgesichert wird. Daraufhin habe ich abgebrochen, weil ich die 64 GB fast komplett mit Musik gefüllt habe. Das hätte ewig gedauert und wäre größtenteils umsonst gewesen, weil die externe SD-Karte ja gar nicht umpartitioniert wird.

Also musste eine anderes Sicherungsnetz her. Meine Wahl fiel auf Titanium Backup root, weil ich das schonmal auf einem Tablet benutzt hatte.

Nachdem ich nun zwei unterschiedliche Backups hatte, ging es an den Update-Prozess. Der dauert ja recht lange inkl. Neu-Installation der Google-Apps und dem etwas nervigen Optimieren aller Apps (insgesamt 3x: beim Update auf Cherry, beim Installieren der Google-Apps sowohl nach dem Update als auch nach dem Umpartitionieren). Aber dann hatte ich das neue Fairphone OS 1.4 und den Unified Storage. Schön! Nur leider nicht das Ende der Arbeit…

Dann folgte noch die Rücksicherung plus Nacharbeiten, die ich nur stichwortartig beschreiben will:

  1. Die eingebaute Sicherung und Wiederherstellung hat sich eigentlich kaum gelohnt, im Wesentlichen hat das nur die Fotos und Videos wieder hergezaubert. Dabei ist aber die Ordner-Struktur verlorengegangen, d.h. alle Bilder sind in „pictures“ gelandet. Ich habe danach größtenteils per Hand die alte Struktur mit z.B. „Kamera“, „Screenshots“ und eigenen thematischen Ordnern wiedergergestellt.
  2. Das Zurückspielen der Titanium Sicherung war sehr zeitaufwändig. Bei jeder App musste ich erstmal die Berechtigungen abnicken (mindestens ein Tap, manchmal meheere wenn die Liste zu lang war und ich erst – z.T. mehrfach – auf „Weiter“ tappen musste), dann jedes Mal ablehnen, dass Google die App überprüft, und dann nochmal auf „Fertig“. Bei insgesamt fast 100 Apps nervt das gewaltig. Einmal hatte ich auch nicht aufgepasst und auf „Abbrechen“ gertappt. Dann ging die Wiederherstellung nicht weiter und lies sich auch nicht ohne weiteres neu starten, weil angeblich schon ein Vorgang lief. Ich musste Titanium erst ganz beenden und neu starten, damit es weiterging.
  3. Danach hat es auch ziemlich gedauert, wieder alls Widgets und App-Icons so auf den Home-Screens anzuordnen, wie ich es vorher hatte. Dann noch den Bildschirmhintergrund, Benachrichtigungs- und Klingeltöne wieder konfigurieren, PIN für den Startbildschirm, Timeout bis Ruhezustand, Synchronisations-Einstellungen etc. pp.
  4. Und weil ich nicht aufgepasst und die Kontakte mit Bordmitteln wiederhergestellt hatte, waren die dann doppelt: einmal aus der Rücksicherung im Telefon und einmal in meinem owncloud-Konto. Gut, selber schuld. Also musste ich die auch wieder aufräumen. Zum Glück habe ich schnell gefunden, dass man über die Menü-Taste und „Kontakte zur Ansicht“ nur die anzeigen kann die auf dem „Telefon“ gespeichert sind. Doch beinahe hätte ich so zu viel gelöscht, denn bei der ganzen Prozedur waren nicht alle Kontakte doppelt in der Gesamtliste aufgeführt. Ziemlich viele waren „zusammengeführt“, ein Feature, das mir bis dato auch nicht bewusst war. Diese musste ich erst über „Bearbeiten“ und dann „Trennen“ in Telefon und Cloud Kontakt aufspalten, so dass ich dann den Kontakt im Telefon löschen konnte. Von diesen musste ich dann aber wieder einige erneut zusammenführen, weil sie z.B. auch in meine Threema-Kontaktliste enthalten sind. Das hier war sogar der größte Aufwand. Drei Kontakte hatte ich dabei irrtümlich auch aus der Cloud gelöscht, weil ich das Feature der zusammengeführten Kontakte noch nicht gekannt hatte. Zum Glück hatte sich die KDE Kontaktverwaltung auf meinem PC noch nicht neu synchronisiert, so dass ich dort die drei Kontakte als vCard exportieren und über mein owncloud Webfrontend wieder importieren konnte. Warum einige Kontakte zusammengeführt waren, andere aber nicht, habe ich nicht so recht verstanden. Ich kann es nicht mehr nachvollziehen, aber vielleicht waren nur die betroffen, die auch bei Threema in der Kontaktliste enthalten sind.

Gut, dass ich das alles an einem freien Tag gemacht habe… Es war zwar viel Arbeit, die vielleicht für den ein oder anderen Ottonormaluser nicht machbar gewesen wäre. Aber es hat sich m.E. doch gelohnt, denn jetzt hab ich nicht mehr nur 60 MB Platz für Apps, sondern 12 GB.

Problem beim Zusammenspiel ownCloud, zNotes und Windows/Linux

Seit einiger Zeit nutze ich ownCloud 5.x für meine private Cloud. Kalender und Kontakte funktionieren soweit ganz gut.

Irgendwann habe ich angefangen auch Notizen synchronisieren zu wollen. Und zwar zwischen einem Rechner mit Windows 7 auf Arbeit und dem Rechner zuhause mit openSUSE 12.3. Dabei bin ich im Netz darauf gestoßen, zNotes zu benutzen, weil das für beide Plattformen verfügbar ist.

Passt soweit ganz gut, nur gibt es regelmäßig ein Problem: ändere ich auf dem Linux-Rechner was, synchronisiert sich der Windows-Rechner wie erwartet.
Ändere ich aber auf dem Windows-Rechner, habe ich auf dem Linux-Rechner immer zu allen Notizen einen Konflikt.
Da ich nie gleichzeitig ändere, kann ich gefahrlos die Konflikt-Dateien löschen. Es ist aber schon ziemlich nervig.

Leider habe ich noch keine Lösung gefunden. Ich hoffe, die kann ich hier irgendwann nachreichen…