USB Tethering

Hi,

I'm using a Digital Storm AMD Threadripper 24-Core GIGABYTE TRX50 Motherboard. I'm running a NVIDIA ADA Graphics card.

All of the devices are loaded, except the IOMMU, encryption, Ethernet, serial USB, and configured on my FreeBSD 15.0 install I just cant get the Ethernet up. I used the GUID Partition table because of the 4TB SSD. There are 2 20 TB SSD's with source code and a media server.

I need help with USB tethering from my iPhone it does load my iPhone upon boot time.

https://docs.freebsd.org/en/books/handbook/book/#network-usb-tethering

The generic name for the interface provided by the USB Apple iPhone/iPad tethered Ethernet driver on FreeBSD is ipheth, and the first instance will typically be named ipheth0.
FreeBSD interface names are based on the driver name followed by a unit number.
To configure and use the interface:
  • Load the driver: Add the following line to /boot/loader.conf to load the driver at boot time:
    if_ipheth_load="YES"
  • Verify detection After connecting your iPhone/iPad and loading the driver (either by rebooting or using kldload ipheth), you can check if the device is recognized using ifconfig -l or by checking the output of dmesg
  • .
  • Configure the interface The device can then be configured like any other network interface, typically using DHCP. You would add a line to /etc/rc.conf like: Ifconfig_ipheth0="DHCP"
I just can't get the iPhone to trust my FreeBSD the output of ifconfig -l
just brings up the loopback. All of the modules load at boot time. I might want to enable Wi-Fi and Bluetooth if I could get any help.

While general FreeBSD support for the AMD64 architecture is robust, specific compatibility for the cutting-edge components on GIGABYTE TRX50 motherboards (like the AERO D and AI TOP models) is highly dependent on driver availability within the FreeBSD kernel and user-contributed modules.

How do I enable AI TOP in the AERO D, Also does FreeBSD still support their toolkit releases? I am using a older HP for the CVS release on GitHub 8.3 for security.

I'm using my iPhone like a land line which is fine for now. Microsoft should have stopped with Microsoft Windows Vista or not included the WSL.

Jonathan Moore
 
Apparently comms/usbmuxd is needed for ipheth(4) being fully functional, see

Bug 291370 - ipheth: doesn’t work without usbmuxd

According to the source commits, comms/usbmuxd is included on the main (CURRENT), stable/15, stable/14 branches dvd1.iso's.


Perhaps you can borrow an Android phone to install the package. Android USB tethering tends not to have problems with the urndis(4) driver, no extra package to install needed.

Or, download following packages from a machine with internet on a USB stick (assuming system is 15.0):
Rich (BB code):
 # pkg fetch -r FreeBSD-ports -o /mnt/usb_stick -d usbmuxd pkg
Updating FreeBSD-ports repository catalogue...
FreeBSD-ports repository is up to date.
FreeBSD-ports is up to date.
The following packages will be fetched:

New packages to be FETCHED:
        brotli: 1.2.0,1 (389 KiB: 3.27% of the 12 MiB to download)
        curl: 8.17.0 (2 MiB: 14.97% of the 12 MiB to download)
        indexinfo: 0.3.1_1 (6 KiB: 0.05% of the 12 MiB to download)
        libidn2: 2.3.8 (160 KiB: 1.35% of the 12 MiB to download)
        libimobiledevice: 1.4.0 (352 KiB: 2.96% of the 12 MiB to download)
        libimobiledevice-glue: 1.3.2 (64 KiB: 0.54% of the 12 MiB to download)
        libnghttp2: 1.68.0 (139 KiB: 1.17% of the 12 MiB to download)
        libplist: 2.7.0 (137 KiB: 1.15% of the 12 MiB to download)
        libpsl: 0.21.5_2 (65 KiB: 0.55% of the 12 MiB to download)
        libssh2: 1.11.1,3 (244 KiB: 2.05% of the 12 MiB to download)
        libtatsu: 1.0.5 (39 KiB: 0.32% of the 12 MiB to download)
        libunistring: 1.4.1 (740 KiB: 6.22% of the 12 MiB to download)
        libusbmuxd: 2.1.1 (45 KiB: 0.38% of the 12 MiB to download)
        pkg: 2.5.1 (7 MiB: 56.30% of the 12 MiB to download)
        readline: 8.3.3 (478 KiB: 4.02% of the 12 MiB to download)
        usbmuxd: 1.1.1.69 (53 KiB: 0.45% of the 12 MiB to download)
        zstd: 1.5.7_1 (509 KiB: 4.28% of the 12 MiB to download)

Number of packages to be fetched: 17

The process will require 12 MiB more space.
12 MiB to be downloaded.

Proceed with fetching packages? [y/N]:
Start installing on target system pkg add pkg-*, then "usbmuxd".
 
