USB-Probleme in OS X 10.11
Seite 3: 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.
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: 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, spezialisierten Scanner, der fährt möglicherweise 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.