working networking and serial
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 27 Aug 2017 17:36:46 +0000 (19:36 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 27 Aug 2017 17:36:46 +0000 (19:36 +0200)
rndis-ecm-adm.sh [new file with mode: 0644]

diff --git a/rndis-ecm-adm.sh b/rndis-ecm-adm.sh
new file mode 100644 (file)
index 0000000..a4012f6
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+#
+# HackPi
+#  by wismna
+#  http://github.com/wismna/raspberry-pi/hackpi
+#  14/01/2017
+#
+
+cd /sys/kernel/config/usb_gadget/
+mkdir -p g1
+cd g1
+
+OS=`cat /home/pi/os.txt`
+HOST="48:6f:73:74:50:43"
+SELF0="42:61:64:55:53:42"
+SELF1="42:61:64:55:53:43"
+
+echo 0x04b3 > idVendor
+echo 0x4010 > idProduct
+
+echo 0x0100 > bcdDevice # v1.0.0
+mkdir -p strings/0x409
+echo "badc0deddeadbeef" > strings/0x409/serialnumber
+echo "wismna" > strings/0x409/manufacturer
+echo "PiZero" > strings/0x409/product
+
+if [ "$OS" != "MacOs" ]; then
+       # Config 1: RNDIS
+       mkdir -p configs/c.1/strings/0x409
+       echo "0x80" > configs/c.1/bmAttributes
+       echo 250 > configs/c.1/MaxPower
+       echo "Config 1: RNDIS network" > configs/c.1/strings/0x409/configuration
+
+       echo "1" > os_desc/use
+       echo "0xcd" > os_desc/b_vendor_code
+       echo "MSFT100" > os_desc/qw_sign
+
+       mkdir -p functions/rndis.usb0
+       echo $SELF0 > functions/rndis.usb0/dev_addr
+       echo $HOST > functions/rndis.usb0/host_addr
+       echo "RNDIS" > functions/rndis.usb0/os_desc/interface.rndis/compatible_id
+       echo "5162001" > functions/rndis.usb0/os_desc/interface.rndis/sub_compatible_id
+fi
+
+# Config 2: CDC ECM
+mkdir -p configs/c.2/strings/0x409
+echo "Config 2: ECM network" > configs/c.2/strings/0x409/configuration
+echo 250 > configs/c.2/MaxPower
+
+mkdir -p functions/ecm.usb0
+# first byte of address must be even
+echo $HOST > functions/ecm.usb0/host_addr
+echo $SELF1 > functions/ecm.usb0/dev_addr
+
+# Create the CDC ACM function
+mkdir -p functions/acm.gs0
+
+# Link everything and bind the USB device
+if [ "$OS" != "MacOs" ]; then
+       ln -s configs/c.1 os_desc
+       ln -s functions/rndis.usb0 configs/c.1
+fi
+
+ln -s functions/ecm.usb0 configs/c.2
+ln -s functions/acm.gs0 configs/c.2
+# End functions
+ls /sys/class/udc > UDC