zurück zum Artikel

USB-Probleme in OS X 10.11

Artikel

Eigentlich sollte El Capitan das nächste Snow Leopard werden – zuverlässig und gut. Doch mit USB-Geräten gibt es zahlreiche Probleme, und zwar über Geräteklassen hinweg. Dabei hatte Apple den USB-Stack extra neu geschrieben, um die Stabilität zu erhöhen.

Artikel aus Mac & i Heft 1/2016 [1], S. 138

Stellen Sie sich vor, Sie installieren ein kostenloses Betriebssystem-Upgrade und anschließend funktioniert Ihr Scanner nicht mehr. Sie fragen beim Hersteller nach, doch der antwortet nur lapidar, das sei normal und komme nur bei ­älteren Geräten vor. Apple hingegen geht auf die Anfrage gar nicht erst ein und lässt offen, ob künftige Updates das Problem beheben. Genau so erging es in den letzten Monaten vielen, die auf OS X 10.11 (El ­Capitan) umgestiegen sind.

Zahlreiche Leser schrieben Mac & i, dass ihre Peripherie seit dem Update nicht mehr richtig arbeite. Ein Blick in die Support-Foren großer und kleiner Hersteller zeugt davon, dass es sich nicht um Einzelfälle handelt. Vielmehr scheinen unterschiedlichste USB-Geräte von Scannern über TV-Sticks bis hin zum Kleinst-Computer Arduino ihren Dienst nur noch widerwillig zu tun oder ganz zu streiken. Anbieter von Audio-Soft- und -Hardware, darunter Steinberg und Native Instruments, warnten ihre Kunden [2] schon vor der Veröffent­lichung von El Capitan vor dem Upgrade.

Mängelliste

Besonders häufig beschreiben frustrierte Nutzer, dass bestimmte Geräte gar nicht erst vom System erkannt werden. Betroffen sind USB-Speicher-Sticks ebenso wie -Hubs und andere Peripherie. Wir konnten das Phänomen sogar mit einer USB-Tastatur von Apple nachvollziehen. In einem anderen Fall erkannte OS X 10.11 am USB-Hub DUB-H7 von D-Link keine Geräte, solange der an seinem Netzteil hing. Passiv betrieben klappte die Erkennung, doch dann reicht die Stromversorgung nicht für alle Ports.

Bei UMTS-Sticks haben wir Probleme mit den Treibern beobachtet. Trotz scheinbar erfolgreicher Installation funktioniert die neue Hardware nicht richtig. TV-Apps haben seit dem Update mit Knacksern und Aussetzern zu kämpfen. Teilweise frieren Bild und Ton für mehrere Sekunden ein.

Nur ein Beispiel: ältere Scanner wie Canons LiDE 90 funktionieren unter El Capitan nicht zuverlässig. Spätestens nach zwei Seiten bricht der Scan ab.

Manche Scanner scheinen das Upgrade auf El Capitan ebenfalls nur schlecht wegzustecken. So schrieb uns ein Leser, dass sein nicht mehr ganz frischer CanoScan F4400 nur noch ein oder zwei Blätter scannen will, bevor das Scan-Programm die Verbindung zum Gerät verliert und einfriert. Ein Neustart der Anwendung bringt nichts, aber wenn der Leser den CanoScan vom Mac trennt und wieder anschließt, ist der Scanner wieder einsatzbereit – für die nächsten zwei Seiten. Bei uns war es mit einem neueren Canon LiDE 90 ebenso.

Solche Ratschläge sind wenig hilfreich.

Darauf angesprochen, konnte uns Canon nicht sagen, was das Scanner-Stottern auslöste. Man bat aber um Verständnis dafür, dass alte Hardware ab einem gewissen Zeitpunkt nicht mehr unterstützt werde. Neuere Geräte würden hingegen noch mit aktuellen Treibern versorgt, sodass bei ihnen keine Probleme zu erwarten seien; betroffene Kunden könnten ja ein solches Modell kaufen. Ähnlich reagierten auch Epson, Brother und HP. Aus Firmensicht mag das nachvollziehbar sein, für Nutzer ist es eine unbefriedigende Antwort.

