Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doesn't detect HTC Desire S running CyanogenMod #9

Closed
grishka opened this issue Jan 21, 2013 · 15 comments
Closed

Doesn't detect HTC Desire S running CyanogenMod #9

grishka opened this issue Jan 21, 2013 · 15 comments

Comments

@grishka
Copy link

grishka commented Jan 21, 2013

When I connect Desire S to my Retina MacBook Pro running OS X 10.8.2, it doesn't get detected as a network device, as if driver wasn't installed. USB probe output follows

High Speed device @ 7 (0x1D110000): .............................................   Composite device: "Android Phone"
    Port Information:   0x1018
           Not Captive
           External Device
           Connected
           Enabled
           Connected to External Port
    Number Of Endpoints (includes EP0):   
        Total Endpoints for Configuration 1 (current):   6
    Device Descriptor   
        Descriptor Version Number:   0x0200
        Device Class:   0   (Composite)
        Device Subclass:   0
        Device Protocol:   0
        Device MaxPacketSize:   64
        Device VendorID/ProductID:   0x0BB4/0x0FFC   (HTC Corporation)
        Device Version Number:   0x0228
        Number of Configurations:   1
        Manufacturer String:   2 "HTC"
        Product String:   3 "Android Phone"
        Serial Number String:   4 "HT13PTJ08628"
    Configuration Descriptor (current config)   
        Length (and contents):   98
            Raw Descriptor (hex)    0000: 09 02 62 00 03 01 00 80  FA 08 0B 00 02 02 06 FF  
            Raw Descriptor (hex)    0010: 07 09 04 00 00 01 02 02  FF 05 05 24 00 10 01 05  
            Raw Descriptor (hex)    0020: 24 01 00 01 04 24 02 00  05 24 06 00 01 07 05 82  
            Raw Descriptor (hex)    0030: 03 08 00 09 09 04 01 00  02 0A 00 00 06 07 05 81  
            Raw Descriptor (hex)    0040: 02 00 02 00 07 05 01 02  00 02 00 09 04 02 00 02  
            Raw Descriptor (hex)    0050: FF 42 01 00 07 05 83 02  00 02 00 07 05 02 02 00  
            Raw Descriptor (hex)    0060: 02 00 
        Number of Interfaces:   3
        Configuration Value:   1
        Attributes:   0x80 (bus-powered)
        MaxPower:   500 mA
        Interface Association   Communications-Control
            First Interface   0
            Interface Count   2
            Function Class   2   (Communications-Control)
            Function Subclass   6
            Interface Protocol   255
            Function String   7 "RNDIS"
        Interface #0 - Communications-Control ..............................................   "RNDIS Communications Control"
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   2   (Communications-Control)
            Interface Subclass;   2
            Interface Protocol:   255
            Comm Class Header Functional Descriptor   
                Raw Descriptor (hex)   0000: 05 24 00 10 01 
            Comm Class Call Management Functional Descriptor   
                Raw Descriptor (hex)   0000: 05 24 01 00 01 
            Comm Class Abstract Control Management Functional Descriptor   
                Raw Descriptor (hex)   0000: 04 24 02 00 
            Comm Class Union Functional Descriptor   
                Raw Descriptor (hex)   0000: 05 24 06 00 01 
            Endpoint 0x82 - Interrupt Input   
                Address:   0x82  (IN)
                Attributes:   0x03  (Interrupt)
                Max Packet Size:   8  (8 x 1  transactions opportunities per microframe)
                Polling Interval:   9 (256 microframes (32 msecs) )
        Interface #1 - Communications-Data/Unknown Comm Class Model ..............................................   "RNDIS Ethernet Data"
            Alternate Setting   0
            Number of Endpoints   2
            Interface Class:   10   (Communications-Data)
            Interface Subclass;   0   (Unknown Comm Class Model)
            Interface Protocol:   0
            Endpoint 0x81 - Bulk Input   
                Address:   0x81  (IN)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   512
                Polling Interval:   0 ( Endpoint never NAKs)
            Endpoint 0x01 - Bulk Output   
                Address:   0x01  (OUT)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   512
                Polling Interval:   0 ( Endpoint never NAKs)
        Interface #2 - Vendor-specific   
            Alternate Setting   0
            Number of Endpoints   2
            Interface Class:   255   (Vendor-specific)
            Interface Subclass;   66   (Vendor-specific)
            Interface Protocol:   1
            Endpoint 0x83 - Bulk Input   
                Address:   0x83  (IN)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   512
                Polling Interval:   0 ( Endpoint never NAKs)
            Endpoint 0x02 - Bulk Output   
                Address:   0x02  (OUT)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   512
                Polling Interval:   0 ( Endpoint never NAKs)
    Device Qualifier Descriptor   
        Descriptor Version Number:   0x0200
        Device Class   0   (Composite)
        Device Subclass   0
        Device Protocol   0
        Device MaxPacketSize:   64
        Number of Configurations:   1
        bReserved:   0
    Other Speed Configuration Descriptor   
        Length (and contents):   98
            Raw Descriptor (hex)    0000: 09 07 62 00 03 01 00 80  FA 08 0B 00 02 02 06 FF  
            Raw Descriptor (hex)    0010: 07 09 04 00 00 01 02 02  FF 05 05 24 00 10 01 05  
            Raw Descriptor (hex)    0020: 24 01 00 01 04 24 02 00  05 24 06 00 01 07 05 82  
            Raw Descriptor (hex)    0030: 03 08 00 20 09 04 01 00  02 0A 00 00 06 07 05 81  
            Raw Descriptor (hex)    0040: 02 40 00 00 07 05 01 02  40 00 00 09 04 02 00 02  
            Raw Descriptor (hex)    0050: FF 42 01 00 07 05 83 02  40 00 00 07 05 02 02 40  
            Raw Descriptor (hex)    0060: 00 00 
        Number of Interfaces:   3
        Configuration Value:   1
        Attributes:   0x80 (bus-powered)
        MaxPower:   500 mA
        Interface Association   Communications-Control
            First Interface   0
            Interface Count   2
            Function Class   2   (Communications-Control)
            Function Subclass   6
            Interface Protocol   255
            Function String   7 "RNDIS"
        Interface #0 - Communications-Control ..............................................   "RNDIS Communications Control"
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   2   (Communications-Control)
            Interface Subclass;   2
            Interface Protocol:   255
            Comm Class Header Functional Descriptor   
                Raw Descriptor (hex)   0000: 05 24 00 10 01 
            Comm Class Call Management Functional Descriptor   
                Raw Descriptor (hex)   0000: 05 24 01 00 01 
            Comm Class Abstract Control Management Functional Descriptor   
                Raw Descriptor (hex)   0000: 04 24 02 00 
            Comm Class Union Functional Descriptor   
                Raw Descriptor (hex)   0000: 05 24 06 00 01 
            Endpoint 0x82 - Interrupt Input   
                Address:   0x82  (IN)
                Attributes:   0x03  (Interrupt)
                Max Packet Size:   8
                Polling Interval:   32 ms
        Interface #1 - Communications-Data/Unknown Comm Class Model ..............................................   "RNDIS Ethernet Data"
            Alternate Setting   0
            Number of Endpoints   2
            Interface Class:   10   (Communications-Data)
            Interface Subclass;   0   (Unknown Comm Class Model)
            Interface Protocol:   0
            Endpoint 0x81 - Bulk Input   
                Address:   0x81  (IN)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   64
                Polling Interval:   0 ms
            Endpoint 0x01 - Bulk Output   
                Address:   0x01  (OUT)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   64
                Polling Interval:   0 ms
        Interface #2 - Vendor-specific   
            Alternate Setting   0
            Number of Endpoints   2
            Interface Class:   255   (Vendor-specific)
            Interface Subclass;   66   (Vendor-specific)
            Interface Protocol:   1
            Endpoint 0x83 - Bulk Input   
                Address:   0x83  (IN)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   64
                Polling Interval:   0 ms
            Endpoint 0x02 - Bulk Output   
                Address:   0x02  (OUT)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   64
                Polling Interval:   0 ms
