Makes a Linux system look like a USB device to a host computer.
Glossary
systemd is a system and service manager for Linux operating systems. When run as first process on boot (as PID 1), it acts as init system that brings up and maintains userspace services.
Sudo (su "do") allows running certain commands as root or another user.
The su command is used to become another user during a login session. Invoked without a username, su defaults to becoming the superuser.
SPI or Serial Peripheral Interface Bus is a synchronous four-wire serial communication interface. Devices communicate in full duplex mode using a master-slave architecture with a single master connected to multiple slaves. Slaves are selected using multiple slave select (SS) lines.
A system on a chip or system-on-chip is an integrated circuit that integrates most or all components of a computer or other electronic system.
The CPU and GPU on the SoC used on Raspberry Pi share the system memory. The amount of memory for the GPU can be adjusted in the config.txt file with the gpu_mem option. If you are not using any software the needs the GPU you can maximize the system memory by setting this to 16.
losetup is used to associate loop devices with regular files or block devices, to detach loop devices, and to query the status of a loop device.
A loop device is a pseudo-device that makes a file accessible as a block device. This makes it possible for example to mount ISO9660 or HD image files as if they would be actual devices.
I²C (I-squared-C) is a multi-master, multi-slave, packet switched, single-ended, serial computer bus. It uses only two bidirectional open-drain lines, Serial Data Line (SDA) and Serial Clock Line (SCL), pulled up with resistors.
Two wires are used:
Linux USB gadget serial driver.
Linux USB gadget CDC Composite Device, Ethernet and ACM (Serial)
Dual Role Hi-Speed USB controller based on the DesignWare HSOTG IP Core in many SoCs. dwc2 is an driver which can do OTG host/gadget flip dictated by OTG_SENSE on the USB port.
It can be used for example on Raspberry Pis that have a USB OTG port.