# iiod - Upstart script # # Copyright (C) 2017 Analog Devices Inc. description "USB IIO Server" author "Paul Cercueil " start on (local-filesystems) stop on runlevel [!2345] respawn pre-start script if [ ! -d /sys/kernel/config/usb_gadget ] ; then mount configfs -t configfs /sys/kernel/config mkdir /sys/kernel/config/usb_gadget/ffs echo 0x0456 > /sys/kernel/config/usb_gadget/ffs/idVendor echo 0xb671 > /sys/kernel/config/usb_gadget/ffs/idProduct mkdir /sys/kernel/config/usb_gadget/ffs/strings/0x409 echo "Analog Devices Inc." > /sys/kernel/config/usb_gadget/ffs/strings/0x409/manufacturer echo "Generic USB IIOD" > /sys/kernel/config/usb_gadget/ffs/strings/0x409/product echo 00000000 > /sys/kernel/config/usb_gadget/ffs/strings/0x409/serialnumber mkdir /sys/kernel/config/usb_gadget/ffs/functions/ffs.iio_ffs mkdir /sys/kernel/config/usb_gadget/ffs/configs/c.1 mkdir /sys/kernel/config/usb_gadget/ffs/configs/c.1/strings/0x409 echo "IIO" > /sys/kernel/config/usb_gadget/ffs/configs/c.1/strings/0x409/configuration ln -s /sys/kernel/config/usb_gadget/ffs/functions/ffs.iio_ffs /sys/kernel/config/usb_gadget/ffs/configs/c.1/ffs.iio_ffs fi if [ ! -d /dev/iio_ffs ] ; then mkdir /dev/iio_ffs mount iio_ffs -t functionfs /dev/iio_ffs fi end script exec iiod -D -n 6 -F /dev/iio_ffs post-start script UDC_NAME="$(ls -1 /sys/class/udc |head -n1)" sleep 0.1 echo $UDC_NAME > /sys/kernel/config/usb_gadget/ffs/UDC end script