@jwise
Copy link
Owner

jwise commented Jan 22, 2013

Gee, that's strange; modern versions of the driver should have support for that device built-in. Can you check 'dmesg' after tethering the phone to see if the driver spewed any debug messages in there?

@grishka
Copy link
Author

grishka commented Jan 22, 2013

I had an older version; I've downloaded release 3, installed it and rebooted, still the same.
dmesg output:

AppleUSBCDCACMData: Version number - 4.1.22, Input buffers 8, Output buffers 16
AppleUSBCDC: Version number - 4.1.22
Sandbox: sandboxd(366) deny mach-lookup com.apple.coresymbolicationd
USBMSC Identifier (non-unique): HT13PTJ08628 0xbb4 0xcab 0x228
       0       ff AppleUSBCDCACMControl: configureACM - ACM Control interface has vendor specific protocol
       0        0 AppleUSBCDCACMControl: start - configureACM failed
AppleUSBCDCACMData: Version number - 4.1.22, Input buffers 8, Output buffers 16
AppleUSBCDC: Version number - 4.1.22

@jwise
Copy link
Owner

jwise commented Jan 23, 2013

Huh, that's concerning.

Can I convince you to install the full USB debug kit for your version of OS X? It has some logging features that can help understand what's going wrong in the matching phase.
https://developer.apple.com/hardwaredrivers/