I've never used an iPhone but on my Android I just plug in a cable connect the phone and computer set the USB tether switch to on. Then a news interface appears on the computer, say ue0, and then I run dhclient ue0 and you get an IP address.
 
Use usbconfig (for FreeBSD/pfSense/similar):
  • If on a system using usbconfig
  • (like Netgate/pfSense), you might need to manually set the USB configuration for your iPhone.
I just dont see the iPhone in 15.0 stable

kldload ipheth did load

15.0 STABLE is 15.0 RELEASE and I'm reinstalling. STABLE only has a CD and no base packages unlike DVD. I had it right just could load ipheth

The the 15.0 RELEASE tried to load a the WiFi driver but failed. I'll also try bsdconfig
to see if I can manually load the WiFi device.

Thank You; I'll try what T-Daemon said on another machine.
 
USB tethering also appears to be broken for me on 14.3 with an iPhone running iOS 18.7.2.

I installed comms/usbmuxd (and yes I manually restarted devd after the installation, because the usbmuxd port installs /usr/local/etc/devd/usbmuxd.conf).

I have hotspot enabled when I plugin my phone via USB, then a usbmuxd process is created per devd's usbmuxd.conf. I also see a dhclient ue0 process.

I get a "Trust this computer?" prompt on the phone, I answer "Allow", but ue0 is never able to ever get any DHCP IP (even though I can see the DHCP requests going from my 14.3 system toward the phone when I run tcpdump -i ue0 -n).

To be clear, tethering and internet access via wifi hotspot works fine for me.

I tried doing usbconfig -d 1.2 set_config 3 (the default is apparently 0). With config=3 I see ue0 "status: active", but I never see any packets coming from the phone.

If I do usbconfig -d 1.2 set_config 4, I see ue0 and ue1 appear, ue0 says "status: active", ue1 is not active, but still zero packets coming from the phone on either ue interface; i.e.: it never responds to any DHCP requests from my 14.3 system, no matter what config setting, and no matter how many unplug/plug cycles, so it seems broken to me. I wonder if Apple changed something in the last few years that broke USB tethering for FreeBSD, this used to work for me eons ago.

Does anybody have USB tethering working with an iPhone on FreeBSD 14.3?? If so, what version of iOS is on your phone, and did you have to configure anything beyond what's documented in the handbook or the ipheth(4) manual page?
 
Hey covacat, thank you for the hint/pointer!

Do you remember what specific older version of usbmuxd you compiled? If you don't know the specific version, do you remember the last known date when usbmuxd was working properly?
 
i don't know but you may get a clue from this (listing of the zip i posted in the other thread)
Code:
Archive:  usbmuxd.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  05-27-2025 12:06   tmp/ue/
   168184  05-27-2025 12:03   tmp/ue/libimobiledevice-1.0.so.6
    61424  05-27-2025 12:03   tmp/ue/libplist-2.0.so.3
    39984  05-27-2025 12:03   tmp/ue/libusbmuxd-2.0.so.6
    77688  05-27-2025 12:03   tmp/ue/usbmuxd
   611232  05-27-2025 12:05   tmp/ue/libssl.so.111
  3063248  05-27-2025 12:06   tmp/ue/libcrypto.so.111

probably these are the packages that worked for me
libimobiledevice-1.3.0 Library to communicate with Apple iOS devices
libusbmuxd-2.0.2 Communication interface library for usbmuxd
usbmuxd-1.1.1_2 Daemon for multiplexing connections over USB to iPhone/iPod Touch
 
i don't know but you may get a clue from this (listing of the zip i posted in the other thread)

Yep, I already did a strings usbmuxd on your binary, didn't find an obvious version number there.. You have a good point that the (alleged) breakage might be in one of the dependent libs (like libimobiledevice).

[EDIT/UPDATE]-

Because of covacat's hint to consider all the dependencies, I used a many-months-newer than 14.3-RELEASE ports tree that I already had sitting around, I did pkg delete and then rebuilt/reinstalled the following ports (my /usr/ports tree was at git commit 00d304c55c970c91d98f59fcc4e88051e4b1061f, if anybody cares):


and now my 14.3 system is getting an IP from my USB-tethered iPhone, with IPv4 (via NAT) connectivity verified to work to the outside world.

I'm not certain which of the dependencies needed to be updated, but a ports tree later than 14.3-RELEASE and fresh make install of the above seemed to clear this non-obvious problem for me.

Many thanks to developers / users / admins (especially covacat)!
 
Clarifying my EDIT above (post #10): I did not have to manually set config=3 like the ipheth(4) man page suggests to get USB tethering to work -- it looks like when usbmuxd is invoked by devd, it seems to set config=3 automatically now. "Personal Hotspot" must be enabled.
 
Back
Top