Tue, Oct 25, 2016

Die neue crowbyte.org Webseite ist online

Ich bin stolz hiermit die neue Webseite von crowbyte.org anzukündigen.

Über ein halbes Jahr ist seit meinem letzten Post im Blog von crowbyte.org vergangen und ich bin glücklich ein Lebenszeichen von crowbyte.org und mir gleichermaßen zu geben.

Eine Menge ist passiert in eine solch langen Zeit.

Also lasst mich die wichtigsten Eckpunkte seit meiner letzten Aktivität kurz zusammenfassen:

  • aufgrund einer neuen Anstellung in Hamburg bin ich von Berlin nach Schleswig-Holstein gezogen
  • crowby...

Wed, Sep 28, 2016

Private IT Infrastruktur 2016

In den letzten Jahren war es mir wichtig, meine komplette private IT Infrastruktur in allen Aspekten kontrollieren zu können: Von der Hardware samt Datenhaltung über die Funktionsweise und Konfiguration aller Dienste bis hin zu den grafischen Benutzeroberflächen. Der Vorteil der vollen Kontrolle brachte allerdings den Nachteil des unverhältnismäßig hohen Aufwands und hohe Kosten mit sich. Mit meinem Projekt private IT Infrastruktur 2016 habe ich mein Setup grundlegend geändert...

Sun, Sep 11, 2016

PostfixAdmin 3.0

PostfixAdmin logoI just released the long awaited PostfixAdmin 3.0.

Right. there isn't a beta label anymore :-) It's more than two years since we released the first beta for 3.0 (and even more years of working towards 3.0 - I started working on the PFAHandler class in 2011) so I think we can safely drop the beta label.

PostfixAdmin 3.0 is now officially the stable version of PostfixAdmin. I'll keep the 2.3 branch maintained for a while if someone finds critical or security bugs, but nevertheless it's probably a good idea to upgrade to 3.0 whenever you have some time.

See the official announcement for details and the changelog, and my PostfixAdmin 3.0 slides (which still wear the beta label) for a quick overview of PostfixAdmin and what's new in 3.0.

BTW: I already submitted PostfixAdmin 3.0 to openSUSE Tumbleweed and Leap 42.2. It will arrive there as soon as the submit requests get accepted.

Sun, Jul 10, 2016


About two weeks ago, some visitors of the openSUSE Conference enjoyed playing openSUSE Jeopardy.

You might guess that there are some free implementations of the Jeopardy game out there. This is true, but everything I found didn't match my requirements (with varying reasons for each implementation I found). Therefore I decided to improve Ryan McDevitt's JavaScript Jeopardy and added quite some features I wanted to have available for running the openSUSE Jeopardy.

Some technical details:

  • the board is implemented using HTML and jQuery, so all you need is a browser (ideally in fullscreen mode)
  • the answers and questions are read from JSON files (you can also mark answers as "daily doubles" there)
  • everything (except selecting a tile) is done with keyboard shortcuts
  • besides the obvious basic features, there are some just for fun additions like the demo runner

I'm happy to announce that I just released my Jeopardy implementation on github under the MIT licence. (Yes, I usually prefer GPL, but since both jQuery and Ryan's original implementation are MIT-licensed, I decided to keep it that way.)

If you want to run a Jeopardy show (with whatever topics) yourself, I hope you find my implementation useful!

I'd also like to thank Hakon from the Linux User Group Landau for soldering a Jeopardy controller using the controller of an old USB keyboard. If you want to do something like that yourself: Dismantle an old keyboard. You'll find a small controller board which is attached to two foils that reach out to the keys. The buzzing is done using the 1..9 keys, so find out which contacts are used for those keys and solder cables on them. Oh, and make sure the cables are long enough to reach out to your players ;-)

Sun, Jul 03, 2016

openSUSE Conference 2016

AppArmor Crash Course slides (PDF)

A week ago, the openSUSE Conference 2016 ended, so it's time to finally upload my AppArmor Crash Course slides ;-)