Thanks!
joshua

@grishka
Copy link
Author

grishka commented Jan 23, 2013

What I've tried so far:

  • Connected it to a Windows PC and turned tethering on. It didn't work.
  • Connected it to Ubuntu running in a virtual machine and it worked without any setup (so at least problem is not with the device itself).
  • Installed the driver to my mac mini at office - didn't work too.

Actually, I'm developing for Android and have a lot of different devices so I can test your driver with each of them :)

@jwise
Copy link
Owner

jwise commented Jan 23, 2013

Huh, interesting that it didn't work in Windows!

Yeah, if you could install the USB debug kit, that would be great; I'll write up directions for what to actually do with that once you do.

@grishka
Copy link
Author

grishka commented Jan 23, 2013

So I've installed the debug kit, the most interesting part of log when I enable tethering on my phone:

Jan 24 01:54:04.015  [5]    Finding driver for interface #0 of Android Phone, matching personality using com.apple.iokit.IOUSBUserClient, score: 104999, wildCard = 5
Jan 24 01:54:04.016  [6]        Matched: idVendor (2996) idProduct (4092) bcdDevice (552) bConfigurationValue (1) bInterfaceNumber (0) 
Jan 24 01:54:04.016  [6]        Didn't Match: nothing
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - found array with capacity of 3
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 0 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 1 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 2 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::matchPropertyTable  productIDArrayExists was true, matches = false
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - found array with capacity of 3
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 0 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 1 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 2 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::matchPropertyTable  productIDArrayExists was true, matches = false
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - found array with capacity of 16
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 0 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 1 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 2 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 3 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 4 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 5 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 6 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 7 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 8 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 9 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 10 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 11 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 12 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 13 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 14 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 15 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::matchPropertyTable  productIDArrayExists was true, matches = false
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - found array with capacity of 33
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 0 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 1 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 2 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 3 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 4 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 5 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 6 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 7 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 8 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 9 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 10 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 11 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 12 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 13 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 14 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 15 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 16 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 17 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 18 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 19 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 20 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 21 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 22 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 23 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 24 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 25 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 26 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 27 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 28 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 29 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 30 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 31 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::USBComparePropertyInArray - item 32 did not match
Jan 24 01:54:04.016  [7]    RNDIS Communications Control[0xffffff802e438a00]::matchPropertyTable  productIDArrayExists was true, matches = false

