USB tethering with iPhone

Discussion in 'Apple' started by JF Mezei, Oct 17, 2013.

  1. JF Mezei

    JF Mezei Guest

    So I try tethering with my fancy new iPhone and old laptop. I tend to go
    USB by preference. (saves on battery for both)

    It fails. USB tethering has been problematic for some time, but I had it
    working on my iphone4

    Figured perhaps the "iPhone" networking entry in system settings was
    tied to my old iphone so I deleteed it , hoping a new one would get
    created. It didn't

    Started to search around and it appears this problem has been on and off
    for a long time, and iTunes is the one which supplies a bad file with
    each new version.

    AppleUSBEthernetHost.kext is the culprit.

    13-10-17 05:00:12 com.apple.kextd[10] Failed to load
    /System/Library/Extensions/AppleUSBEthernetHost.kext - (libkern/kext)
    link error.
    13-10-17 05:00:12 kernel
    kxld[com.apple.macos.driver.AppleUSBEthernetHost]: The super class
    vtable '__ZTV20IOEthernetController' for vtable
    '__ZTV20AppleUSBEthernetHost' is out of date. Make sure your kext has
    been built against the correct headers.
    13-10-17 05:00:12 kernel Can't load kext
    com.apple.macos.driver.AppleUSBEthernetHost - link failed.
    13-10-17 05:00:12 kernel Failed to load executable for kext
    com.apple.macos.driver.AppleUSBEthernetHost.
    13-10-17 05:00:12 kernel Kext
    com.apple.macos.driver.AppleUSBEthernetHost failed to load (0xdc008016).
    13-10-17 05:00:12 kernel Failed to load kext
    com.apple.macos.driver.AppleUSBEthernetHost (error 0xdc008016).


    The solutions I have found (not tested yet) is to find an old .kext and
    install it on the system. Upon reboot, it should then recognize the USB
    device and create it. (and keep a backup because you need to re-install
    it whenever there is an itunes update which will zap that fixed file
    with a broken one).

    I will do some further testing tomorrow.

    Out of curiosity, how come Apple hasn't fixed this in so many years of
    complaints ? Does Apple think nobody uses USB tethering ?
     
    JF Mezei, Oct 17, 2013
    #1
    1. Advertisements

  2. JF Mezei

    JF Mezei Guest

    JF Mezei, Oct 17, 2013
    #2
    1. Advertisements

  3. JF Mezei

    David Empson Guest

    JF Mezei <> wrote:

    > So I try tethering with my fancy new iPhone and old laptop. I tend to go
    > USB by preference. (saves on battery for both)
    >
    > It fails. USB tethering has been problematic for some time, but I had it
    > working on my iphone4
    >
    > Figured perhaps the "iPhone" networking entry in system settings was
    > tied to my old iphone so I deleteed it , hoping a new one would get
    > created. It didn't
    >
    > Started to search around and it appears this problem has been on and off
    > for a long time, and iTunes is the one which supplies a bad file with
    > each new version.
    >
    > AppleUSBEthernetHost.kext is the culprit.


    I encountered a similar problem a while ago, which turned out to be
    caused by Apple's iPhone Configuration Utility having installed a faulty
    copy of that kernel extension. A subsequent reinstall of the iTunes
    version which was current at the time didn't help because the iTunes
    installer thought the iPhone Configuration Utility's copy of the kext
    was a newer version. I had to delete the kext and reinstall iTunes to
    get it working. I posted on an Apple Discussions thread about this at
    the time.

    iPhone Configuration Utility is now obsolete (on the Mac) and should not
    be installed. Its last version was 3.5.0, which included version 2.3.0
    of this kext (which was the faulty one I encountered).

    iTunes 10.6.3 included version 2.3.0 of this kext, the same as iPhone
    Configuration Utilty 3.5, but the two variants of the extension don't
    match: the one from iTunes Configuration Utility is only 61 KB while the
    iTunes 10.6.3 one is 190 KB.

    iTunes 10.7 included version 2.3.6 of this kext.

    iTunes 11.1.1 has version 7.0 of this kext, and looking in my Extensions
    folder, that is the one I currently have.

    I use USB tethering most days and it has continued to work fine for more
    than a year since I deleted the old and faulty extension and reinstalled
    iTunes 10.6.3. USB tethering has kept working through the transition to
    iOS 6 on my iPhone 3GS, replacing that with an iPhone 5, updating to
    iTunes 10.7, then iTunes 11.1 (I skipped all the 11.0.x versions) and my
    iPhone 5 being upgraded to iOS 7, with at least two upgrades of the kext
    along the way.

    > 13-10-17 05:00:12 com.apple.kextd[10] Failed to load
    > /System/Library/Extensions/AppleUSBEthernetHost.kext - (libkern/kext)
    > link error.
    > 13-10-17 05:00:12 kernel
    > kxld[com.apple.macos.driver.AppleUSBEthernetHost]: The super class
    > vtable '__ZTV20IOEthernetController' for vtable
    > '__ZTV20AppleUSBEthernetHost' is out of date. Make sure your kext has
    > been built against the correct headers.
    > 13-10-17 05:00:12 kernel Can't load kext
    > com.apple.macos.driver.AppleUSBEthernetHost - link failed.
    > 13-10-17 05:00:12 kernel Failed to load executable for kext
    > com.apple.macos.driver.AppleUSBEthernetHost.
    > 13-10-17 05:00:12 kernel Kext
    > com.apple.macos.driver.AppleUSBEthernetHost failed to load (0xdc008016).
    > 13-10-17 05:00:12 kernel Failed to load kext
    > com.apple.macos.driver.AppleUSBEthernetHost (error 0xdc008016).
    >
    >
    > The solutions I have found (not tested yet) is to find an old .kext and
    > install it on the system. Upon reboot, it should then recognize the USB
    > device and create it. (and keep a backup because you need to re-install
    > it whenever there is an itunes update which will zap that fixed file
    > with a broken one).


    The AppleUSBEthernetHost.kext installed by at least iTunes 10.6.3, 10.7,
    11.1 and 11.1.1 works fine.

    The only problem I've seen was the iTunes installer failing to replace a
    faulty version of the kext with its own good version.

    --
    David Empson
     
    David Empson, Oct 17, 2013
    #3
  4. JF Mezei

    JF Mezei Guest

    David Empson wrote:

    > The AppleUSBEthernetHost.kext installed by at least iTunes 10.6.3, 10.7,
    > 11.1 and 11.1.1 works fine.



    The one I have appears to be 7.0 (as per the version.plist) and has
    copyright 2013 in it. So I have to assume it is from Itunes
    11.something. And yet, it fails to load.

    Is it possible that Itunes distributes the USBEthernet kext that is
    incompatible with Snow Leopard ?
     
    JF Mezei, Oct 17, 2013
    #4
  5. JF Mezei

    David Empson Guest

    JF Mezei <> wrote:

    > David Empson wrote:
    >
    > > The AppleUSBEthernetHost.kext installed by at least iTunes 10.6.3, 10.7,
    > > 11.1 and 11.1.1 works fine.

    >
    >
    > The one I have appears to be 7.0 (as per the version.plist) and has
    > copyright 2013 in it. So I have to assume it is from Itunes
    > 11.something. And yet, it fails to load.
    >
    > Is it possible that Itunes distributes the USBEthernet kext that is
    > incompatible with Snow Leopard ?


    That is a worthy theory to test. I'm running Mountain Lion, so the OS
    version could be a factor. Based on the times they were released and the
    OS version I was running at the time, I would have been running iTunes
    10.6.3 in Lion, and 10.7 or later in Mountain Lion.

    Firing up my Snow Leopard Server VM (in VMware Fusion 6.0.1): I had
    already updated it to iTunes 11.1.1, and it has version 7.0 of
    AppleUSBEthernetHost.kext.

    If I connect my iPhone to the VM, I get the following in kernel.log:

    Oct 18 09:50:08 Snow-Leopard-VM kernel[0]:
    kxld[com.apple.macos.driver.AppleUSBEthernetHost]: The super class
    vtable '__ZTV20IOEthernetController' for vtable
    '__ZTV20AppleUSBEthernetHost' is out of date. Make sure your kext has
    been built against the correct headers.
    Oct 18 09:50:08 Snow-Leopard-VM kernel[0]: Can't load kext
    com.apple.macos.driver.AppleUSBEthernetHost - link failed.
    Oct 18 09:50:08 Snow-Leopard-VM kernel[0]: Failed to load executable for
    kext com.apple.macos.driver.AppleUSBEthernetHost.
    Oct 18 09:50:08 Snow-Leopard-VM kernel[0]: Kext
    com.apple.macos.driver.AppleUSBEthernetHost failed to load (0xdc008016).
    Oct 18 09:50:08 Snow-Leopard-VM kernel[0]: Failed to load kext
    com.apple.macos.driver.AppleUSBEthernetHost (error 0xdc008016).

    Looks to me like you have a viable theory: iTunes 11.1.1 (and probably
    11.1, and possibly all 11.x versions) installs an
    AppleUSBEthernetHost.kext which is not compatible with Snow Leopard.
    This prevents the USB personal hotspot feature from working with iOS
    devices running iOS 7, including all iPhone 5C, 5S and future models.

    Are you set up with an Apple developer account (free) so you can file a
    bug report? (It might be better if I do it, as I have access to several
    OS versions for testing.)

    Unfortunately at this late stage in the Snow Leopard support life cycle,
    Apple may classify this as not worth fixing, in which case your solution
    of reinstalling an older version of the kext is the only option if you
    have an iPhone running iOS 7 and you want to sync it with iTunes.

    On the other hand, it would be worth pointing out that iTunes 11.1.x
    officially supports Snow Leopard, and USB personal hotspot is not listed
    as an exclusion, therefore this bug should be fixed.

    Testing in my Lion VM for completeness...

    It also has iTunes 11.1.1 and AppleUSBEthernetHost.kext 7.0.

    USB personal hotspot doesn't work.

    kernel.log says:

    Oct 18 10:02:46 Davids-Lion-VM kernel[0]:
    kxld[com.apple.macos.driver.AppleUSBEthernetHost]: The super class
    vtable '__ZTV20IOEthernetController' for vtable
    '__ZTV20AppleUSBEthernetHost' is out of date. Make sure your kext has
    been built against the correct headers.
    Oct 18 10:02:46: --- last message repeated 1 time ---
    Oct 18 10:02:46 Davids-Lion-VM kernel[0]: Can't load kext
    com.apple.macos.driver.AppleUSBEthernetHost - link failed.
    Oct 18 10:02:46 Davids-Lion-VM kernel[0]: Failed to load executable for
    kext com.apple.macos.driver.AppleUSBEthernetHost.
    Oct 18 10:02:46 Davids-Lion-VM kernel[0]: Kext
    com.apple.macos.driver.AppleUSBEthernetHost failed to load (0xdc008016).
    Oct 18 10:02:46 Davids-Lion-VM kernel[0]: Failed to load kext
    com.apple.macos.driver.AppleUSBEthernetHost (error 0xdc008016).

    The fact that the kext also doesn't work in Lion might mean that Apple
    is more likely to address the bug.
    --
    David Empson
     
    David Empson, Oct 17, 2013
    #5
  6. JF Mezei

    JF Mezei Guest

    On 13-10-17 17:11, David Empson wrote:

    > The fact that the kext also doesn't work in Lion might mean that Apple
    > is more likely to address the bug.


    Or simply confirm they doN't view USB support as important anymore :-(

    Out of curiosity, would IOS-7 make a difference in this ? Wouldn't any
    IOS version present the tethering capability over USB is a standard way
    that doesn't change from IOS version to IOS version (since other phones
    also offer this capability, I have to assume there is a well established
    standard).
     
    JF Mezei, Oct 17, 2013
    #6
  7. JF Mezei

    David Empson Guest

    JF Mezei <> wrote:

    > On 13-10-17 17:11, David Empson wrote:
    >
    > > The fact that the kext also doesn't work in Lion might mean that Apple
    > > is more likely to address the bug.

    >
    > Or simply confirm they doN't view USB support as important anymore :-(
    >
    > Out of curiosity, would IOS-7 make a difference in this ?


    Probably not directly, but in order to connect iTunes and iOS 7, you
    need to be running iTunes 11.1 or later, which would install the USB
    tethering kernel extension which isn't compatible with Lion and Snow
    Leopard.

    If your device was running iOS 6 you would still have the option of
    running iTunes 10.7, and its USB tethering kext is probably compatible
    with Lion and Snow Leopard.

    > Wouldn't any IOS version present the tethering capability over USB is a
    > standard way that doesn't change from IOS version to IOS version (since
    > other phones also offer this capability, I have to assume there is a well
    > established standard).


    Apple's USB tethering implementation is proprietary and depends on a
    driver installed by iTunes (on Windows and Macs). It is possible that
    there could be compatibility issues between unmatched iOS and kernel
    extension verisons, but I think this is unlikely as the mechanism hasn't
    changed noticeably since it was first introduced.

    On the Mac, USB tethering is manifested as another Ethernet interface,
    but System Preferences recognises it as a special interface type and
    doesn't provide access to the full range of settings which it offers for
    Ethernet (e.g. you can't change the DNS server or set up proxies).

    I haven't had a close look at how the driver works on Windows.

    Are you going to file a bug report? I'm not going to waste my time doing
    that if it will duplicate your bug report.

    --
    David Empson
     
    David Empson, Oct 18, 2013
    #7
  8. JF Mezei

    JF Mezei Guest

    On 13-10-17 19:00, David Empson wrote:

    > Are you going to file a bug report? I'm not going to waste my time doing
    > that if it will duplicate your bug report.


    I have filed it. I assume the response will be that Snow Leopard isn't
    supported anymore.

    I also downloaded the "patch" from
    http://carlogent.com/KextUtilityFix.zip which includes a utility and
    the 2.3.0 version of AppleUSBEthernetHost.kext

    And guess what, by miracle it all works now. (I reloaded it with
    kextutil instead of a reboot).
     
    JF Mezei, Oct 18, 2013
    #8
  9. JF Mezei

    David Empson Guest

    JF Mezei <> wrote:

    > On 13-10-17 19:00, David Empson wrote:
    >
    > > Are you going to file a bug report? I'm not going to waste my time doing
    > > that if it will duplicate your bug report.

    >
    > I have filed it. I assume the response will be that Snow Leopard isn't
    > supported anymore.


    I suggest including the information and kernel logs from my earlier post
    as additional documentation, in particular pointing out that the problem
    affects Lion as well as Snow Leopard.

    > I also downloaded the "patch" from
    > http://carlogent.com/KextUtilityFix.zip which includes a utility and
    > the 2.3.0 version of AppleUSBEthernetHost.kext
    >
    > And guess what, by miracle it all works now. (I reloaded it with
    > kextutil instead of a reboot).


    It may be worth trying the slightly newer kext from iTunes 10.7, if for
    no other reason than it is a slightly later version (2.3.6) and
    therefore may have some bug fixes. It would also be helpful to know
    whether that version works on Snow Leopard.

    I have a copy of that kext which I can try in my Snow Leopard VM later.

    --
    David Empson
     
    David Empson, Oct 18, 2013
    #9
  10. JF Mezei

    JF Mezei Guest

    On 13-10-18 02:54, David Empson wrote:

    > I suggest including the information and kernel logs from my earlier post
    > as additional documentation, in particular pointing out that the problem
    > affects Lion as well as Snow Leopard.


    Finally found the post where you tried Lion and confirmed it failed.
    (had seen your other posts with Mountain Lion)

    I've added to my bug report your log of the failure on Lion.
     
    JF Mezei, Oct 18, 2013
    #10
  11. JF Mezei

    JF Mezei Guest

    An update.

    Apple pushed a new version of iTunes this week. It overwrote the
    "working" older version of AppleUSBEthernetHost.kext

    So I had to re-run the utility to install the older version.

    Out of curiosity, couldn't I just copy the older .kext file to overwrite
    the newer one and then kextutil to load it ?


    The bug report I made was maked a duplicate of 15095781


    However, I have no idea how to get view that bug report. The search
    feature inside bugreport.apple.com seems to be limited to only my own
    bug reports.
     
    JF Mezei, Oct 27, 2013
    #11
  12. JF Mezei

    David Empson Guest

    JF Mezei <> wrote:

    > An update.
    >
    > Apple pushed a new version of iTunes this week. It overwrote the
    > "working" older version of AppleUSBEthernetHost.kext
    >
    > So I had to re-run the utility to install the older version.
    >
    > Out of curiosity, couldn't I just copy the older .kext file to overwrite
    > the newer one and then kextutil to load it ?


    If that is what you did before, it should work again.

    > The bug report I made was maked a duplicate of 15095781
    >
    >
    > However, I have no idea how to get view that bug report.


    You can't view other people's reported bugs using Apple's bug reporter.
    Only Apple gets to see everything.

    There is a third party public repository, and some people choose to also
    post their bug reports there.

    http://openradar.appspot.com/

    I can't find that particular one (15095781).
    --
    David Empson
     
    David Empson, Oct 27, 2013
    #12
  13. JF Mezei

    David Empson Guest

    David Empson <> wrote:

    > JF Mezei <> wrote:
    >
    > > An update.
    > >
    > > Apple pushed a new version of iTunes this week. It overwrote the
    > > "working" older version of AppleUSBEthernetHost.kext
    > >
    > > So I had to re-run the utility to install the older version.
    > >
    > > Out of curiosity, couldn't I just copy the older .kext file to overwrite
    > > the newer one and then kextutil to load it ?

    >
    > If that is what you did before, it should work again.


    On re-reading, probably not, if that kext is already loaded. You would
    have to unload it first, then replace it, then load it.

    --
    David Empson
     
    David Empson, Oct 27, 2013
    #13
  14. JF Mezei

    JF Mezei Guest

    On 13-10-27 18:51, David Empson wrote:

    > On re-reading, probably not, if that kext is already loaded. You would
    > have to unload it first, then replace it, then load it.


    What I did before was run the utility (which spends some time
    "repairing" things in the directory) and then drag the correct version
    of the kext onto the app which then copies it to the directory.

    Then, I used the kextutil command to load that kext back. And this
    worked. (no need to reboot).

    Since the bad version fails to load, I think one doesn't need to unload
    it before trying to load the working version.
     
    JF Mezei, Oct 27, 2013
    #14
    1. Advertisements

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. C.Joseph Drayton

    Tethering laptop to Motorola V600 cellular phone

    C.Joseph Drayton, Dec 19, 2004, in forum: Laptops
    Replies:
    4
    Views:
    420
    C.Joseph Drayton
    Dec 23, 2004
  2. Replies:
    0
    Views:
    748
  3. 玛丽
    Replies:
    11
    Views:
    903
    Ura Dippschit
    Jul 19, 2007
  4. nospam
    Replies:
    0
    Views:
    727
    nospam
    Aug 22, 2009
  5. JF Mezei

    USB tethering with iPhone

    JF Mezei, Oct 9, 2010, in forum: Apple
    Replies:
    5
    Views:
    944
    JF Mezei
    Oct 12, 2010
Loading...