Author Archives: js

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 😉

PayPal-Phishingmail mit vollständiger Adresse – Datenleck bei w3foto?

Heute war wieder einmal eine Phishing-Mail in meinem Postfach.

Soweit nicht ungewöhnlich, die Mail wurde von einem vermutlich unwissenden Dritten versendet, enthält einige Rechtschreibfehler und verweist auf eine sehr echt aussehende, gefälschte Paypal-Webseite auf paypal-kundensicherheit.org. Aber es gibt zwei Besonderheiten:

  • Die Mail enthält meinen Namen incl. vollständiger Postanschrift
  • Sie ist auf einer Mailadresse eingegangen, die ich ausschliesslich für den Bilderservice w3foto.de eingerichtet und genutzt habe
Das legt den Schluss nahe, dass es ein Datenleck bei w3foto gibt. Ich habe dort nachgefragt und warte gespannt auf eine Antwort.

Hitachi-Service: gut

Nachdem eine meiner Festplatten (Hitachi Deskstar 5K3000 mit 2 TB, Modellbezeichnung 0F12117, Typ HDS5C3020ALA632) kürzlich begonnen hat, weiche Fehler zu produzieren, habe ich mich im Rahmen der Garantie an der Support gewandt. Dieser reagierte relativ zügig auf meine Anfrage per E-Mail und bat mich, eine Diagnose mittels des „Drive Fitness Test“ durchzuführen. Gesagt, getan – Ergebnis: Code 0x70, Platte weist Fehler auf. Im weiteren Verlauf der Fehlerdiagnose tauschte ich noch mehrere Mails mit dem Support aus, angenehmerweise wurden sie immer vom gleichen Mitarbeiter beantwortet. Schlussendlich wurde mir ein Austausch nahegelegt.

Das RMA-Formular war schnell ausgefüllt, und kurz darauf war die Platte gut eingepackt zum Logistikpartner in Butzbach unterwegs. Die Portokosten dafür musste ich im Übrigen selbst tragen. Wenige Tage später erreichte mich eine E-Mail, in der mir der Versand eines Ersatzgeräts mitgeteilt wurde.

Heute, wieder einige Tage später, wurde eine neue Festplatte von UPS geliefert, direkt aus Singapur. Sehr schön! Alles in allem hat das jetzt etwa 14 Tage gedauert, da kann ich wirklich nicht meckern. Trotzdem hoffe ich, dass meine anderen Hitachi-Platten nicht auch zum Servicefall werden 😉

Mehr Platz, bitte!

Die kränkelnde Hitachi-Platte läuft noch immer, aber der Platz auf meinem Fileserver wurde so langsam knapp. Prinzipiell bieten sich in so einer Situation zwei Möglichkeiten: Zusätzliche Platten einbauen oder die vorhanden Platten durch größere ersetzen.

Ein Solaris ZFS Pool läßt sich nicht so ohne weiteres um zusätzliche Platten erweitern, ein Reshaping (analog zu mdadm unter Linux) wird nicht unterstützt. Mein ursprünglicher Plan war daher darauf ausgerichtet, regelmäßig größere Platten einzubauen. Auch aus Energieeffizientgründen wäre dies zu bevorzugen, eine geringere Anzahl an Laufwerken braucht weniger Strom. Dagegen spricht, dass Platten jenseits der 2 TB immer noch relativ teuer sind (u.a. den Unwettern in Thailand von letztem Jahr geschuldet). Und ein kleines, entscheidendes Detail hatte ich übersehen: 512-Byte- vs. 4k-Sektoren.

Kleiner Exkurs: Die interne Organisation eines ZFS Pools ist normalerweise an der Sektorgröße der verwendeten Festplatten ausgerichtet, der relevante Parameter heißt „ashift“. Solaris 11 Express bietet keine Möglichkeit, die Sektorgröße zu übersteuern. Bei Platten, die intern mit 4k-Sektoren arbeiten, nach außen aber 512-Byte-Sektoren emulieren, führt dies zu einer suboptimalen Organisation und damit zu verminderter Performance. Dummerweise läßt sich dieser Parameter nachträglich nicht mehr verändern, er wird bei der Erzeugung des Pools festgelegt und bleibt über die komplette Lebensdauer konstant.

