diff options
Diffstat (limited to 'recipes-support')
-rw-r--r-- | recipes-support/libusbgx/files/apalis-imx6/g1.schema | 68 | ||||
-rw-r--r-- | recipes-support/libusbgx/files/colibri-imx6/g1.schema | 68 | ||||
-rw-r--r-- | recipes-support/libusbgx/files/colibri-imx7/g1.schema | 68 | ||||
-rw-r--r-- | recipes-support/libusbgx/files/colibri-vf/g1.schema | 68 | ||||
-rw-r--r-- | recipes-support/libusbgx/files/usbg.service | 17 | ||||
-rw-r--r-- | recipes-support/libusbgx/libusbgx_git.bb | 24 |
6 files changed, 309 insertions, 4 deletions
diff --git a/recipes-support/libusbgx/files/apalis-imx6/g1.schema b/recipes-support/libusbgx/files/apalis-imx6/g1.schema new file mode 100644 index 0000000..c09d478 --- /dev/null +++ b/recipes-support/libusbgx/files/apalis-imx6/g1.schema @@ -0,0 +1,68 @@ +attrs : +{ + bcdUSB = 0x200; + bDeviceClass = 0x2; + bDeviceSubClass = 0x0; + bDeviceProtocol = 0x0; + bMaxPacketSize0 = 0x40; + idVendor = 0x1D6B; + idProduct = 0x104; + bcdDevice = 0x401; +}; +os_descs : +{ + config = "c_1"; + use = 1; + qw_sign = "MSFT100"; + b_vendor_code = 0xCD; +}; +strings = ( + { + lang = 0x409; + manufacturer = "Toradex"; + product = "Toradex Apalis iMX6"; + serialnumber = "00000000"; + } ); +functions : +{ + rndis_usb0 : + { + instance = "usb0"; + type = "rndis"; + attrs : + { + dev_addr = "00:14:2d:ff:ff:ff"; + host_addr = "00:14:2d:ff:ff:fe"; + qmult = 5; + }; + os_descs = ( + { + interface = "rndis"; + compatible_id = "RNDIS"; + sub_compatible_id = "5162001"; + } ); + }; +}; +configs : +{ + c_1 : + { + id = 1; + name = "c"; + attrs : + { + bmAttributes = 0xC0; + bMaxPower = 0x1; + }; + strings = ( + { + lang = 0x409; + configuration = "RNDIS"; + } ); + functions = ( + { + name = "rndis.usb0"; + function = "rndis_usb0"; + } ); + }; +}; diff --git a/recipes-support/libusbgx/files/colibri-imx6/g1.schema b/recipes-support/libusbgx/files/colibri-imx6/g1.schema new file mode 100644 index 0000000..eda33be --- /dev/null +++ b/recipes-support/libusbgx/files/colibri-imx6/g1.schema @@ -0,0 +1,68 @@ +attrs : +{ + bcdUSB = 0x200; + bDeviceClass = 0x2; + bDeviceSubClass = 0x0; + bDeviceProtocol = 0x0; + bMaxPacketSize0 = 0x40; + idVendor = 0x1D6B; + idProduct = 0x104; + bcdDevice = 0x401; +}; +os_descs : +{ + config = "c_1"; + use = 1; + qw_sign = "MSFT100"; + b_vendor_code = 0xCD; +}; +strings = ( + { + lang = 0x409; + manufacturer = "Toradex"; + product = "Toradex Colibri iMX6"; + serialnumber = "00000000"; + } ); +functions : +{ + rndis_usb0 : + { + instance = "usb0"; + type = "rndis"; + attrs : + { + dev_addr = "00:14:2d:ff:ff:ff"; + host_addr = "00:14:2d:ff:ff:fe"; + qmult = 5; + }; + os_descs = ( + { + interface = "rndis"; + compatible_id = "RNDIS"; + sub_compatible_id = "5162001"; + } ); + }; +}; +configs : +{ + c_1 : + { + id = 1; + name = "c"; + attrs : + { + bmAttributes = 0xC0; + bMaxPower = 0x1; + }; + strings = ( + { + lang = 0x409; + configuration = "RNDIS"; + } ); + functions = ( + { + name = "rndis.usb0"; + function = "rndis_usb0"; + } ); + }; +}; diff --git a/recipes-support/libusbgx/files/colibri-imx7/g1.schema b/recipes-support/libusbgx/files/colibri-imx7/g1.schema new file mode 100644 index 0000000..cbfa505 --- /dev/null +++ b/recipes-support/libusbgx/files/colibri-imx7/g1.schema @@ -0,0 +1,68 @@ +attrs : +{ + bcdUSB = 0x200; + bDeviceClass = 0x2; + bDeviceSubClass = 0x0; + bDeviceProtocol = 0x0; + bMaxPacketSize0 = 0x40; + idVendor = 0x1D6B; + idProduct = 0x104; + bcdDevice = 0x401; +}; +os_descs : +{ + config = "c_1"; + use = 1; + qw_sign = "MSFT100"; + b_vendor_code = 0xCD; +}; +strings = ( + { + lang = 0x409; + manufacturer = "Toradex"; + product = "Toradex Colibri iMX7"; + serialnumber = "00000000"; + } ); +functions : +{ + rndis_usb0 : + { + instance = "usb0"; + type = "rndis"; + attrs : + { + dev_addr = "00:14:2d:ff:ff:ff"; + host_addr = "00:14:2d:ff:ff:fe"; + qmult = 5; + }; + os_descs = ( + { + interface = "rndis"; + compatible_id = "RNDIS"; + sub_compatible_id = "5162001"; + } ); + }; +}; +configs : +{ + c_1 : + { + id = 1; + name = "c"; + attrs : + { + bmAttributes = 0xC0; + bMaxPower = 0x1; + }; + strings = ( + { + lang = 0x409; + configuration = "RNDIS"; + } ); + functions = ( + { + name = "rndis.usb0"; + function = "rndis_usb0"; + } ); + }; +}; diff --git a/recipes-support/libusbgx/files/colibri-vf/g1.schema b/recipes-support/libusbgx/files/colibri-vf/g1.schema new file mode 100644 index 0000000..8f3cff8 --- /dev/null +++ b/recipes-support/libusbgx/files/colibri-vf/g1.schema @@ -0,0 +1,68 @@ +attrs : +{ + bcdUSB = 0x200; + bDeviceClass = 0x2; + bDeviceSubClass = 0x0; + bDeviceProtocol = 0x0; + bMaxPacketSize0 = 0x40; + idVendor = 0x1D6B; + idProduct = 0x104; + bcdDevice = 0x401; +}; +os_descs : +{ + config = "c_1"; + use = 1; + qw_sign = "MSFT100"; + b_vendor_code = 0xCD; +}; +strings = ( + { + lang = 0x409; + manufacturer = "Toradex"; + product = "Toradex Colibri VF50/VF61"; + serialnumber = "00000000"; + } ); +functions : +{ + rndis_usb0 : + { + instance = "usb0"; + type = "rndis"; + attrs : + { + dev_addr = "00:14:2d:ff:ff:ff"; + host_addr = "00:14:2d:ff:ff:fe"; + qmult = 5; + }; + os_descs = ( + { + interface = "rndis"; + compatible_id = "RNDIS"; + sub_compatible_id = "5162001"; + } ); + }; +}; +configs : +{ + c_1 : + { + id = 1; + name = "c"; + attrs : + { + bmAttributes = 0xC0; + bMaxPower = 0x1; + }; + strings = ( + { + lang = 0x409; + configuration = "RNDIS"; + } ); + functions = ( + { + name = "rndis.usb0"; + function = "rndis_usb0"; + } ); + }; +}; diff --git a/recipes-support/libusbgx/files/usbg.service b/recipes-support/libusbgx/files/usbg.service new file mode 100644 index 0000000..a4e6f80 --- /dev/null +++ b/recipes-support/libusbgx/files/usbg.service @@ -0,0 +1,17 @@ +[Unit] +Description=Load default USB gadget schema g1.schema +ConditionPathExists=/etc/usbg/g1.schema +Before=systemd-networkd.service + +[Service] +Type=oneshot +ExecStart=/usr/bin/gadget-import g1 /etc/usbg/g1.schema +ExecStartPost=/bin/sh -c '/bin/echo $((0x4000+$(cat /proc/device-tree/toradex,product-id))) > \ + /sys/kernel/config/usb_gadget/g1/idProduct' +ExecStartPost=/bin/sh -c '/bin/cat /proc/device-tree/serial-number > \ + /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber' +ExecStartPost=/bin/sh -c '/bin/echo `ls /sys/class/udc/` > \ + /sys/kernel/config/usb_gadget/g1/UDC' + +[Install] +WantedBy=multi-user.target diff --git a/recipes-support/libusbgx/libusbgx_git.bb b/recipes-support/libusbgx/libusbgx_git.bb index 6c85b20..3e81b39 100644 --- a/recipes-support/libusbgx/libusbgx_git.bb +++ b/recipes-support/libusbgx/libusbgx_git.bb @@ -4,14 +4,30 @@ LICENSE = "GPLv2 & LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c" -inherit autotools pkgconfig +inherit autotools pkgconfig systemd DEPENDS = "libconfig" +EXTRA_OECONF = "--includedir=${includedir}/usbgx" + PV = "0.1.0+git${SRCPV}" -SRCREV = "9e136571aa4b82fe50028d82ebf14541a7c6245f" -SRC_URI = "git://github.com/toradex/libusbgx.git \ - " +SRCREV = "566993a7647ed5cb36098f27084fd2d5d1f0f017" +SRCBRANCH = "os_descriptors" +SRC_URI = "git://github.com/toradex/libusbgx.git;branch=${SRCBRANCH} \ + file://usbg.service \ + file://g1.schema \ +" S = "${WORKDIR}/git" +do_install_append () { + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/usbg.service ${D}${systemd_unitdir}/system + + install -d ${D}${sysconfdir}/usbg/ + install -m 0644 ${WORKDIR}/g1.schema ${D}${sysconfdir}/usbg/g1.schema +} + +NATIVE_SYSTEMD_SUPPORT = "1" +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "usbg.service" |