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