Mac-OS X HoRNDIS



Mac-OS X HoRNDIS ~ Microsoft RNDIS

Der USB-tethering Treiber HoRNDIS für Mac-OS X 10.10 von Joshua Wise funktioniert bei ersten Tests bis auf eine Kleinigkeit einwandfrei!

  • Er akzeptiert USB-RNDIS Devices mit:

    function class / subclass / protocolvalue
    INTERFACE_CLASS_WIRELESS0xE0
    INTERFACE_SUBCLASS_RF_CONTROL0x01
    INTERFACE_PROTOCOL_RF_RNDIS0x02

    im Interface-Association- und im ersten Interface-Descriptor (von usb.org defined class codes)
    als auch die von Microsoft angegebene Deklaration (Microsoft RNDIS declaration).

    function class / subclass / protocolvalue
    INTERFACE_CLASS_CDC_CONTROL0x02
    INTERFACE_SUBCLASS_CDC_ACM0x02
    INTERFACE_PROTOCOL_VENDOR_SPECIFIC0xff

    Die Microsoft Deklaration ist im Source-Code als "those stupid Galaxy S IIs" kommentiert.
    Die weiteren RNDIS Deklarationen (von usb.org defined misc class codes):

    function class / subclass / protocolvalue
    INTERFACE_CLASS_MISC0xEF
    INTERFACE_SUBCLASS_MISC_RNDIS0x04
    INTERFACE_PROTCODE_RNDIS_...0x01 ... 0x07

    werden nicht unterstützt.
  • Einzig die Verwendung des Interrupt-Endpoints ist etwas unscharf. Dieser Endpunkt soll dem Host mitteilen, daß die Antwort auf den letzten EP0-Encapsulated-Request bereit zur Abholung ist, um den EP0 von zwischenzeitlich unnötigen Polls zu befreien.

  • Zu Beachten ist bei USB-Devices mit alternate configs wie "RNDIS / CDC-Ethernet / EEM", daß RNDIS die letzte Wahl des Mac-OS X Betriebssystem ist.

    Von der Realisierung kann sich Linux ruhig etwas "abschauen" :-) !

    Stand 07/2015