Accuphase DAC-40 unter Linux nutzen

Allgemeine Nutzung des Accuphase DAC-40 unter Linux

Wer sich zu den glücklichen Besitzern eines Verstärkers von Accuphase zählen darf und gerne auch einen USB-DAC von Accuphase einsetzen möchte, hat z.B. die Möglichkeit den vorhandenen Verstärker mit der DAC-40 Einschubkarte zu erweitern und aufzuwerten.

Ist die Karte im Verstärker verbaut, lässt sich diese sofort und ohne zusätzliche Installation von Software unter Mac OS als weiteres Audio-Ausgabegerät nutzen, unter Windows kann nach Installation der entsprechenden Treiber-Software ebenfalls schnell und einfach Musik über den DAC wiedergegeben werden. Accuphase gibt auf seiner Produktseite zum DAC-40 an, dass die Karte unter Windows oder Mac OS betrieben werden kann. Ob die Karte aber z.B. auch unter Linux funktioniert, für das es ja auch sehr viele gute Player und andere Musikverwaltungs- oder Abspielsoftware gibt, ist auf der Produktseite nicht vermerkt und auch im Netz finden sich dazu keine Informationen bzw. nur sehr versteckte Hinweise. Der DAC-40 von Accuphase kann aber sehr wohl und vor allem sehr gut und einfach unter Linux betrieben werden…

Schließt man den DAC über ein USB-Kabel an einem Linux-Rechner an, in meinem Fall ein Ubuntu 14.04.2 LTS mit Kernel 3.16.0-36-generic x86_64, gibt das lsusb Kommando Folgendes aus:

cs@apu:~$ lsusb
Bus 003 Device 002: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 005: ID 21ed:901a
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
cs@apu:~$

Noch nicht wirklich aussagekräftig, ein dmesg hilft jedoch weiter:

cs@apu:~$ dmesg | tail -n 15
[616903.395618] usb 1-5: new high-speed USB device number 5 using ehci-pci
[616903.529772] usb 1-5: config 1 has an invalid interface number: 3 but max is 2
[616903.529791] usb 1-5: config 1 has an invalid interface number: 3 but max is 2
[616903.529800] usb 1-5: config 1 has an invalid interface number: 3 but max is 2
[616903.529808] usb 1-5: config 1 has an invalid interface number: 3 but max is 2
[616903.529817] usb 1-5: config 1 has no interface number 1
[616903.530781] usb 1-5: New USB device found, idVendor=21ed, idProduct=901a
[616903.530791] usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[616903.530799] usb 1-5: Product: Accuphase USB Audio
[616903.530807] usb 1-5: Manufacturer: Accuphase Lab, Inc.
[616903.536116] input: Accuphase Lab, Inc. Accuphase USB Audio as /devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5:1.0/0003:21ED:901A.0003/input/input4
[616903.536472] hid-generic 0003:21ED:901A.0003: input,hidraw0: USB HID v1.00 Device [Accuphase Lab, Inc. Accuphase USB Audio] on usb-0000:00:12.2-5/input0
cs@apu:~$

Der DAC-40 wird also problemlos als USB-Soundkarte erkannt, auch wenn das lsusb Kommando nicht alle Informationen zum Device ausgibt. Es spricht somit nichts dagegen, den DAC auch unter Linux zu nutzen und z.B. als Soundkarte mittels alsa oder pulse zu konfigurieren und zu steuern.

Nutzung des DAC-40 mit squeezelite und dem Logitech Media Server

Eine sehr mächtige, quelloffene und featurereiche Abspielsoftware für Musik ist der Logitech Media Server. Mittels eines Softwareplayers kann Musik, die über den Logitech Media Server bereitgestellt bzw. gestreamt wird, auch an einen DAC übergeben werden.

Z.B. unterstützt der Softwareplayer SqueezeLite, von dem es hier fertige Builds für verschiedene Betriebssysteme zum Herunterladen gibt, die folgenden Wiedergabemöglichkeiten von Musik über den Accuphase DAC-40:

cs@apu:~$ squeezelite -l
Output devices:
  null                           - Discard all samples (playback) or generate zero samples (capture)
  default:CARD=Audio             - Accuphase USB Audio, USB Audio - Default Audio Device
  sysdefault:CARD=Audio          - Accuphase USB Audio, USB Audio - Default Audio Device
  front:CARD=Audio,DEV=0         - Accuphase USB Audio, USB Audio - Front speakers
  surround40:CARD=Audio,DEV=0    - Accuphase USB Audio, USB Audio - 4.0 Surround output to Front and Rear speakers
  surround41:CARD=Audio,DEV=0    - Accuphase USB Audio, USB Audio - 4.1 Surround output to Front, Rear and Subwoofer speakers
  surround50:CARD=Audio,DEV=0    - Accuphase USB Audio, USB Audio - 5.0 Surround output to Front, Center and Rear speakers
  surround51:CARD=Audio,DEV=0    - Accuphase USB Audio, USB Audio - 5.1 Surround output to Front, Center, Rear and Subwoofer speakers
  surround71:CARD=Audio,DEV=0    - Accuphase USB Audio, USB Audio - 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
  iec958:CARD=Audio,DEV=0        - Accuphase USB Audio, USB Audio - IEC958 (S/PDIF) Digital Audio Output
  dmix:CARD=Audio,DEV=0          - Accuphase USB Audio, USB Audio - Direct sample mixing device
  dmix:CARD=Audio,DEV=1          - Accuphase USB Audio, USB Audio #1 - Direct sample mixing device
  dsnoop:CARD=Audio,DEV=0        - Accuphase USB Audio, USB Audio - Direct sample snooping device
  dsnoop:CARD=Audio,DEV=1        - Accuphase USB Audio, USB Audio #1 - Direct sample snooping device
  hw:CARD=Audio,DEV=0            - Accuphase USB Audio, USB Audio - Direct hardware device without any conversions
  hw:CARD=Audio,DEV=1            - Accuphase USB Audio, USB Audio #1 - Direct hardware device without any conversions
  plughw:CARD=Audio,DEV=0        - Accuphase USB Audio, USB Audio - Hardware device with all software conversions
  plughw:CARD=Audio,DEV=1        - Accuphase USB Audio, USB Audio #1 - Hardware device with all software conversions

cs@apu:~$

Der folgende Aufruf von SqueezeLite startet den Softwareplayer und macht ihn als Abspielgerät für den Logitech Media Server unter dem Namen „SqueezeLite“ nutzbar. Die Option „-o hw:CARD=Audio,DEV=0“ wählt als Übergabemethode an den Accuphase DAC-40 die direkte Wiedergabe der Musik ohne irgendeine Konvertierung des Streams:

cs@apu:~$ ./squeezelite -o hw:CARD=Audio,DEV=0 -n Squeezelite-Apu

ssh mit einem Screenreader nutzen

Das Problem mit ssh und den Screenreadern

In der heutigen Zeit ist es nicht mehr ungewöhnlich für bestimmte Dienste oder Anwendungsfelder einen eigenen Home- oder root-Server zu betreiben, auf dem Linux als Betriebssystem eingesetzt wird. Egal ob es um die heimische Medienzentrale oder den eigenen VServer für die eigene Website und die privaten Mailpostfächer geht, früher oder später möchte oder muss man auf die Maschine, die oft über keinen eigenen Monitor oder keine eigene Tastatur verfügt oder sogar nichtmal in den eigenen Räumlichkeiten steht, zugreifen, um auf einer Shell z.B. bestimmte Konfigurationsarbeiten durchzuführen. Das Mittel der Wahl für diesen entfernten Zugriff ist ssh, welches einerseits durch die Verwendung einer verschlüsselten Verbindung für die nötige Sicherheit während des Zugriffs sorgt, und andererseits auch mit vielen Tools z.B. zum Austausch von Dateien daher kommt.

So nützlich ssh für entfernte Zugriffe auf Linux-Server auch ist, so problematisch ist aber unter Umständen leider auch die Nutzung für blinde oder sehbehinderte Personen, die einen Screenreader für ihre Arbeit am Computer benötigen. Je nachdem, welches Betriebssystem und welcher Screenreader auf dem Client, also auf dem Rechner von dem aus der Zugriff stattfinden soll, eingesetzt wird, ist das Arbeiten auf der entfernten Maschine und die Nutzung von Programmen auf dem Server daher schwierig bis unmöglich.

Der Hauptgrund für diese Schwierigkeiten ist die Tatsache, dass der lokal auf dem Client installierte Screenreader nicht die benötigten Informationen oder Bildschirmattribute über die Programme auslesen kann, die auf dem entfernten Server ausgeführt oder genutzt werden. Für das lokal installierte Bildschirmleseprogramm läuft lediglich ein ssh-Client, was jedoch innerhalb der Verbindung, die mit Hilfe dieses ssh-Clients aufgebaut wurde, genau stattfindet, bleibt dem Screenreader verborgen. Es wird lediglich die ganz normale Bildschirmausgabe vorgelesen, also die Dinge, die während der Verbindung auf dem Bildschirm angezeigt werden, ob aber z.B. ein Menüpunkt in einem Programm, das auf dem entfernten Linux-Server gestartet wurde, angezeigt oder hervorgehoben dargestellt wird, kann das lokal installierte Bildschirmleseprogramm nicht erkennen und somit auch nicht entsprechend verarbeiten und deshalb dann z.B. auch nicht mehr richtig den Cursor verfolgen, Menüeinträge entsprechend vorlesen, etc.

Prinzipiell kann festgestellt werden, dass Screenreader, die für grafische Betriebssysteme wie Windows oder Mac OS konzipiert wurden, schlechter für Aufgaben funktionieren, für die per ssh auf entfernte Maschinen zugegriffen werden muss. Dies liegt, wie oben bereits angesprochen, daran, dass die Bildschirmleseprogramme nicht an die benötigten Informationen kommen bzw. nicht die verschiedenen Schnittstellen zum Betriebssystem auslesen können, die sie für eine gute Aufbereitung des Bildschirminhaltes benötigen. Wird auf dem Client jedoch ein textbasiertes Betriebssystem mit einem dafür verfügbaren Screenreader eingesetzt, also z.B. ebenfalls ein Linux, dann ist das Arbeiten mit ssh oft ohne Probleme möglich.

Im folgenden sollen kurz die Zugriffsmöglichkeiten von verschiedenen Client-Systemen aus aufgeführt und die damit einhergehenden Vor- und Nachteile angesprochen werden.

Linux

Linux ist schon seit langer Zeit auch für blinde und sehbehinderte Menschen gut mit screenreader nutzbar. Für die textbasierte Umgebung, die sog. Konsole, Shell oder das Terminal, gibt es mehrere Bildschirmleseprogramme, die hervorragend funktionieren und ein produktives Arbeiten ohne Einschränkung mit Hilfe einer Braillezeile, einer Sprachausgabe oder einer Kombination aus beiden ermöglichen. Die am meisten verbreitetsten Screenreader für eine textbasierte Linux-Umgebung sind brltty, OpenBlinux (ehemals Sbl) oder eSpeak. Möchte man als blinder Anwender in einer grafischen Benutzeroberfläche unter Linux arbeiten, so kann zur Zeit als Screenreader nur Orca mit der grafischen Benutzeroberfläche Gnome bzw. einigen Abkömmlingen dieser grafischen Oberfläche eingesetzt werden.

Bezüglich des Zugriffs per ssh gilt für linux-Clients, dass von einer textbasierten Umgebung völlig problemlos und ohne Einschränkungen ein Arbeiten auf entfernten Systemen mit Hilfe des von der jeweiligen Distribution mitgelieferten ssh-Clients möglich ist. Alle Bildschirminhalte werden angezeigt, in den auf dem entfernten System gestarteten Programmen funktioniert in der Regel die Cursorverfolgung, etc.

Wird Orca als Screenreader für die grafische Oberfläche Gnome verwendet, so kann innerhalb eines Terminal-Fensters ebenfalls der standardmäßig installierte ssh-Client der Distribution genutzt werden, allerdings kann es hier, wie bei der Arbeit mit anderen grafischen Betriebssystemen auch, zu den bereits oben angesprochenen Problemen mit der richtigen Interpretation des Bildschirminhaltes und zu Problemen mit der Verfolgung des Cursors kommen :-(.

Mac OS

Mac OS kann von blinden Menschen mit Hilfe des Screenreaders VoiceOver genutzt werden. VoiceOver wurde vorrangig für die Verwendung innerhalb der grafischen Bedienungsoberfläche von Mac OS konzipiert, es lassen sich damit aber auch rudimentäre Arbeiten im Text Terminal, das sich innerhalb des Dienstprogramme-Ordners in den Applikationen befindet, durchführen.

Wird ein Text Terminal gestartet, so steht auf jedem Mac OS System ein normaler ssh-Client für die Kommandozeile zur Verfügung. Weiterhin können über den App Store oder aus dem Internet diverse alternative ssh-Clients geladen und installiert werden, wobei ich hier noch keinen gefunden habe, der besser mit VoiceOver arbeitet, als der vom System standardmäßig mitgebrachte ssh-Client für die Kommandozeile.

Wird ein Text Terminal gestartet, so liest VoiceOver den Inhalt des Fensters ganz gut und problemlos vor, solange keine komplizierteren oder größeren Ausgaben erfolgen. Dabei kann zeilenweise in der Bildschirmausgabe navigiert werden, indem die Pfeiltasten zusammen mit der VoiceOver-Tastenkombination genutzt werden.

wird jedoch einmal viel Text im Terminal ausgegeben, so ist der Screenreader schnell überlastet und funktioniert selbst nach dem Umschalten in ein grafisches Fenster oft erstmal nicht mehr richtig. Werden auf dem entfernten Rechner Programme gestartet, so kommt es auch mit VoiceOver leider zu den bereits oben angesprochenen Problemen und der Cursor-Fokus geht verloren, hervorgehobene Bildschirminhalte werden nicht erkannt, etc. Selbst Programme, deren Oberfläche recht einfach aufgebaut ist, können mit VoiceOver nicht zuverlässig auf dem entfernten Server genutzt werden.

VoiceOver macht also nur für kleinere Arbeiten auf entfernten Systemen Sinn, mal einen Dienst durchstarten oder etwas im Log suchen geht ganz gut, sobald jedoch eine Datei mit Hilfe eines Editors bearbeitet werden soll, beginnen bereits die Schwierigkeiten und das Arbeiten auf dem entfernten System wird problematisch und ist nur mit viel Übung und Geduld möglich :-(.

Windows

Auf Windows-Systemen ist standardmäßig kein ssh-Client vorhanden, sodass dieser erst installiert werden muss. Der wohl am häufigsten eingesetzte ssh-Client für Windows, der mit einer grafischen Benutzeroberfläche daher kommt und alle für ssh benötigten Features beinhaltet, ist Putty.

Obwohl die Oberfläche von Putty selbst mit den gängigsten Windows-Screenreadern gut bedienbar ist, treten bei den ssh-Sitzungen leider auch hier die Probleme mit der schlechten Cursorverfolgung usw. auf, wie sie weiter oben bereits beschrieben wurden. Je nach eingesetztem screenreader und je nach der Menge der eigenen Geduld und Übung ist mit Putty zwar schon ein einigermaßen sinnvolles Arbeiten möglich, wirklich komfortabel ist die Lösung jedoch nicht.

Alternativ kann unter Windows auch der ssh-Client des Cygwin-Projekts eingesetzt werden. Das Cygwin Projekt versucht viele nützliche Tools, die es so nur auf Linux-Systemen gibt, auch für Windows lauffähig zu machen, u.a. natürlich auch ssh.

Über diesen Link kann ein zip-File mit allen ausführbaren Dateien und Bibliotheken, die ein funktionsfähiger ssh-Client aus dem Cygwin Projekt für die Verwendung unter Windows benötigt, heruntergeladen werden. Nachdem das Archiv gespeichert und entpackt wurde, befinden sich alle Dateien in einem Ordner namens „cygwinssh“. Die ausführbahren Dateien, also z.B. ssh.ex oder scp.exe, sind reine Tools für die Kommandozeile, d.h. sie müssen in einer Dos-Box unter Windows verwendet werden.

Meine Erfahrung ist, dass der Zugriff per ssh auf entfernte Systeme mit dem ssh-Client von Cygwin besser funktioniert, als wenn Putty verwendet wird., ich muss aber auch dazu sagen, dass ich selten unter Windows mit ssh arbeite und daher bestimmt nicht alle Tricks und Kniffe kenne, die ein komfortableres Arbeiten z.B. mit Putty ermöglichen. Trotzdem ist es vielleicht für den einen oder anderen einen Versuch wert, auch mal den ssh-Client von Cygwin auszuprobieren :-).

Fazit

Meine ganz persönliche Meinung für das Arbeiten per ssh auf entfernten Systemen mit Hilfe eines Screenreaders ist, dass dies wirklich komfortabel und produktiv nur mit einem textbasierten Linux-Client durchgeführt werden kann. Alle anderen Varianten, also ssh via Putty oder Cygwin von Windows aus, oder mit dem ssh-Client im Terminal unter Mac OS, kommen nur für kleinere Tätigkeiten wie das Durchstarten eines Dienstes o.ä. in Frage, bei größeren Arbeiten, wie z.B. das Editieren längerer Konfigurationsdateien oder das Erstellen von Skripten, stößt man auf Grund der mangelnden Unterstützung des Bildschirmleseprogramms schnell an Grenzen. Natürlich ist die Einarbeitung und die Installation und Konfiguration eines linux-Systems, das für diese Arbeiten verwendet werden soll, aufwändig und zeitintensiv, doch benötigt man ssh wirklich häufig und auch für umfangreichere Arbeiten, lohnt sich dieser Aufwand.

Persönlich verwende ich entweder ein dirrekt auf meinem Laptop installiertes Debian Linux mit dem Screenreader OpenBlinux bzw. sbl, oder eine virtuelle Maschine mit der gleichen Kombination aus Debian und OpenBlinux unter Mac OS.