Im Audio-Bereich brachte El Capitan ebenfalls diverse Soft- und Hardware ins Straucheln. Inzwischen hat sich die Lage allerdings entspannt. Die Hersteller arbeiten mit Apple daran, möglichst schnell funktionierende Versionen ihrer Apps und Treiber herauszubringen. So wurde etwa ein Fehler behoben, aufgrund dessen einige Plug-ins von Native Instruments wegen einer zu strengen Validierung von der Musik-Anwendung Logic Pro X nicht akzeptiert wurden. Zum Redak­tionsschluss boten unter anderem auch AKAI, Apogee, Roland und Steinberg bereits aktuelle Releases an.

Der US-amerikanische Händler Sweetwater hat auf seiner Webseite [3] eine umfangreiche Kompatibilitätsliste zusammengestellt, die den aktuellen Freigabestatus vieler Hersteller von Musik-Soft- und -Hardware zeigt. Zudem ist zu hoffen, dass auch zukünftige Updates für OS X 10.11 für weitere Besserung sorgen – das gilt für sämtliche andere USB-Peripherie.

Ursachenforschung

Auslöser der Probleme ist in den meisten Fällen der USB-Stack, also die Komponente des Betriebssystems, die sich um die Kommunikation mit der Peripherie kümmert. In den Release Notes zu OS X 10.11 [4] erläutert Apple, man habe ihn in El Capitan „komplett neu designed“, um Stabilität und Performance gegenüber OS X 10.10 zu verbessern. Dennoch habe sich nicht viel geändert: Anwendungen, die IOUSBLib-APIs ­verwenden, sollten ebenso unverändert funktionieren wie Treiber, die von IOUSBDevice und IOUSBInterface Gebrauch machen.

Ganz so einfach ist die Sache aber nicht, denn manche Funktionen arbeiten anders als zuvor, haben neue Namen bekommen oder sind weniger tolerant, wenn es um Fehler oder Schludrigkeiten geht.

Trotz komplett neu geschriebenen USB-Stacks sollen laut Apple alle Geräte wie bisher funktionieren – eigentlich …

Verbindungsprobleme

Das fängt schon bei einfachsten Faktoren wie der Kabelverbindung an: Ein Entwickler berichtete uns, dass El Capitan seiner Erfahrung nach viel empfindlicher auf minderwertige Kabel reagiere. Hochfrequente Einstrahlungen durch Laserdrucker, Trafos von Halogenlampen und Ähnlichem brächten OS X 10.11 ebenfalls leicht aus dem Tritt. So komme es zur unzuverlässigen Erkennung von Geräten.

Die hat noch einen weiteren Grund, denn Apple hat offenbar an der Benennung von USB-Services gedreht: Projekte, die bislang die API-Funktion IOServiceGetMatching­Services verwendet haben, um USB-Geräte vom Typ Communication Device Class (CDC) zu erkennen, erhalten in El Capitan unter Umständen eine leere Ergebnisliste zurück – IOServiceNameMatching(„AppleUSBCDC“) beschreibt keinen bekannten IO-Service mehr.

So hat etwa der Entwickler des EggBot [5], einer Art Arduino-betriebener Drucker, der sphärische Objekte bemalen kann – etwa Ostereier – , in seinem Code auf die Geräte-Erkennung via pyserial umgestellt, um dem Problem aus dem Weg zu gehen und weiterhin seriell kommunizieren zu können. Auch Node.js, eine serverseitige Plattform zum Betrieb von Netzwerkanwendungen, scheint betroffen gewesen zu sein.

Schludrigkeiten

Das mit El Capitan eingeführte Sicherheitsfeature „System Integrity Protection“, oft schlicht „rootless“ genannt, soll Schadsoftware (oder unbedachte User) davon abhalten, Systemdateien zu verändern. Zu diesem Zweck verhindert es Veränderungen an bestimmten Ordnern. In diese Verzeichnisse wollen offenbar manche Gerätetreiber schreiben – und werden von SIP daran gehindert. Mal bricht die Installation mit einer Fehlermeldung ab, mal läuft sie kommentarlos durch, doch am Ende funktioniert die Hardware nicht. Hier sind die Anbieter in der Pflicht, ihre Treiber so anzupassen, dass sie sich an Apples Vorgaben halten.