Mein Pool (bestehend aus 4 x 2 TB in einem RAIDZ2) war für 4k-Platten nicht geeignet, ich würde die Daten einmal komplett umkopieren müssen. Je größer der Pool, desto unhandlicher wird’s. Nun stand ich vor der Wahl:

  • 4 x 3 TB anschaffen, Daten kopieren und dann 4 x 2 TB übrig haben, oder
  • 4 x 2 TB anschaffen, Pool auf 6 x 2 TB vergrößern (temporär 4 x 2 TB ohne Parity), 2 der alten Platten dafür recyclen und nur 2 Platten übrig haben.

Ich entschied mich für die zweite Variante.

Da mir die SATA-Anschlüsse ausgingen und ich zumindest temporär 10 Laufwerke würde betreiben müssen, mußte auch noch ein neuer Controller her. Hier fiel meine Wahl auf einen IBM ServeRAID M1015, die im Moment günstigste Alternative für einen 8-Port-SAS/SATA-Controller, der mit SATA-Platten >2 TB zurecht kommt und unter Solaris gut läuft. Es handelt sich dabei um einen umgelabelten LSI SAS2008, sobald man die originale LSI-Firmware aufgespielt hat, braucht das gute Stück unter Solaris keine zusätzlichen Treiber.

Soviel zur Hardwareauswahl, über die Einrichtung berichte ich das nächste Mal.

Oh, da stirbt wohl eine Platte… zpool scrub repaired 576K

Mein Solaris-Fileserver läuft nun schon geraume Zeit und verhielt sich relativ unauffällig.

Beim wöchentlichen Routinecheck des ZFS-Pools (mittels zpool scrub) wurden nun schon mehrfach Fehler korrigiert. Beim letzten Lauf schaute das so aus:

$ zpool status tank
  pool: tank
 state: ONLINE
 scan: scrub repaired 576K in 14h19m with 0 errors on Sat Sep  8 16:17:11 2012
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            c0t2d0  ONLINE       0     0     0
            c0t5d0  ONLINE       0     0     0
            c0t4d0  ONLINE       0     0     0
            c0t1d0  ONLINE       0     0     0

errors: No known data errors

Zwar nur wenige kB, aber so fängt’s an. Es scheint, als würde sich eine Platte demnächst verabschieden. iostat bestätigt dies (die Spalten „s/w“ und „h/w“ geben die soft-/hard errors seit Systemstart an) und identifiziert c0t2d0 als Übeltäter:

$ iostat -exn c0t2d0 c0t1d0 c0t4d0 c0t5d0
                            extended device statistics       ---- errors --- 
    r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b s/w h/w trn tot device
   58,4   14,9 4554,7  160,9  0,1  0,7    1,5   10,1   2  12   0   0   0   0 c0t1d0
   60,3   14,9 4554,7  160,9  0,1  0,7    1,4    9,6   2  12  92 505   0 597 c0t2d0
   59,2   14,9 4554,7  160,9  0,1  0,7    1,4    9,8   2  12   0   0   0   0 c0t4d0
   58,5   14,9 4554,6  160,9  0,1  0,7    1,5   10,0   2  12   0   0   0   0 c0t5d0

Im Messages-Log finden sich weitere Hinweise:

$ tail -20 /var/adm/messages
Sep  8 14:15:26 fileserver ahci: [ID 296163 kern.warning] WARNING: ahci0: ahci port 2 has task file error
Sep  8 14:15:26 fileserver ahci: [ID 687168 kern.warning] WARNING: ahci0: ahci port 2 is trying to do error recovery
Sep  8 14:15:26 fileserver ahci: [ID 551337 kern.warning] WARNING: ahci0:       Internal Error (E)
Sep  8 14:15:26 fileserver ahci: [ID 693748 kern.warning] WARNING: ahci0: ahci port 2 task_file_status = 0x4051
Sep  8 14:15:26 fileserver ahci: [ID 657156 kern.warning] WARNING: ahci0: error recovery for port 2 succeed
Sep  8 14:15:31 fileserver ahci: [ID 296163 kern.warning] WARNING: ahci0: ahci port 2 has task file error
Sep  8 14:15:31 fileserver ahci: [ID 687168 kern.warning] WARNING: ahci0: ahci port 2 is trying to do error recovery
Sep  8 14:15:31 fileserver ahci: [ID 551337 kern.warning] WARNING: ahci0:       Internal Error (E)
Sep  8 14:15:31 fileserver ahci: [ID 693748 kern.warning] WARNING: ahci0: ahci port 2 task_file_status = 0x4051
Sep  8 14:15:31 fileserver ahci: [ID 657156 kern.warning] WARNING: ahci0: error recovery for port 2 succeed
Sep  8 14:16:23 fileserver ahci: [ID 296163 kern.warning] WARNING: ahci0: ahci port 2 has task file error
Sep  8 14:16:23 fileserver ahci: [ID 687168 kern.warning] WARNING: ahci0: ahci port 2 is trying to do error recovery
Sep  8 14:16:23 fileserver ahci: [ID 551337 kern.warning] WARNING: ahci0:       Internal Error (E)
Sep  8 14:16:23 fileserver ahci: [ID 693748 kern.warning] WARNING: ahci0: ahci port 2 task_file_status = 0x4051
Sep  8 14:16:23 fileserver ahci: [ID 657156 kern.warning] WARNING: ahci0: error recovery for port 2 succeed
Sep  8 14:55:08 fileserver ahci: [ID 296163 kern.warning] WARNING: ahci0: ahci port 2 has task file error
Sep  8 14:55:08 fileserver ahci: [ID 687168 kern.warning] WARNING: ahci0: ahci port 2 is trying to do error recovery
Sep  8 14:55:08 fileserver ahci: [ID 551337 kern.warning] WARNING: ahci0:       Internal Error (E)
Sep  8 14:55:08 fileserver ahci: [ID 693748 kern.warning] WARNING: ahci0: ahci port 2 task_file_status = 0x4051
Sep  8 14:55:08 fileserver ahci: [ID 657156 kern.warning] WARNING: ahci0: error recovery for port 2 succeed

Die Platte (eine Hitachi 5K3000 2TB mit 3 Jahren Garantie) hat erst 18 Monate auf dem Buckel. Also werde ich in Kürze von meinen Erfahrungen mit dem Hitachi-Service berichten dürfen 😉 Vorher tausche ich aber noch das SATA-Kabel, möglicherweise liegt der Fehler ja hier.

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.

Sonos Controller Update auf 3.6.1b unter WINE

Sonos hat kürzlich ein Sicherheitsupdate für die Systemsoftware herausgegeben. Ich nutze die Controller-Software mittels WINE unter Ubuntu (Technische Details: Ubuntu 10.04 64bit, wine 1.2.2), und da läuft das Update leider nicht so ohne weiteres durch. Der Installer wird zwar runtergeladen und ausgeführt, allerdings scheint er nichts zu tun.

Ärgerliches Detail: Die aktuell angebotene Software-Version trägt den Dateinamen SonosDesktopController361b.exe. Dennoch ist nach deren Installation ein weiteres Update erforderlich, das nicht separat erhältlich ist.

