bishopdynamics / superbird-tool

Cross-Platform Spotify Car Thing (superbird) hacking toolkit
133 stars 8 forks source link

UsbNet Issues #5

Open ivybowman opened 1 year ago

ivybowman commented 1 year ago

I am having some issues with usb net on pop os, it won't forward the internet nor certain ports. Can you please elaborate on if there is any setup that needs to be done besides usb-gadget on the car thing?

P.S Sending a pull request eventually I noticed some issues that I know how to solve.

bishopdynamics commented 1 year ago

I provided setup_host_usbnet.sh which worked for me on Debian and Ubuntu, have you tried that?

ivybowman commented 1 year ago

I did and it did not give any error but also only worked for computer to car thing communication.

bishopdynamics commented 1 year ago

I think i figured this one out

on the host, you need to install iptables-persistent from apt (choose no when it prompts to save existing rules), then re-do the part about making rules:

mkdir -p /etc/iptables

iptables -P FORWARD ACCEPT
iptables -A FORWARD -o eth0 -i eth1 -s 192.168.7.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -o eth0 -i eth1 -s 192.168.7.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.7.0/24

iptables-save > /etc/iptables/rules.v4

I will update the script shortly

ivybowman commented 1 year ago

Sorry haven't tried this yet. Any way to get it working on Mac?

bishopdynamics commented 1 year ago

I tried it on macOS, but the device does not show up properly. It looks like RNDIS is not supported by macOS (RNDIS is a Microsoft thing), they only support CDC-type usbnet driver.

Unless I'm mistaken, RNDIS is the only usbnet driver available in the stock superbird os; here are all the kernel modules I found, related to usb gadget functions:

usb_f_rndis.ko
usb_f_fs.ko
usb_f_midi.ko
usb_f_mtp.ko
usb_f_ptp.ko
usb_f_audio_source.ko
usb_f_accessory.ko

So, I think the only way to get usb network to work on macOS, is if we can build our own kernel with the CDC driver enabled.

ivybowman commented 1 year ago

Ok good to know.

Ivy Bowman she/they On Nov 15, 2022 at 2:07 PM -0500, Bishop @.***>, wrote:

I tried it on macOS, but the device does not show up properly. It looks like RNDIS is not supported by macOS (RNDIS is a Microsoft thing), they only support CDC-type usbnet driver. Unless I'm mistaken, RNDIS is the only usbnet driver available in the stock superbird os; here are all the kernel modules I found, related to usb gadget functions: usb_f_rndis.ko usb_f_fs.ko usb_f_midi.ko usb_f_mtp.ko usb_f_ptp.ko usb_f_audio_source.ko usb_f_accessory.ko So, I think the only way to get usb network to work on macOS, is if we can build our own kernel with the CDC driver enabled. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

williamtcastro commented 1 year ago

@ivybowman, @bishopdynamics i've found a port of RNDIS for mac here HoRNDIS the github version is dated but you can easily update the project on xcode and update the deployment target and then build it, might be useful but didn't had the change to try it out