A set of automated scripts to install and configure local Ethernet-over-USB on Raspberry Pi 4.
These scripts are intended to run on Raspberry Pi 4 with Raspberry Pi OS. Running it on other systems might have unintended consequences.
Copy the content of this repository to your Raspberry Pi home directory using one of the available methods.
For example, with git:
cd
git clone https://github.com/ramblehead/rpi4-ethernet-over-usb.git
cd rpi4-ethernet-over-usbTo install Ethernet-over-USB run:
sudo ./setup-usb.shTo install and configure local DHCP server on Raspberry Pi run:
sudo ./setup-dnsmasq.shRestart Raspberry Pi two times:
sudo rebootAfter performing installation steps, it should become possible to connect Raspberry Pi USB-C port (the port used for power) to any computer running modern OS as Ethernet-over-USB gadget.
This configuration has been tested on Windows 10, Windows 11 and Ubuntu 22.04 LTS. It should also work on any system that supports either RNDIS or CDC-ECM USB protocols.
Default IP address set by setup-dnsmasq.sh script is:
10.55.0.1
this IP address can be used to access Raspberry Pi from the host computer. For example:
ssh <user-name>@10.55.0.1where <user-name> is your user name on Raspberry Pi.
mDNS stands for "Multicast DNS". It is a protocol that allows devices on a local network to discover and communicate with each other using domain names without requiring a centralized DNS server. All major modern OS should support mDNS names resolution - including Windows 10 and above.
To use mDNS with Windows 7/8 install Bonjour Print Services.
On Raspberry Pi mDNS is configured by default (with avahi). avahi uses
Raspberry Pi OS <hostname> as the default mDNS name.
By convention mDNS names are distinguished by .local domain. For example, if
your Raspberry Pi OS <hostname> is rh-rpi, then mDNS address should be:
rh-rpi.local
making it possible to access Raspberry Pi by this address. For example:
ssh <user-name>@rh-rpi.localwhere <user-name> is your Raspberry Pi OS user name.
To quickly change Raspberry Pi OS hostname, provided update-hostname.sh script
could be used.
Running update-hostname.sh script with no arguments automatically generates
host name using physical Ethernet adapter MAC address with the following
pattern:
rpi-aabbccwhere aa, bb and cc are the last three hex digits of the MAC address.
First argument of update-hostname.sh is the user-defined <hostname>. For
example, to set <hostname> to rh-rpi run:
sudo ./update-hostname.sh rh-rpi-
David Lechner's project: https://github.com/ev3dev/ev3-systemd/blob/ev3dev-jessie/scripts/ev3-usb.sh
-
Ben Hardill's blog post: https://www.hardill.me.uk/wordpress/2019/11/02/pi4-usb-c-gadget/