Jan 24 01:54:04.111  [5]    Finding driver for interface #1 of Android Phone, matching personality using com.apple.iokit.IOUSBUserClient, score: 104999, wildCard = 5
Jan 24 01:54:04.111  [6]        Matched: idVendor (2996) idProduct (4092) bcdDevice (552) bConfigurationValue (1) bInterfaceNumber (1) 
Jan 24 01:54:04.111  [6]        Didn't Match: nothing
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - found array with capacity of 3
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 0 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 1 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 2 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::matchPropertyTable  productIDArrayExists was true, matches = false
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - found array with capacity of 3
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 0 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 1 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 2 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::matchPropertyTable  productIDArrayExists was true, matches = false
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - found array with capacity of 16
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 0 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 1 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 2 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 3 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 4 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 5 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 6 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 7 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 8 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 9 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 10 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 11 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 12 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 13 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 14 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 15 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::matchPropertyTable  productIDArrayExists was true, matches = false
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - found array with capacity of 33
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 0 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 1 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 2 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 3 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 4 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 5 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 6 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 7 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 8 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 9 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 10 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 11 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 12 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 13 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 14 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 15 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 16 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 17 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 18 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 19 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 20 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 21 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 22 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 23 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 24 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 25 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 26 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 27 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 28 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 29 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 30 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 31 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::USBComparePropertyInArray - item 32 did not match
Jan 24 01:54:04.111  [7]    RNDIS Ethernet Data[0xffffff8031407000]::matchPropertyTable  productIDArrayExists was true, matches = false

@jwise
Copy link
Owner

jwise commented Jan 24, 2013