Knacksende Tuner und streikende Scanner

Oft müssen die Hersteller für nicht von Apple dokumentierte Änderungen im USB-Stack Workarounds finden. Equinux, Hersteller diverser USB-TV-Tuner, ist etwa auf ein Problem bei der Kommunikation mit isochronen Endpunkten gestoßen. Diese regeln den kontinuierlichen Datentransfer zwischen USB-Gerät und Mac und handeln dafür eine garantierte Bandbreite mit ­fester, niedriger Latenz aus.

Der TV-Tuner Tizi funktionierte anfangs auch nicht unter OS X 10.11. Der deutsche Hersteller Equinux hat den Fehler jedoch gefunden und reagiert.

Apple hat hier kurzerhand einen Parameter anders interpretiert, der die Puffergröße festlegt. maxPacketSize im API-Aufruf GetPipeProperties() hatte nämlich bis OS X 10.10 den Multiplikator des Endpunktes einkalkuliert, der angibt, wie oft Daten innerhalb einer bestimmten Zeit übermittelt werden können – mit 10.11 enthält maxPacketSize auf einmal den Wert ohne Multiplikator. Weiß ein Entwickler das nicht, kann in vielen Fällen nur ein Bruchteil der Daten übertragen werden, da der Datenpuffer zu knapp bemessen wird. Die Folge: Bild und Ton geraten ins Stocken oder frieren komplett ein.

Genau dies trat bei der tizi-App bis Version 1.3.2 auf. Seit dem Update auf 1.3.3 berücksichtigt die App den unveränderlichen Multiplikator des isochronen Endpunkts von sich aus. Sollte Apple das Verhalten von GetPipeProperties() in Zukunft jedoch erneut ändern, muss Equinux wieder ein Update anbieten.

Eine mögliche Erklärung für die Scanner-Probleme unter OS X lieferte uns ExactCODE, ­Hersteller des Tools ExactScan [6]: Durch eine Änderung in der Klasse IOUSBDeviceInterface im vom Programmierer übergebenen RunLoop könnten unerwünschte Events ­auftreten. Der RunLoop wird genutzt, um Fertigstellungs-Benachrichtigungen asynchron zuzustellen. Das könnte auch bei den Canon-Scannern der Fall sein. Die ­Anwendung wartet auf die ausstehende Benachrichtigung, gibt auf und meldet, der Scanner reagiere nicht.

Resümee

Apple trägt die Hauptschuld für die USB-Misere. Immerhin hat Cupertino nicht nur kommentarlos einiges am USB-Stack umgekrempelt, sondern es darüber hinaus versäumt, diese Änderungen rechtzeitig sauber zu dokumentieren. Diverse Firmen, die wir kontaktieren, zeigten sich über dieses Vorgehen frustriert. Doch auch einige Hersteller und Entwickler haben geschlafen (RunLoops) oder geschlampt (SIP).

Letztlich muss sich aber auch der Mac-User die Frage stellen, was er erwarten darf. Sicher, neue Versionen von OS X mit spannenden neuen Features bekommt er seit einigen Jahren kostenfrei – das macht sie aber noch lange nicht zu Pflicht-Updates. Es besteht eben jederzeit die Gefahr, dass Apple tiefgreifende Veränderungen am Betriebssystem vornimmt, die bestimmte Funktionen deaktivieren oder anders interpretieren und damit Hard- oder Software unbrauchbar machen.