Nach einigen Versuchen hab ich’s wie folgt hinbekommen:

  • Dem Update-Hinweis beim Start der Software folgen und durch die Installation klicken, bis zu dem Dialog an dem die aktualisierte Software gestartet werden soll.
  • Nun in das Temp-Verzeichnis der WINE-Installation wechseln (bei mir ~js/.wine/drive_c/users/js/Temp/). Dort wird es einen oder mehrere Ordner geben, deren Name mit einer geschweiften Klammer beginnt. Der neueste davon enthält das ausgepackte Installationspaket.
  • Aus diesem Verzeichnis die Datei „Sonos Desktop Controller.msi“ rauskopieren, z.B. eine Verzeichnisebene nach oben.
  • Nun den Installationsdialog schließen.
  • Jetzt kann die Installation des .msi-Pakets manuell angestossen werden. Dazu in einem Terminal eingeben: msiexec /a „c:\users\js\temp\Sonos Desktop Controller.msi“ (Pfad ggf. anpassen, je nachdem wohin das Paket zuvor kopiert wurde).
  • Den Anweisungen auf dem Bildschirm folgen; die Installation sollte nun durchlaufen und mit einem erfolgreichen Start des Sonos-Controllers in Version 3.6.1 enden.

MacBook Air 11″ als Desktop-Ersatz

Aufgrund der kleinen Unpässlichkeit meines Desktop-PCs hatte ich die Gelegenheit, meinen MacBook Air als Desktop-Ersatz auszuprobieren.

Bisher war das Gerät überwiegend als mobiler Begleiter im Einsatz und wurde selten mehrere Stunden am Stück genutzt. Das ist in erster Linie dem kleinen Display geschuldet. So praktisch dies aus Sicht der Mobilität sein mag, längeres Arbeiten ist unangenehm für den Nacken, da man den Kopf permanent nach unten neigen muss. Ein Mini-DisplayPort-auf-DVI-Adapterkabel (auf eBay für <10 EUR incl. Versand zu haben) löst das Problem, damit fand mein 24″-LCD Anschluss. Das MacBook habe ich davor positioniert und seine Tastatur und Touchpad normal benutzt.

Was mir dabei gut gefallen hat:

  • Der Monitor wurde direkt erkannt und korrekt angesteuert.
  • Die Flexibilität von MacOS X bei der Anordnung der Bildschime. Ich habe sie übereinander angeordnet, den 24″-LCD oben und das MacBook mittig darunter.
  • Die Menüleiste lässt sich von einem Bildschirm auf den anderen verschieben.
  • Das Touchpad läßt sich sehr gut bedienen. Ich bin eigentlich kein Freund davon und bevorzuge an Notebooks einen IBM-Trackpoint (den kleinen roten Knubbel, gibt’s teilweise auch bei HP). Aber das Mac-Touchpad ist prima, nicht zuletzt wegen den vielen Gesten. Zwei-Finger-Scrollen, zwischen den Desktops wechseln, etc. – wirklich angenehm!

Weniger schön fand ich:

  • Das interne Display läßt sich nicht abschalten, man kann nur die Helligkeit reduzieren und es somit schlafen schicken. Das OS denkt aber immer noch, ihm stünden zwei Bildschirme zur Verfügung.
  • Damit einher geht das zweite Problem: Das Dock befindet sich bei mir am unteren Bildschirmrand. Bedingt durch die Display-Anordnung wird dieser auf dem internen Bildschirm abgebildet, welchen ich aber gerne ausschalten würde. Das Dock kann ich nur an einem der Ränder platzieren, darum habe ich es erst Mal links hingetan. Ich könnte auch nochmal die Anordnung überdenken und das MacBook über den 24″ schieben. Damit wäre der externe Monitor „unten“ und ich könnte das Dock auch dort lassen. Allerdings entspräche dies nicht mehr der physikalischen Anordnung, was bei der tatsächlichen Nutzung beider Displays nachteilig wäre. Hm… Ich bin noch unentschlossen, für den Moment bleibt’s erst Mal so.

Ich bin noch neu in der Mac-Welt und habe mit dem ein oder anderen Keyboard-Shortcut, der Tastenbelegung und generell mit OS X zu kämpfen. Aber ich lerne ja gerne. Das eigentliche Arbeiten an dem Gerät war unproblematisch, die Performance war wirklich gut, all das was ich erledigen wollte hat funktioniert. Insgesamt war’s eine positive Erfahrung.