Can you save a full log from connecting your device (hit clear just before clicking the tether button, and then save after it's 'settled down'), then grep -E 'Finding|Matched|Didn.t' USB\ Log.txt and paste that?

I admit being a little stumped as to why this isn't working. I wonder if an underscore is not valid in the name of an IOKitPersonality? Otherwise it is exactly the same as the other IOKitPersonality, which does work.

Just to make sure I'm not an idiot, and that I packaged up the right code, can you take a look at /System/Library/Extensions/HoRNDIS.kext/Contents/Info.plist, and make sure that it contains:

                <dict>
                        <key>CFBundleIdentifier</key>
                        <string>com.joshuawise.kexts.HoRNDIS</string>
                        <key>IOClass</key>
                        <string>HoRNDISUSBInterface</string>
                        <key>IOProviderClass</key>
                        <string>IOUSBInterface</string>
                        <key>bInterfaceClass</key>
                        <integer>2</integer>
                        <key>bInterfaceProtocol</key>
                        <integer>2</integer>
                        <key>bInterfaceSubClass</key>
                        <integer>255</integer>
                </dict>

If it does, maybe it might be interesting to try removing the underscore after Composite, and then manually reloading it with kextload.

@grishka
Copy link
Author

grishka commented Jan 24, 2013

Jan 24 01:54:03.991  [5]    Finding device driver for Android Phone, matching personality using com.apple.iokit.IOUSBUserClient, score: 106999, wildCard = 3
Jan 24 01:54:03.991  [6]        Matched: idVendor (2996) idProduct (4092) bcdDevice (552) 
Jan 24 01:54:03.991  [6]        Didn't Match: nothing
Jan 24 01:54:03.992  [5]    Finding device driver for Android Phone, matching personality using com.apple.driver.AppleUSBComposite, score: 50000, wildCard = 0
Jan 24 01:54:03.992  [6]        Matched: bDeviceClass (0) bDeviceSubClass (0) 
Jan 24 01:54:03.992  [6]        Didn't Match: nothing
Jan 24 01:54:03.993  [5]    Finding device driver for Android Phone, matching personality using com.apple.driver.AppleUSBCDC, score: 60000, wildCard = 0
Jan 24 01:54:03.993  [6]        Matched: bDeviceClass (0) bDeviceSubClass (0) bDeviceProtocol (0) 
Jan 24 01:54:03.993  [6]        Didn't Match: nothing
Jan 24 01:54:04.015  [5]    Finding driver for interface #0 of Android Phone, matching personality using com.apple.iokit.IOUSBUserClient, score: 104999, wildCard = 5
Jan 24 01:54:04.016  [6]        Matched: idVendor (2996) idProduct (4092) bcdDevice (552) bConfigurationValue (1) bInterfaceNumber (0) 
Jan 24 01:54:04.016  [6]        Didn't Match: nothing
Jan 24 01:54:04.020  [5]    Finding driver for interface #0 of Android Phone, matching personality using com.apple.driver.AppleUSBCDCACMControl, score: 50000, wildCard = 0
Jan 24 01:54:04.020  [6]        Matched: bInterfaceClass (2) bInterfaceSubClass (2) 
Jan 24 01:54:04.020  [6]        Didn't Match: nothing
Jan 24 01:54:04.069  [5]    Finding driver for interface #0 of Android Phone, matching personality using com.apple.driver.AppleUSBCDCACMControl, score: 50000, wildCard = 0
Jan 24 01:54:04.069  [6]        Matched: bInterfaceClass (2) bInterfaceSubClass (2) 
Jan 24 01:54:04.069  [6]        Didn't Match: nothing
Jan 24 01:54:04.087  [5]    Finding driver for interface #0 of Android Phone, matching personality using com.apple.iokit.IOUSBUserClient, score: 104999, wildCard = 5
Jan 24 01:54:04.087  [6]        Matched: idVendor (2996) idProduct (4092) bcdDevice (552) bConfigurationValue (1) bInterfaceNumber (0) 
Jan 24 01:54:04.087  [6]        Didn't Match: nothing
Jan 24 01:54:04.092  [5]    Finding driver for interface #0 of Android Phone, matching personality using com.apple.driver.AppleUSBCDCACMControl, score: 50000, wildCard = 0
Jan 24 01:54:04.092  [6]        Matched: bInterfaceClass (2) bInterfaceSubClass (2) 
Jan 24 01:54:04.092  [6]        Didn't Match: nothing
Jan 24 01:54:04.111  [5]    Finding driver for interface #1 of Android Phone, matching personality using com.apple.iokit.IOUSBUserClient, score: 104999, wildCard = 5
Jan 24 01:54:04.111  [6]        Matched: idVendor (2996) idProduct (4092) bcdDevice (552) bConfigurationValue (1) bInterfaceNumber (1) 
Jan 24 01:54:04.111  [6]        Didn't Match: nothing
Jan 24 01:54:04.115  [5]    Finding driver for interface #1 of Android Phone, matching personality using com.apple.driver.AppleUSBCDCACMData, score: 50000, wildCard = 0
Jan 24 01:54:04.115  [6]        Matched: bInterfaceClass (10) bInterfaceSubClass (0) 
Jan 24 01:54:04.115  [6]        Didn't Match: nothing
Jan 24 01:54:04.115  [5]    Finding driver for interface #1 of Android Phone, matching personality using com.apple.driver.AppleUSBCDCECMData, score: 50000, wildCard = 0
Jan 24 01:54:04.115  [6]        Matched: bInterfaceClass (10) bInterfaceSubClass (0) 
Jan 24 01:54:04.115  [6]        Didn't Match: nothing
Jan 24 01:54:04.177  [5]    Finding driver for interface #1 of Android Phone, matching personality using com.apple.driver.AppleUSBCDCECMData, score: 50000, wildCard = 0
Jan 24 01:54:04.177  [6]        Matched: bInterfaceClass (10) bInterfaceSubClass (0) 
Jan 24 01:54:04.177  [6]        Didn't Match: nothing
Jan 24 01:54:04.195  [5]    Finding driver for interface #1 of Android Phone, matching personality using com.apple.iokit.IOUSBUserClient, score: 104999, wildCard = 5
Jan 24 01:54:04.195  [6]        Matched: idVendor (2996) idProduct (4092) bcdDevice (552) bConfigurationValue (1) bInterfaceNumber (1) 
Jan 24 01:54:04.195  [6]        Didn't Match: nothing
Jan 24 01:54:04.200  [5]    Finding driver for interface #1 of Android Phone, matching personality using com.apple.driver.AppleUSBCDCACMData, score: 50000, wildCard = 0
Jan 24 01:54:04.200  [6]        Matched: bInterfaceClass (10) bInterfaceSubClass (0) 
Jan 24 01:54:04.200  [6]        Didn't Match: nothing
Jan 24 01:54:04.200  [5]    Finding driver for interface #1 of Android Phone, matching personality using com.apple.driver.AppleUSBCDCECMData, score: 50000, wildCard = 0
Jan 24 01:54:04.200  [6]        Matched: bInterfaceClass (10) bInterfaceSubClass (0) 
Jan 24 01:54:04.200  [6]        Didn't Match: nothing
Jan 24 01:54:04.221  [5]    Finding driver for interface #2 of Android Phone, matching personality using com.apple.iokit.IOUSBUserClient, score: 104999, wildCard = 5
Jan 24 01:54:04.221  [6]        Matched: idVendor (2996) idProduct (4092) bcdDevice (552) bConfigurationValue (1) bInterfaceNumber (2) 
Jan 24 01:54:04.221  [6]        Didn't Match: nothing

@grishka
Copy link
Author

grishka commented Jan 24, 2013

Removed the underscore, saved & rebooted, my device is still shown as a modem in settings
 2013-01-25 2 13 02
.

@jwise
Copy link
Owner

jwise commented Jan 25, 2013

Huh, hmm!

I wonder if it actually is getting attached to by the CDC driver.

Here's a thought ... maybe try something like:

                <dict>
                        <key>CFBundleIdentifier</key>
                        <string>com.joshuawise.kexts.HoRNDIS</string>
                        <key>IOClass</key>
                        <string>HoRNDISUSBInterface</string>
                        <key>IOProviderClass</key>
                        <string>IOUSBInterface</string>
                        <key>bInterfaceClass</key>
                        <integer>2</integer>
                        <key>bInterfaceProtocol</key>
                        <integer>2</integer>
                        <key>bInterfaceSubClass</key>
                        <integer>255</integer>
                        <key>IOProbeScore</key>
                        <integer>150000</integer>
                </dict>

The new IOProbeScore entry should cause it to take priority over the ACM driver.

I bet that's what's happening, given that it is showing up as a modem...

@grishka
Copy link
Author

grishka commented Jan 27, 2013

Tried this, didn't work =(

@jwise
Copy link
Owner

jwise commented Jan 28, 2013

Gee, that is frustrating. I think this is closely related to #5, though I am pretty close to out of ideas. I wonder if anyone I know locally has one...

@grishka
Copy link
Author

grishka commented Jan 29, 2013

So I've finally found an incredibly easy way to make it work. I've replaced this

<key>bInterfaceProtocol</key>
<integer>2</integer>
<key>bInterfaceSubClass</key>
<integer>255</integer>

with this

<key>bInterfaceProtocol</key>
<integer>255</integer>
<key>bInterfaceSubClass</key>
<integer>2</integer>

@jwise
Copy link
Owner

jwise commented Jan 29, 2013

...I might be an idiot.

Yeah, that'll do it.

Submit a pull request?

@grishka
Copy link
Author

grishka commented Jan 29, 2013

Done.

@grishka grishka closed this as completed Jan 29, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants