Raspberry pi 4, collegamento iPad via usb-c ethernet

Raspberry on ipad pro over usb-c

L’usb-c, l’interfaccia definitiva che permette di essere utilizzata come alimentazione, uscita hdmi e anche sorprendentemente come ethernet, permette il collegamento diretto tra due dispositivi, nel nostro caso un Raspberry ed un iPad. Di seguito vedremo come si fa.

Cosa serve per il collegamento diretto usb-c

Prima di procedere avete bisogno di un Rasperry pi 4, di un iPad Pro e ovviamente di un cavo usb-c. Attenzione, non tutti i cavi sono utilizzabili, quello di Apple ad esempio non funziona. In rete ho scoperto che l’implementazione della usb-c sul piccolo raspberry ha un bug. Personalmente ho provato il cavo Amazon Basic e funziona perfettamente. Vi consiglio di utilizzare quello, lo trovate su https://amzn.to/2Zbye7K. Per il Raspberry invece vi consiglio questo https://amzn.to/2Ze5vzw, avete tutto il kit compreso di ventola.

Abilitare ethernet over usb-c

Questa è la parte più noiosa. Per prima cosa aprite il terminale sul vostro Raspberry e andate al livello base della gerarchia cartelle digitando il comando

cd //

Adesso bisogna aggiungere al file /boot/config.txt la riga  dtoverlay=dwc2 Potete farlo come vi pare, io uso nano

sudo nano /boot/config.txt

Aggiungere con lo stesso procedimento al file /boot/cmdline.txt la riga modules-load=dwc2

sudo nano /boot/cmdline.txt

Se non l’avete già fatto abilitate ssh, trovate l’opzione in Interfacing Options digitando il comando:

sudo raspi-config

Create il file ssh in /boot

sudo touch /boot/ssh

Aggiungete la riga libcomposite al file /etc/modules

sudo nano /etc/modules

Aggiungete la riga denyinterfaces usb0 al file /etc/dhcpcd.conf

sudo nano /etc/dhcpcd.conf

Installate dnsmasq con il comando

sudo apt-get install dnsmasq

Create il file /etc/dnsmasq.d/usb e apritelo

sudo touch /etc/dnsmasq.d/usb
sudo nano /etc/dnsmasq.d/usb

aggiungeteci questa robaccia

interface=usb0
dhcp-range=10.55.0.2,10.55.0.6,255.255.255.248,1h
dhcp-option=3
leasefile-ro

Create /etc/network/interfaces.d/usb0 e apritelo

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

Aggiungetegli quest’altra robaccia

auto usb0
allow-hotplug usb0
iface usb0 inet static
  address 10.55.0.1
  netmask 255.255.255.248

Create /root/usb.sh e apritelo

sudo touch /root/usb.sh
sudo nano /root/usb.sh

Aggiungete

#!/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

Cambiate i permessi al file appena creato in modo da renderlo eseguibile

sudo chmod +x /root/usb.sh

Aggiungete la riga /root/usb.sh al file/etc/rc.local prima della riga exit 0 

sudo nano /etc/rc.local

Spegnete il RaspBerry e collegatelo all’iPad, se tutti è andato per il verso giusto dopo poco meno di un minuto dovrebbe apparirvi sulle impostazioni di iPad un dispositivo ethernet, il vostro raspberry sarà disponibile all’indirizzo ip 10.55.0.1. Potete accedervi sia attraverso ssh con il comando

ssh [email protected]

Ovvero, se avete attivato vnc con Jump Desktop o altro client equivalente.

usb-c - ethernet ipad pro
raspberry pi 4
Precedente Raspberry pi 4, il miglior compagno di iPad pro Successivo Domare la ventola del Raspberry con transistor e resistenze