I enjoyed lots of good talks. There were too many to mention a favorite one, but I'll try nevertheless:

  • Georgi's "MySQL firewall" - basically you could describe it as "AppArmor for MySQL", so it isn't surprising that I like it ;-)
  • AJ's "Infrastructure at OpenStack" included several interesting ideas (watched on video because it happened at the same time as "MySQL Firewall")
  • Reproducible Builds (both from Holger and Bernhard) - it was good to see that we have some progress on it, even if the current target is "build-compare says it's equal" and not "it's bit-for-bit equal"
  • Markus' "What's that distribution" quiz with funny quotes
  • Thorsten's "Btrfs, snapshots and rollbacks" with quite some btrfs insight and details
  • the keysigning party - a literally hot party ;-)  (back home, I found out that perl-GnuPG-Interface which is needed for caff is incompatible with the GPG version in Tumbleweed, so I'll need to setup a Leap VM to do the keysigning)
  • the LinuxTag-style Hacking Content - I applied quite some evil hacks, but it also turned out playing with the PAM config can make the login hard ;-)
  • Sarah's "Stress Tests and Performance Monitoring" - I already started to play with Munin which looks like a good candidate to replace some custom perl scripts I'm currently using
  • the SUSE Band :-)
  • Richard's "Distribute or die", even if I don't really agree that we should discourage using additional repos. Maybe I should just quote Richard himself:

I am not a Dictator, I can think of no example where I've ordered anyone to do anything. And I would expect people to stare at me funny and tell me 'no', if I tried.

I also had lots of interesting discussions on the hallway track and learned something about Nürnberg in the city tour and the cellar tour.

After the official part of oSC16 ended, we had a promising disussion about the (technical) future of the openSUSE wiki. If everything works out as planned, we'll get some shiny new hardware hosted in Provo that is only used for openSUSE - and the most important thing is that we'll have SSH access to it and can do whatever is needed without having to wait for the Provo admins.

PS: You might have noticed that I didn't mention the openSUSE Jeopardy in this post - I'll do that in a separate post next week ;-)

Fri, Apr 15, 2016

Kein CUDA nach dem Update auf openSUSE Leap 42.1

Nachdem ich meine Workstation von openSUSE 13.1 auf openSUSE Leap 42.1 migriert hatte funktionierten lies sich die Grafikkarte nicht mehr zum Rechnen nutzen. Irgendwie hatte es einen Fehler bei der Installation des neuen Grafiktreibers gegeben. Seine Neuinstallation löste das Problem.

Das Problem

Nach dem Update fanden CUDA nutzende Anwendungen keine Grafikkarte. So meldete Boinc No usable GPUs found. Prinzipiell funktionierte die Grafikkarte aber. So hatte ich volle 3D-Beschleunigung, und auch nvidia-smi meldete die erwarteten Daten:

| NVIDIA-SMI 340.93     Driver Version: 340.93         |
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|   0  GeForce GTX 580     Off  | 0000:01:00.0     N/A |                  N/A |
| 43%   49C   P12    N/A /  N/A |    494MiB /  1535MiB |     N/A      Default |

| Compute processes:                                               GPU Memory |
|  GPU       PID  Process name                                     Usage      |
|    0            Not Supported                                               |

Die Analyse

NVIDIA bietet CUDA zwar für einige SUSE-Varianten zum Download, aber leider nicht für Leap 42.1. Es gibt zwar Pakete für das unterliegende SLE 12, aber diese verlangen einen Grafikttreiber welcher nicht zum Kernel von Leap 42.1 passt. Deshalb habe ich mich für die Analyse auf OpenCL-Beispiel-Code zurückgezogen. Denn für OpenCL benötigt man nur die Header, welche man einfach direkt zum Code legen kann, und einen C-Compiler.

Schon der erste Versuch mit einem Beispielprogramm welches nur die OpenCL-Runtime initialisiert zeigt das Problem:

> sudo ./platform
modprobe: FATAL: Module nvidia-uvm not found.
Failed to get platforms: -1001

Das sudo ist hier übrigens nur vorangestellt um es zu ermöglichen Kernel-Module nachzuladen. Ohne sudo erhält man den gleichen Fehler, aber ohne die essentielle Information zum Kernelmodul.

Schnell konnte ich herausfinden, dass eigentlich alle Kernelmodule installiert sind:

> rpm -ql nvidia-gfxG03-kmp-default-340.93_k4.1.12_1-36.7.x86_64 | grep \.ko

> rpm -ql nvidia-uvm-gfxG03-kmp-default-340.93_k4.1.12_1-36.7.x86_64 | grep \.ko

> ls /lib/modules/4.1.12-1-default/updates/
nvidia.ko  nvidia-uvm.ko

Allerdings war das nicht das Modulverzeichnis des aktuell laufenden Kernels:

> uname -a
Linux eddie 4.1.13-5-default #1 SMP PREEMPT Thu Nov 26 16:35:17 UTC 2015 (49475c3) x86_64 x86_64 x86_64 GNU/Linux

