59 lines
1.5 KiB
Bash
Executable File
59 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
GADGET=/sys/kernel/config/usb_gadget/display-pi
|
|
|
|
SERIAL=`cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2`
|
|
if [ -n "$SERIAL" ]; then
|
|
MAC="fa:${SERIAL:6:2}:${SERIAL:8:2}:${SERIAL:10:2}:${SERIAL:12:2}:${SERIAL:14:2}"
|
|
else
|
|
MAC="fa:31:43:14:31:43"
|
|
fi
|
|
|
|
mount -t configfs none /sys/kernel/config
|
|
mkdir -p $GADGET
|
|
cd $GADGET
|
|
|
|
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 strings/0x409
|
|
echo $SERIAL > strings/0x409/serialnumber
|
|
echo "Raspberry Pi" > strings/0x409/manufacturer
|
|
echo "Display-Pi USB Device" > strings/0x409/product
|
|
|
|
mkdir -p functions/acm.usb0 # serial
|
|
mkdir -p functions/rndis.usb0 # network
|
|
#mkdir -p functions/ecm.usb0
|
|
#echo $MAC > functions/ecm.usb0/dev_addr
|
|
|
|
mkdir -p configs/c.1
|
|
echo 250 > configs/c.1/MaxPower
|
|
ln -s functions/rndis.usb0 configs/c.1/
|
|
ln -s functions/acm.usb0 configs/c.1/
|
|
#ln -s functions/ecm.usb0 configs/c.1/
|
|
|
|
# OS descriptors
|
|
# echo 1 > os_desc/use
|
|
# echo 0xcd > os_desc/b_vendor_code
|
|
# echo MSFT100 > os_desc/qw_sign
|
|
#
|
|
# echo RNDIS > functions/rndis.usb0/os_desc/interface.rndis/compatible_id
|
|
# echo 5162001 > functions/rndis.usb0/os_desc/interface.rndis/sub_compatible_id
|
|
#
|
|
# ln -s configs/c.1 os_desc
|
|
|
|
# Assuming there is only ever going to be one UDC
|
|
udevadm settle -t 5 || :
|
|
ls /sys/class/udc > UDC
|
|
|
|
# systemctl restart networking
|
|
# systemctl restart dnsmasq
|
|
# systemctl restart sshd
|
|
|