#Tek-EveNTS – RPI4 avec EtherneT over USB-C

Posted on

Bonjour les amis on va mettre en place une fonction sympathique avec le RPI4, tout le monde sait que le RPI4 est équipé d un port USB-C. Detrompez vous ce port USB-C ne sert pas qu a alimenter le RPI4. On peut aussi le configurer pour relier en reseau a un PC ou un iPad Pro via USB-C.

Ce qui évite en déplacement d’avoir des soucis de configuration wifi .Sans point acces disponible en déplacement par example… On peut utiliser le port USB-C comme un port « Ethernet » entre « RaspberryPi » et un « iPad Pro (USB-C) » ou un « ordinateur portable/bureau » équipé en « USB-C »

Par défaut sur un RaspBerryPi 4 fonctionnant avec l OS Raspbian ne permet pas d utiliser le port USB-C a part pour alimenter le RPI4. Il va falloir manuellement configure ce port USB-C :

Dans un premier lieu mettre la dernière version de raspbian sur la microSD. Ensuite il est pratique de mettre le fichier « ssh », « wpa_supplicant.conf  » qui permettra d’activer le ssh et le Wifi dès le demarrage du raspberry ce qui permet de le demarrer sans écran

sudo apt update 
sudo apt full-upgrade 
sudo apt install rpi-eeprom
sudo rpi-eeprom-update

mettre "dtoverlay=dwc2" sur via "sudo nano /boot/config.txt"
mettre "modules-load=dwc2" à la fin fichier via "sudo nano /boot/cmdline.txt"
mettre "libcomposite" via "sudo nano /etc/modules"
mettre "denyinterfaces usb0" via "sudo nano /etc/dhcpcd.conf"
sudo apt-get install dnsmasq
sudo nano /etc/dnsmasq.d/usb

insérer le contenu ci dessous dans de le fichier :
interface=usb0 dhcp-range=10.55.0.2,10.55.0.6,255.255.255.248,1h dhcp-option=3 leasefile-ro

sudo nano /etc/network/interfaces.d/usb0

insérer le contenu ci dessous dans le fichier :
auto usb0 allow-hotplug usb0 iface usb0 inet static   address 10.55.0.1   netmask 255.255.255.248
 
sudo nano /root/usb.sh

insérer le contenu ci dessous dans le fichier :
#!/bin/bash
cd /sys/kernel/config/usb_gadget/ 
mkdir -p pi4 
cd pi4 
echo 0x1d6b > idVendor # Linux Foundation echo 0x0104 > idProduct # Multifunction Composite Gadget 
echo 0x0100 > bcdDevice # v1.0.0 echo 0x0200 > bcdUSB # USB2 
echo 0xEF > bDeviceClass echo 0x02 > bDeviceSubClass echo 0x01 > bDeviceProtocol 
mkdir -p strings/0x409 echo "fedcba9876543211" > strings/0x409/serialnumber 
echo "Ben Hardill" > strings/0x409/manufacturer 
echo "PI4 USB Device" > strings/0x409/product 
mkdir -p configs/c.1/strings/0x409 
echo "Config 1: ECM network" > configs/c.1/strings/0x409/configuration 
echo 250 > configs/c.1/MaxPower 
# Add functions here # see gadget configurations below 
# End functions 
mkdir -p functions/ecm.usb0 
HOST="00:dc:c8:f7:75:14"  # "HostPC" 
SELF="00:dd:dc:eb:6d:a1"  # "BadUSB" 
echo $HOST > functions/ecm.usb0/host_addr 
echo $SELF > functions/ecm.usb0/dev_addr 
ln -s functions/ecm.usb0 configs/c.1/ 
udevadm settle -t 5 || : 
ls /sys/class/udc > UDC 
ifup usb0 
service dnsmasq restart

Ensuite on met le script en mode executable
chmod +x /root/usb.sh

mettre /root/usb.sh dans le fichier "sudo nano /etc/rc.local" juste avant exit 0

Ensuite on débranche le cable « USB-C » d alimentation. On branche le cable « USB-C » à l iPad ou au PC muni d un « USB-C » ,. Ce qui permet d alimenter le RPI est monter une carte réseau ethernet virtuelle