Harald Welte | 6365374 | 2019-01-03 16:54:16 +0100 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | GADGET_NAME=osmo-ccid |
| 4 | |
| 5 | |
| 6 | |
| 7 | GADGET_CONFIGFS=/sys/kernel/config/usb_gadget |
| 8 | |
| 9 | die() { |
| 10 | echo ERROR: $1 |
| 11 | exit 2 |
| 12 | } |
| 13 | |
| 14 | modprobe configfs |
| 15 | modprobe usb_f_fs |
| 16 | modprobe dummy_hcd is_high_speed=0 is_super_speed=0 |
| 17 | |
| 18 | [ -d $GADGET_CONFIGFS ] || die "usb_gadget configfs not mounted" |
| 19 | |
| 20 | gadgetdir="$GADGET_CONFIGFS/$GADGET_NAME" |
| 21 | |
| 22 | # create gadget |
| 23 | [ -d $gadgetdir ] || mkdir $gadgetdir || die "Cannot create $gadgetdir. Permission problem?" |
| 24 | set -e -x |
| 25 | cd $gadgetdir |
| 26 | echo 0x2342 > idVendor |
| 27 | echo 0x2342 > idProduct |
| 28 | [ -d strings/0x409 ] || mkdir strings/0x409 |
| 29 | echo 2342 > strings/0x409/serialnumber |
| 30 | echo "sysmocom GmbH" > strings/0x409/manufacturer |
| 31 | echo "sysmoOCTSIM" > strings/0x409/product |
| 32 | |
| 33 | # create config |
| 34 | [ -d configs/c.1 ] || mkdir configs/c.1 |
| 35 | [ -d configs/c.1/strings/0x409 ] || mkdir configs/c.1/strings/0x409 |
| 36 | echo "sysmoOCTSIM config" > configs/c.1/strings/0x409/configuration |
| 37 | |
| 38 | [ -d functions/ffs.usb0 ] || mkdir functions/ffs.usb0 |
| 39 | [ -e configs/c.1/ffs.usb0 ] || ln -s functions/ffs.usb0 configs/c.1 |
| 40 | |
| 41 | [ -d /dev/ffs-ccid ] || mkdir /dev/ffs-ccid |
| 42 | [ -e /dev/ffs-ccid/ep0 ] || mount -t functionfs usb0 /dev/ffs-ccid/ |
| 43 | |
| 44 | # enable device, only works after program has opened EP FDs |
| 45 | #echo dummy_udc.0 > UDC |
| 46 | |