USB-Probleme in OS X 10.11

Seite 3: Knacksende Tuner und streikende Scanner

Inhaltsverzeichnis

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: 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.

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.