USB On-The-Go (OTG) support
Enable OTG-capable USB ports to toggle between Host and Device mode
Certain models of Raspberry Pi are fitted with a special type of USB port called USB On-The-Go (OTG). This means it can switch between host mode, e.g. allowing you to plug in and use keyboards, mice or USB storage, and device mode, e.g. your Pi can be plugged into another computer and behave like a network device, a USB storage device, an audio device, etc.
The Raspberry Pis that currently support this feature are the Pi Zero and the Pi 4. Below is a set of scripts to modify the Pi and make it behave like a USB storage device when plugged into another computer.
All of the following commands are designed to be run using REMOTE SHELL
Step 0: Install the otg-usb
script
otg-usb
scriptDownload the attached file
Use SEND FILES to transfer the file to
/usr/local/bin
Before clicking [Start Upload], rename the file to
otg-usb
Use REMOTE SHELL to make the file executable
Run
chmod +x /usr/local/bin/otg-usb
Step 1: Enable OTG support
Step 2: Create a new "storage device"
Step 3: Load files from the local system onto the "storage device"
BEFORE YOU RUN THE COMMAND: replace /path/to/file.zip
with a path to an existing file.
Step 4: Activate the "storage device" and plug the Pi into another computer
This is where we tell the Linux kernel what type of "gadget" we want the OTG port to behave like. In this case, we want it to look like a USB stick, a.k.a mass storage, so we select g_mass_storage
. The file
argument tells the kernel to use the file system we created in step 2 as the actual storage.
Now plug the OTG port into another computer and it should appear as if you just plugged in a USB stick! You should see the file that you added in Step 3. You can read and write to files and directories, just like a regular USB stick.
When you are finished, unplug the USB cable and run the following command to turn off the mass storage driver
Notes
You don't need to disconnect the USB cable, it can be left permanently connected. Starting and stopping the driver is enough to cause the "usb stick" to connect and disconnect from the computer.
If you want to add more files from the local file system to the "storage device", you must first stop the driver before using the
cp
ormount
commands.Be aware that stopping the driver while it is being written to will likely cause a corruption and should be avoided.
Last updated