{{indexmenu_n>30}}
====== Edge2 USB Gadget ======
{{page>/products/sbc/common/configurations/usb-gadget&noheader}}
===== Usage of ADB =====
ADB is enabled by default, you can access the device directly via adb:
$ adb kill-server
$ adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
12036c819990 device
$ adb shell
root@Khadas:/#
===== Enable Other USB Functions =====
You can dynamically switch USB functions by writing to ''/tmp/.usb_config'' and restarting the ''usbdevice'' service.
* **Enable RNDIS**
echo usb_rndis_en > /tmp/.usb_config
sudo usbdevice restart
* **Enable ACM**
echo usb_acm_en > /tmp/.usb_config
sudo usbdevice restart
* **Enable UAC**
echo usb_uac_en > /tmp/.usb_config
sudo usbdevice restart
* **Enable UVC**
echo usb_uvc_en > /tmp/.usb_config
sudo usbdevice restart
After enabling UVC, run:
uvc-gadget rockchip/functions/uvc.0 -d /dev/videoX
> Note: Replace ''X'' with the actual video node number.
* **Enable UMS**
echo usb_ums_en > /tmp/.usb_config
sudo mkdir -p /userdata/
dd if=/dev/zero of=/userdata/ums_shared.img bs=1M count=1024
UMS mode requires the empty ''ums_shared.img'' file (1GB in the example above), which will be recognized as a storage drive by the host system.
===== RNDIS Setup IP Address =====
After enabling RNDIS, configure the IP address manually. For example, set the device IP to ''192.168.35.100'':
sudo ifconfig usb0 192.168.35.100 up
Also configure the IP on the host PC, for example ''192.168.35.110''.
Test the network connection:
ping -I usb0 192.168.35.110