Wer also auf ein bestimmtes Gerät angewiesen ist, etwa einen teuren, spezia­lisierten Scanner, der fährt möglicher­weise mit einem dedizierten System besser, auf dem eine noch kompatible Version von OS X läuft – oder installiert die neue Version parallel und schaltet beim Booten je nach Bedarf um (siehe Abschnitt unten: "Was tun be). Möchte man hingegen ausschließlich das aktuelle Release nutzen, muss man sich möglicherweise von älterer Hardware ­verabschieden.

Was tun bei USB-Problemen?

Zunächst kann es helfen, den Anschluss (am Mac) und/oder das Verbindungskabel zu wechseln, einen USB-Hub zwischen Mac und die Peripherie zu stecken oder auch einen bereits vorhan­denen USB-Hub zu entfernen. Das Zurücksetzen des NVRAM mit der Tastenkombination Alt+Cmd+P+R kurz nach einem Neustart belebt möglicherweise ebenfalls manches Gerät wieder.

Prüfen Sie, ob eine neuere OS-X-Version verfügbar ist. Solch ein Update mag Ihr Problem lösen. So wird seit 10.11.2 einer unserer USB-Speicher-Sticks mit Phison-Controller wieder erkannt.

Suchen Sie beim Hersteller nach aktuellen Treibern oder neueren Versionen von Apps. Gerade bei neuerer Hardware stehen die Chancen sehr gut, dass das jüngste Release Fehler beseitigt.

Bis es neue Treiber gibt, die Apples System Integrity Protection berücksichtigen, können Sie sich auf andere Weise behelfen: Schalten Sie SIP einfach für die Dauer der Installation ab. Starten Sie dazu Ihren Mac neu und halten dabei die Tastenkombination Cmd+R gedrückt, um von der Recovery-Partition zu booten. Dort rufen Sie über das Menü Dienstprogramme am oberen Bildschirm das Terminal auf. In dessen Fenster geben sie csrutil disable ein, starten den Mac neu und booten wie gewohnt OS X. Nun können Sie den Treiber installieren. Anschließend sollten Sie SIP wieder aktivieren. Dazu geben Sie im Terminal der Recovery-Umgebung den Befehl

csrutil enable 

ein – schon ist das System wieder abgesichert.

Wenn Sie einen Scanner besitzen, für den es keinen aktuellen Herstellertreiber gibt, lohnt ein Versuch mit Tools wie ExactScan [7] oder VueScan [8]. Von beiden stehen kostenlose, zeitlich beschränkte Demo-Versionen zum Download bereit. Die beiden im Artikel ­erwähnten Canon-Modelle erkannten sie leider nicht.

Kostet Geld, erweckt aber – mit etwas Glück – den alten Scanner wieder zum Leben unter OS X 10.11: VueScan.

Sind Sie partout auf ein bestimmtes Gerät angewiesen, können Sie eine alte Version von OS X parallel zu El Capitan installieren. Richten Sie mit dem Festplattendienstprogramm eine neue Partition ein. Laden Sie dann aus dem App Store den Installer des letzten OS-X-Releases herunter, für das es noch Treiber gibt. ­Anschließend ­erstellen Sie mit einem Tool wie DiskMakerX [9] oder mit Terminal-­Befehlen (siehe Mac & i Heft 5/2015, S. 160 [10]) einen bootfähigen USB-Stick, von dem Sie das OS installieren. Dazu starten Sie den Mac mit gedrückter Alt-Taste neu, wählen dann den Stick als Startlaufwerk und installieren das alte OS X wie ­gewohnt in der neu angelegten Partition. Beim Einschalten ­halten Sie dann die Alt-Taste gedrückt, um zwischen den Systemen zu wechseln. Vergessen Sie nicht, alle verfügbaren Sicherheits-Updates einzuspielen!

So bitter es ist: Wenn all dies nichts hilft und ein OS-X-Down­grade für Sie nicht infrage kommt, bleibt als letzter Ausweg nur, ein neueres Gerät anzuschaffen, das mit El Capitan kompatibel ist und vom Hersteller noch mit Treibern versorgt wird.


URL dieses Artikels:
https://www.heise.de/-3181776

Links in diesem Artikel:
[1] http://www.heise.de/mac-and-i/heft/2016/1/4/
[2] http://www.heise.de/newsticker/meldung/Native-Instruments-und-Steinberg-warnen-Mac-Musiker-vor-Update-auf-OS-X-10-11-El-Capitan-2834179.html
[3] http://www.sweetwater.com/sweetcare/articles/el-capitan-mac-os-x-10-11-compatibility-information/
[4] https://developer.apple.com/library/mac/releasenotes/MacOSX/WhatsNewInOSX/WhatsNewInOSX.html
[5] https://github.com/evil-mad/EggBot/issues/31
[6] http://exactscan.com/de/
[7] http://exactscan.com/de/
[8] http://www.hamrick.com/
[9] http://diskmakerx.com/
[10] http://www.heise.de/mac-and-i/heft/2015/5/160/