Dennoch war ich froh, nach einigen Tagen meinen gewohnten Ubuntu-Desktop wieder vor mir zu haben. Home sweet home kann ich da nur sagen 🙂

Sonos – Es werde Musik!

Pünktlich zu Weihnachten habe ich mir selbst eine kleine Freude gemacht und (nach ausführlicher Recherche) ein Sonos Play:5 gekauft. Das gute Stück tut seit rund zwei Wochen bei mir seinen Dienst. Zeit für eine kleine Zusammenfassung.

Sonos baut Multiroom-Audio-Systeme. Einfach gesagt handelt es sich dabei um einzelne Komponenten, mit denen einer oder mehrere Räume beschallt werden können. Das Angebot umfasst Bausteine, die an den vorhandenen Verstärker (Connect) oder vorhandene Lautsprecher (Connect:Amp) angeschlossen werden, als auch Aktivlautsprecher mit integriertem Verstärker (Play:3 und Play:5). Ausserdem gibt es noch ein iPod/iPhone-Dock sowie eine Fernbedienung. Zwei Aktivlautsprecher lassen sich zu einem Stereo-Paar zusammenfassen.

Mindestens eine der Komponenten muss dabei per Kabel mit dem lokalen Netzwerk verbunden werden. Untereinander bauen die Geräte ein eigenes WLAN-(Mesh-)Netzwerk auf, hierüber wird die Musik transportiert. Die Steuerung erfolgt entweder über die dedizierte Fernbedienung (mit über 300 EUR ziemlich teuer), über kostenlose Apps für iPhone, iPad und Android oder aber über einen Software-Controller für Windows oder Mac OS X. An meinem Ubuntu-Desktop funktioniert der Windows-Client via WINE gut.

Musik kann aus unterschiedlichen Quellen abgespielt werden. Sie kann von einem der zahlreichen unterstützen Musikdienste gestreamt werden (Napster, Deezer, JUKE um nur mal ein paar zu nennen), es können Webradio-Sender eingebunden werden (bequem über eine Suche am Controller) und natürlich kann auf die eigene Mediathek zugegriffen werden. Die Musik muss dabei auf einer Windows-Freigabe (CIFS, SMB) im lokalen Netzwerk verfügbar sein. Man braucht also keinen Rechner, auf dem eine eigene Serversoftware läuft (so wie bei der Logitech Squeezebox), ein „dummes“ NAS genügt. Im einfachsten Fall ist das ein USB-Stick bzw. -Festplatte an einer Fritz!Box.

Genug mit dem allgemeinen Vorgeplänkel, ein paar persönliche Eindrücke. Bisher habe ich eine Logitech Squeezebox genutzt, angeschlossen an meine Anlage im Wohnzimmer (Marantz SR-5000, Mordaunt-Short Avant 908i Standlautsprecher). Ich halte mich allerdings vornehmlich im Arbeitszimmer auf und nutze die Anlage leider viel zu selten. Also habe ich mir für diesen Raum erst mal einen Aktivlautsprecher angeschafft. Bestellt habe ich bei Thomas Lang von ueberall-musik.de. An dieser Stelle herzlichen Dank für den guten Service und die prompte Lieferung. Der Play:5 schaut so aus:

Die Einrichtung war sehr einfach: iPhone-Client installieren, Play:5 mit LAN und Strom versorgen, nach Anweisung des Clients zwei Tasten am Lautsprecher drücken, einen Namen für den Raum in dem das Gerät steht festlegen, fertig. Das Gerät wird sofort gefunden. Im nächsten Schritt habe ich meine Napster-Zugangsdaten eingetragen, und schon konnte ich Musik hören. Das alles hat weniger als 5 Minuten gedauert, Auspacken und Kabel zum geplanten Aufstell-Ort verlegen waren noch die beiden aufwendigsten Schritte.

