Compare commits

..

2 Commits

Author SHA1 Message Date
foley 73408d620d Scripts for setting up the Serial and Ethernet OTG USB 2026-06-28 22:57:24 +00:00
foley 5ddec9af64 Archive some old raspi-config settings 2026-06-28 22:24:45 +00:00
3 changed files with 65 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
# Adapted from
# "Using OTG mode on Raspberry Pi SBCs"
# https://pip-assets.raspberrypi.com/categories/685-app-notes-guides-whitepapers/documents/RP-009276-WP/Using-OTG-mode-on-Raspberry-Pi-SBCs
sudo modprobe libcomposite
cd /sys/kernel/config/usb_gadget
# Create our new gadget
sudo mkdir MyGadget
cd MyGadget
# Add some boilerplate data that the gadget needs
echo 0x1d6b > idVendor # Linux Foundations USB VID. Replace with your own VID if required
echo 0x0104 > idProduct # Multifunction Composite Gadget
echo 0x0100 > bcdDevice # v1.0.0
echo 0x0200 > bcdUSB # USB2
mkdir strings/0x409 # 0x409 = English
# Insert your own manufacturer and gadget name here
echo "RaspberryPi" > strings/0x409/manufacturer
echo "MyPiGadget" > strings/0x409/product
# Make the serial number the same as the Raspberry Pi serial number; you can use whatever is required here
SERIAL=`cat /proc/cpuinfo | awk '/Serial/ {print $3}' `
echo $SERIAL > strings/0x409/serialnumber
# Create a configuration area and populate
mkdir configs/c.1
echo 120 > configs/c.1/MaxPower
mkdir configs/c.1/strings/0x409
echo "Config 1" > configs/c.1/strings/0x409/configuration
# Create our specific gadget type
## Mass storage device
### Remember to create the storage block device first
## cd /root
### Example: Make a 256 MB file to act as "USB stick"
## sudo dd if=/dev/zero of=drive.bin bs=1M count=256
### Create a VFAT file system on the backing store
## sudo mkfs.vfat drive.bin
##
# mkdir functions/mass_storage.usb0
## Set up our backing store
# echo "/home/pi/drive.bin" > functions/mass_storage.usb0/lun.0/file
## Link our function to our configuration
#ln -s functions/mass_storage.0 configs/c.1/
## Serial (CDC ACM)
mkdir functions/acm.usb0
ln -s functions/acm.usb0 configs/c.1/
## Ethernet (RNDIS and ECM)
mkdir functions/ecm.usb0
ln -s functions/ecm.usb0 configs/c.1/
+7
View File
@@ -0,0 +1,7 @@
[Unit]
Description=Serial and Ethernet over OTG USB
After=systemd-user-sessions.service
[Service]
ExecStart=/root/rover-pi/Scripts/gadget.sh
[Install]
WantedBy=multi-user.targe
+10
View File
@@ -0,0 +1,10 @@
# raspi-config options to check
```
sudo raspi-config
3 - Interface options
P2 enable SSH
P4 enable SPI
P5 enable I2C
P6 enable serial (You may have to update this later and turn it off for certain UART features to work)
```