Wo liegen also dessen Module? /lib/modules/4.1.13-5-default/updates existiert nicht. Das NVIDIA-Modul ist aber schnell gefunden:

> ls /lib/modules/4.1.13-5-default/weak-updates/updates/

Nur fehlt in diesem Verzeichnis das nvidia-uvm.ko.

Die Lösung

Eine Neuinstallation des dazugehörigen Paketes lässt dann endlich auch OpenCL wieder richtig initialisieren:

> zypper in in -f nvidia-uvm-gfxG03-kmp-default

> ls /lib/modules/4.1.13-5-default/weak-updates/updates/
nvidia.ko  nvidia-uvm.ko

> modprobe nvidia-uvm

> ./platform
Failed to get platforms: -1001

> sudo ./platform
NVIDIA CUDA - OpenCL 1.1 CUDA 6.5.51 - NVIDIA Corporation - FULL_PROFILE

> ./platform
NVIDIA CUDA - OpenCL 1.1 CUDA 6.5.51 - NVIDIA Corporation - FULL_PROFILE

Um die Grafikkarte tatsächlich zu verwenden war dann allerdings noch ein Neustart notwendig.

Sun, Mar 27, 2016

Das Ende von Facebook und WhatsApp auf BlackBerry 10

Ich bin ein stolzer Besitzer eines BlackBerry Passport seit mittlerweile etwas mehr als einem Jahr und bin bisher stets extrem zufrieden mit dem Gerät gewesen. Doch das neuste Update der Facebook App und die Ankündigungen rund um Facebook für BlackBerry 10 und WhatsApp lassen mich doch mit einigem Frust zurück.

Es ist kein Geheimnis, dass die Facebook App für BlackBerry 10 nie auf einem Level mit den Apps für Android oder iOS war - weder in Sachen Features, noch im Sinne der Stabilität. Faceb...

Wed, Mar 23, 2016

GNOME 3.20 veröffentlicht

Heute wurde eine neue Version des Gnome Desktops veröffentlicht. Es ist das erste Mal, dass ich eine Veröffentlichung des Gnome Projekts ankündige, da ich auf openSUSE Tumbleweed Gnpme in der Version 3.18 für einige Monate verwendete (sehr viel länger als ursprünglich geplant, da es nur als Testlauf gedacht gewesen ist) und obwohl ich aus der Welt von KDE, Xfce und i3 komme, war ich doch sehr beeindruckt wie gut Gnome auf meinem Laptop lief.

Version 3.20 bringt keine großen Veränderungn, aber...

Tue, Mar 22, 2016

KDE Plasma 5.6 veröffentlicht

Heute wurde eine neue Version des Plasma Desktop veröffentlicht und bringt viele schöne Verbesserungen mit.

Eine kurze Zusammenfassung beinahe aller Verbesserungen:

  • Taskmanager
    • anzeigen von Prozessfortschritten (kopieren, herunterladen etc.)
    • Medienkontrollen im Tooltip
    • Schnellsprunglisten (z.B. für private Firefox-Fenster, für Steam etc.)
  • KRunner
    • schöneres Aussehen
  • Widgets
    • Drag und Drop für die Ordnersicht im Panel
    • Rückkehr des Wetter-Widgets
  • Aktivitäten
  • Wayland-Unter...

Thu, Mar 17, 2016

openSUSE – proprietären Grafik-Treiber AMD Catalyst 15.12 als RPM installieren

AMD Catalyst 15.12 (fglrx 15.302) (Radeon Crimson Edition) wurde veröffentlicht und unterstützt Grafikkarten ab Radeon HD 5000 und höher. Das Skript makerpm-amd-15.12.sh steht ab sofort zum Download zur Verfügung und unterstützt openSUSE 11.4, 12.1, 12.2, 12.3, 13.1, 13.2, 42.1 und Tumbleweed sowie bis Kernel 4.5 (offiziell nur bis Kernel 3.19).

Hinweis: Unter openSUSE Tumbleweed wird der AMD Treiber nicht funktionieren. Die Version vom X-Server ist zu neu für den Treiber.

Ab sofort wird die Integrität der heruntergeladenen Dateien mit SHA256 geprüft. SHA1 ist somit obsolet und sollte besser nicht mehr verwendet werden.

Neues Feature vom Packaging Skript:

  • systemd Support für den automatischen Bau des fglrx-Kernelmodules (openSUSE 13.2 und höher)

Gelöste Probleme:

  • [SWDEV-82980] Ubuntu 15.10 fails when building the .deb packages

Link: AMD Catalyst 15.12 Release Notes

Folgende Steam-Spiele habe ich getestet und laufen mit diesem Treiber (Fettdruck = Neu):

Eine kleine Bitte habe ich: Wenn irgendwelche Probleme mit dem Treiber auftauchen, scheut euch nicht mir zu berichten (Ich nehme deutsche und englische Bugreports gerne entgegen). ;-) Ich werde versuchen, soweit es mir möglich ist, den gemeldeten Fehler zu reproduzieren. Zusammen mit den nötigen System-Informationen werde ich mich direkt an die richtige Stelle bei AMD wenden, um den Bug in der nächsten Treiber-Version beheben zu lassen. Danke schön. :-D

Für Benutzer älterer AMD Grafikkarten (Radeon HD Serie 2000 – 4000) wird dringend die Installation dieses Treibers abgeraten. openSUSE bringt bereits für ältere Grafikkarten den freien Radeon-Treiber mit. Um regelmäßig Verbesserungen am freien Radeon-Treiber zu erhalten, ist die Installation eines neuen Kernel unumgänglich.



Installation guide (English):

Über das makerpm-amd-Skript

Das Skript makerpm-amd-15.12.sh ist sehr mächtig, robust und läuft vollautomatisch. Der AMD-Installer wird automatisch heruntergeladen, falls er nicht schon im Verzeichnis liegt. Zudem wird geprüft, ob die Grafikkarte vom Treiber unterstützt wird. Auf Wunsch wird nach dem Bau des RPM-Packages der fglrx-Treiber installiert.

Folgende Argumente können dem Skript übergeben werden:

-b Nur das RPM-Package bauen (Standard)
-c <type> Nur X-Server konfigurieren. Monitor-Typ: single = 1 Monitor, dual = 2 Monitore (Wichtig: Nur ausführen, wenn es Probleme mit der Standardkonfiguration des X-Servers auftreten)
-d Nur den AMD-Installer downloaden
-i Das RPM-Package bauen und installieren bzw. updaten
-igf/–install-gdm-fix installiert einen Fix, um den Treiber mit dem GNOME Desktopmanager (gdm) läuffähig zu machen
-kms <yes|no> Kernel-Mode-Setting (KMS) aktivieren oder deaktivieren
-nohw Hardware-Erkennung explizit ausschalten. (z.B. beim Bau in einer VM)
-old2ddriver <yes|no> den alten 2D-Treiber aktivieren oder deaktivieren
-r|–report erstellt ein Report und speichert diese in eine Datei namens amd-report.txt
-u|–uninstall entfernt AMD Catalyst restlos vom System. Zuerst wird das fglrx-Package (falls vorhanden) vom System deinstalliert. Danach werden vorhandene AMD-Dateien und -Verzeichnisse entfernt. Hinweis: Falls das Rebuild-Skript installiert wurde, wird es ebenfalls entfernt und das Initskript /etc/init.d/xdm wiederhergestellt.
-ugf/–uninstall-gdm-fix entfernt den Fix, dass den Treiber mit dem GNOME Desktopmanager (gdm) läuffähig macht
-ur|–uploadreport wie Option –report nur zusätzlich wird der Report auf einem NoPaste-Service sprunge.us hochgeladen und gibt bei Erfolg den Link zurück.
-h Die Hilfe anzeigen lassen
-V Version des Skript anzeigen

Hilfe, es funktioniert nicht!

Bitte haltet folgende Regel ein:

  1. Bei der Eingabe der Befehle auf mögliche Tippfehler überprüfen.
  2. Möglicherweise ist die Lösung für das Problem im Wiki vorhanden.
  3. In Kommentaren lesen, ob eine Lösung zu einem Problem bereits existiert.

Wenn keines der o.g. Regel greift, dann könnt ihr mit eurem Anliegen an mich wenden. Damit ich euch helfen kann, müsst ihr erst vorarbeiten. Bitte ladet euch das Skript makerpm-amd-15.12.sh herunter und erstellt einen Report von eurem System in der Konsole:

su -c 'sh makerpm-amd-15.12.sh -ur'

Das Skript lädt das Report auf sprunge.us hoch und gibt anschließend einen Link aus. Diesen Link postet ihr in eurem Kommentar zusammen mit einer Beschreibung zu eurem Problem an mich. Ich werde mir euren Report anschauen und Hilfestellung geben, wo evtl. das Problem liegen könnte.

Feedbacks sind wie immer willkommen. :-)