Als nächstes war der PC dran. Auch hier: Client runterladen, installieren, starten, zwei Tasten am Lautsprecher drücken, fertig. Auf dem Mac das gleiche. Neue Komponenten werden analog dazu integriert, die Einrichtung ist dabei nur einmal erforderlich. Jeder Controller kann alle Geräte im ganzen Haus steuern.

Das Hinzufügen der Mediathek war genauso einfach: Server- und Freigabename eintragen, Benutzername und Passwort dazu, und schon wird das Laufwerk nach Musik durchsucht. Man ist nicht auf eine einzige Freigabe beschränkt, es können beliebig viele hinzugefügt werden. Die Tags werden ausgelesen und in einen Index aufgenommen, der nach Titel, Album, Künstler, Musikrichtung durchsucht werden kann. Ein Zugriff auf die originale Ordnerstruktur ist ebenfalls möglich. Der Index wird auf den Sonos-Geräten gespeichert und repliziert und fasst aktuell bis zu 65.000 Titel und Playlisten. Die Unterstützung für Musikformate ist umfangreich (MP3, WMA, AAC, AAC+, Ogg Vorbis, Apple Lossless, FLAC, WAV, AIFF), aber nicht allumfassend (z.B. keine HD-Audio mit >48 kHz Samplerate oder >16bit Auflösung).

Die Wiedergabe erfolgt bei Titeln aus der lokalen Mediathek gapless, d.h. ohne Unterbrechung (wichtig bei Live-Alben, getestet mit MP3 und FLAC). Bei Online-Streams gibt es immer eine kurze Pause zwischen den einzelnen Tracks, durch zuschaltbare Überblendung lässt sich das Problem zumindest mildern.

Ich muss mich erst mal mit einem einzigen Lautsprecher begnügen. Eines der Alleinstellungsmerkmale kann ich damit noch garnicht nutzen: Die gleichzeitige (und wahlweise synchrone) Wiedergabe von Musik in mehreren Räumen. Jede Komponente kann einzeln gesteuert werden, mehrere können zu einer Zone zusammengefasst werden. Dies geht dynamisch mit wenigen Schritten am Controller. In jeder Zone kann beliebig Musik abgespielt werden, bei insgesamt 32 Geräten ist Schluss.

Wo viel Licht ist gibt’s natürlich auch Schatten. Störende Kleinigkeiten:

  • Das vollständige Aktualisieren des Musik-Index lässt sich nur durch Löschen und erneutes Hinzufügen einer Freigabe oder durch Umbenennen des Ordners erzwingen, sodass die Musik als „neu“ erkannt wird.
  • Cover Art muss als folder.(jpg|gif) gespeichert werden oder in die Musik eingebetten sein, je nach Controller gibt es unterschiedliche Begrenzungen bei Auflösung und Dateigröße.
  • Podcasts würde ich gerne direkt auf dem Sonos abonnieren und hören, ohne sie erst in der Mediathek speichern zu müssen.
  • Die PC/MAC Controller-Software könnte komfortabler sein.
  • Der Tag-Hölle mit ID3v1, ID3v2, UTF8-Encoding etc. werde ich einen eigenen Artikel widmen und dabei auch auf Compilations eingehen.

Insgesamt bin ich dennoch sehr zufrieden. Seit ich das Gerät habe höre ich wieder viele der über die Jahre selbstgerippten Alben, die bisher auf meinem Homeserver geschlummert haben. Der Play:5 klingt ordentlich, geht lauter als ich zu Hören vermag (leider nicht bis 11), genügt auch zur Beschallung von mittelgrossen Räumen und hat dank Subwoofer genug Tiefgang. Die Bedienung per iPhone-Controller klappt gut.

Ich befürchte fast, dass dies nicht das letzte Gerät von Sonos war, das ich gekauft habe. Sonos hat mir meine Musik wiedergegeben.