Tag Archives: linux

Sonos OS 6.3

Auch Sonos OS 6.3 läßt sich weiterhin unter Linux steuern. Der Funktionsumfang des Controllers ist inzwischen aber arg eingeschränkt, Musikdienste und Radiosender können nicht mehr ausgewählt werden. Lautstärkeregelung und Starten/Stoppen der Wiedergabe funktionieren noch.

Seit OS-Version ist die Minor-Version (das x in 32.x) zweistellig, sodass die vollständige Versionsnummer nicht mehr in an Stelle der alten gepatcht werden kann. Glücklicherweise scheint die Windows-Applikation nur Major und Minor-Version zu berücksichtigen, die Build-Nummer ist egal.

Daher kann die letzte Stelle einfach weggelassen werden. Aus dem Versionsstring „32.11-30071“ wird „32.11-3007“.

Die komplette Anleitung von 2013 gibt’s nach wie vor.

Sonos OS 6.0

Die kürzlich erschienene Sonos OS Version 6.0 unterstützt jetzt u.a. Apple Music. Allerdings bedarf es eines neuen Patchs der Controller-Software, damit diese weiterhin unter Linux benutzt werden kann. Die vollständige Anleitung gibt’s im Posting von 2013, die neue Versionsnummer lautet „31.3-22220“.

Paket-Cache für Debian & Ubuntu

Bei mir sammelt sich so langsam ein ganzer Zoo an Linux-Maschinen (physikalisch als auch virtualisiert) an. Dabei handelt es sich überwiegend um Ubuntu- und Debian-Systeme. Um ein bisschen Bandbreite beim alltäglichen apt-get update && apt-get dist-upgrade zu sparen, lohnt sich die Installation eines Paket-Caches. Apt-Cacher NG ist so ein praktisches Stück Software. Es arbeitet als http-Proxy und muss im Gegensatz zu debmirror, apt-mirror und Konsorten nicht erst einmal 80 GB pro Distribution und Architektur runterladen.

Die Installation erfolgt über:

sudo apt-get install apt-cacher-ng

Danach ist die Konfigurationsdatei /etc/apt-cacher-ng/acng.conf anzupassen. Ich habe lediglich den Speicherort auf ein NFS-Share umgebogen, da die VM nur über wenig Plattenplatz verfügt. Damit der Dienst beim Systemstart nicht startet, bevor das NFS-Share gemountet wurde, habe ich noch das Startskript angepasst und do_start erweitert:

# wait for nfs mount
while ! mountpoint -q /apt-cache; do
   sleep 5
done

Damit ein Client den Cache auch nutzt, muss man jeweils apt mitteilen, einen http-Proxy zu benutzen. Dazu habe ich eine neue Datei unter /etc/apt/apt.conf.d/ angelegt:

Acquire::http::Proxy "http://mein-apt-cache:3142";

Status und Effizienz des Caches kann man über eine Webseite abfragen:

http://mein-apt-cache:3142/acng-report.html

Siehe auch Create a Local Ubuntu Repository using Apt-Mirror and Apt-Cacher.

Installation von Oracle 11gR2 Enterprise Edition unter Ubuntu 12.04

Zuhause spiele ich ab und an ein wenig mit einer Oracle-Datenbank rum. Dazu habe ich vor einiger Zeit die frei verfügbare Express Edition (XE) in Version 11gR2 installiert, was relativ simpel war (rpm-Pakete mit alien nach deb konvertieren sowie kleinere Vor- und Nacharbeiten). Nun wollte ich mit table partitioning experimentieren. Dabei handelt es sich dummerweise um ein Enterprise-Feature, welches von der XE nicht unterstützt wird.

Halb so schlimm, da Oracle netterweise auch die Enterprise Edition (EE) zum Download anbietet und man zu Lernzwecken keine Lizenz benötigt. Also habe ich mich heute dem Vergnügen hingegeben, diese Version unter Ubuntu 12.04 (Precise Pangolin, 64bit) an’s Laufen zu bekommen. Das wäre nur halb so schlimm, wenn Ubuntu eine offiziell unterstützte Linux-Distrubution wäre…

Der Quick Installation Guide war schon ein guter Einstieg, allerdings stößt man schnell auf Probleme, weil Bibliotheken fehlen, Pfade falsch sind, etc. Mit Hilfe dieser Anleitung hat’s dann aber ganz gut funktioniert. Insbesondere die Makefile-Patches im Abschnitt „Solving compilation/link errors“ sind sehr hilfreich, um Fehlermeldungen im Rahmen der Installation zu umschiffen.

Abschliessend habe ich noch ein Startskript für Upstart erstellt und als /etc/init/oracle-ee.conf gespeichert. Beim Start wird /dev/shm umgebogen, um den Fehler „ORA-00845: MEMORY_TARGET not supported on this system“ zu umgehen.

description  "Oracle Enterprise Edition"

env ORACLE_HOME=/opt/oracle/ora11g/product/11.2.0/dbhome_1
env ORACLE_USER=oracle

start on (net-device-up
          and local-filesystems
	  and runlevel [2345])
stop on runlevel [016]

expect fork

pre-start script
    [ -h /dev/shm ] && rm -f /dev/shm && mkdir /dev/shm && mount --move /run/shm /dev/shm && mount --bind /dev/shm /run/shm
    su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
end script

post-stop script
    su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
end script

Die Datenbank wird nun automatisch beim Systemstart hochgefahren und kann wie jeder andere Dienst manuell gestartet/gestoppt werden (sudo start oracle-ee / sudo stop oracle-ee).

P.S.: Einfacher wäre gewesen, die komplette Oracle Database Developer VM herunterzuladen (für VirtualBox). Da sind dann auch gleich der SQL Developer und TimesTen mit dabei. Aber warum einfach, wenn’s auch kompliziert geht… 🙂

Videos mit MediathekView herunterladen und automatisch in MP4 umwandeln

MediathekView ist ein Stück Software, mit dem Inhalte aus den Mediatheken der öffentlich-rechtlichen Fernsehsender heruntergeladen werden können. Nachdem Bodo Menke und Volker Weber schon einiges zur Nutzung auf dem Mac geschrieben und detaillierte, bebilderte Anleitungen erstellt haben, hier noch eine kleine Ergänzung von mir.

Das von mir für Volker erstellte transcode.sh habe ich ein wenig erweitert und robuster gestaltet. Die neue Version ersetzt die vorherige 1:1.

Features und Nutzungshinweise:

  • Videos werden nun je nach Bedarf transcodiert oder einfach nur von ihrem Flash-Container befreit, wenn sie bereits als MPEG-4 vorliegen.
  • flvstreamer wird für den Download benötigt.
  • ffmpeg (unter Debian/Ubuntu stattdessen libav) ist optional und wird zur Umwandlung des Flash-Containers benötigt, ohne dass das Video aufwändig umkodiert werden muss.
  • HandBrakeCLI ist optional und wird verwendet, wenn das Video nicht im MPEG-4-Format vorliegt oder ffmpeg/libav nicht installiert ist.
  • Ausserdem wird perl benötigt, sollte auf keinem unixoiden OS fehlen.
  • Idealerweise sind alle diese Werkzeuge vorhanden und über den Pfad erreichbar. Sofern die automatische Erkennung fehlschlägt, können die absoluten Pfade am Anfang des Skripts ergänzt werden.
  • Das erzeugte Dateiformat ergibt sich aus der Dateiendung, die in MediathekView hinterlegt ist. mp4 und m4v sind gängig, avi ist ebenfalls möglich.
  • Handbrake verwendet Profile für’s transcodieren, HandBrakeCLI -z listet die zur Verfügung stehenen Profile auf. Das Skript nutzt das Profil für AppleTV 3.
  • Sind weder HandBrake noch ffmpeg vorhanden, so wird die von flvstreamer erzeugte .flv-Datei nicht weiter angefasst. In dem Fall beschwert sich MediathekView möglicherweise über einen fehlerhaften Download, da der Dateiname aufgrund des zusätzlichen Suffixes .flv nicht mit dem in der Oberfläche hinterlegten übereinstimmt.
Das Skript wurde von Bodo ausgiebig getestet, Danke dafür! Es funktioniert auf dem Mac ebenso wie unter Linux. Garantieren kann ich das allerdings nicht, die Nutzung erfolgt auf eigene Gefahr und ohne Gewährleistung meinerseits 😉

Fehlende Video-Thumbnails unter Ubuntu 12.04

Ubuntu 12.04 nutzt den totem-video-thumbnailer zur Erzeugung von Thumbnails. Das funktioniert i.d.R. auch, allerdings versteht sich Totem scheinbar nicht auf alle Videoformate gleich gut. Bei mir werden z.B. für Dateien im Matroska-(.mkv)-Format keine Vorschaubilder erzeugt.

Glücklicherweise gibt’s ja für alles Alternativen und Schalter. Man muss sie nur finden 😉 Den hilfreichen Tipp habe ich hier gefunden. Kurz zusammengefasst: ffmpegthumbnailer ersetzt totem-video-thumbnailer, gesteuert wird es nicht mehr über die Gnome-Konfiguration, sondern über Dateien in /usr/share/thumbnailers. Wir installieren das fehlende Paket, nehmen den Eintrag von Totem als Vorlage…

sudo apt-get install ffmpegthumbnailer
sudo cp -a /usr/share/thumbnailers/totem.thumbnailer /usr/share/thumbnailers/ffmpeg.thumbnailer

…und passen sie für ffmpeg an. Dazu die folgenden beiden Zeilen ersetzen:

TryExec=/usr/bin/ffmpegthumbnailer
Exec=/usr/bin/ffmpegthumbnailer -s %s -i %i -o %o -c png -f -t 10

Danach kann der Thumbnail-Cache geleert werden:

rm ~/.thumbnails/fail/gnome-thumbnail-factory/*

Wer möchte kann sich nun von Totem trennen. Achtung: Dabei wird auch der Verweis auf den Totem-Thumbnailer unter /usr/share/thumbnailers entfernt. Daher ist es wichtig, die Datei nicht direkt zu bearbeiten, sondern eine Kopie davon zu erstellen und diese anzupassen.