USB Tethering on iPhone, only recieving 1/2 speed (NOT WIRELESS)

Hello,
I am running OpenWRT 22.03.05 on a Raspberry Pi 4b 4gb. It is a pretty fresh install, with drivers installed to support iPhone USB tethering.
When tethering to my laptop using a USB cable, I get speeds around 250/20.
When I connect my iPhone to my Pi as its WAN, and connect my computer using Cat6 to the Pi, I peak out at about 118/20.
On average, the pi provides me with the same upload speed, but my download speed is halved.
I am trying to find where the reduction in download speed is coming from, as I was expecting minimal overhead from the pi/openwrt. I am leaning towards a configuration issue or a setting, but I'm pretty lost on where I need to look.
The only additional packages I have installed are kmod-usb-net-ipheth, usbmuxd, libimobiledevice, usbutils

could be, it is only using usb 2.0.

is kmod-usb3 there?

The Pi4 builds have USB3 support built in but you have to plug into one of the blue ports that supports USB3. The other two are only USB2 hardware.

1 Like

I have the phone plugged into the USB 3 ports

iPhones only have USB 2.0 capabilities. AFAIK, that's a limitation of the lighting port.

EDIT: I've done a little more research, and it seems that lightning was in theory compatible with USB 3.0, but it is true that iPhones (including the iPhone 14 and iPhone 14 Pro) are still using only USB 2.0.

1 Like

That is true, but I am receiving full bandwidth on 2 different computers when the iPhone is connected with USB to them, so it shouldn't be a USB issue or i would see it on both computers and the Pi.

Fair enough, but the original question did say:

When tethering to my laptop using a USB cable, I get speeds around 250/20.

That suggests the phone is capable of 250 down, and the problem is somewhere else. @bagicbouse are you using the same physical cable?

Yes I am using the same cable, and that is correct, my phone is able to provide 250mbps/down and 20mbps/up over usb tether.
I am currently thinking it could be routing changes or interface changes that need to be made, but I'm at a loss for what could need to be changed.

That made me curious. I did a quick default test install on a spare SD card:
"kmod-usb3" is not installed by default:

The 23.05rc3 default image on my RPi4:

root@OpenWrt:~# opkg info kmod-usb3
...
Status: unknown ok not-installed
Filename: kmod-usb3_5.15.127-1_aarch64_cortex-a72.ipk
root@OpenWrt:~# opkg install kmod-usb3
Installing kmod-usb3 (5.15.127-1) to root...
...
root@OpenWrt:~# opkg info kmod-usb3
Status: install user installed

(But so far not not relevant for this case, since iPhone does not seem to have USB3 anyway)

Installed kmod-usb3 for the heck of it, still experiencing same issue

Tested by connecting the Pi's radio to my wireless hotspot, I experienced similar speeds.
I have another Rpi 4 that i use for my home network, and I just tried tethering the iphone to that pi with USB, and i had the same speeds.
So its doing it on wireless and wired, on both pis, but unsure how to fix it.

What speeds do you get on raspbian or another os on the raspberry pi?

Can you also try enabling "packet steering" in Network -> Interfaces -> Global network options?