summaryrefslogtreecommitdiff
path: root/recipes-support
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-support')
-rw-r--r--recipes-support/libusbgx/files/apalis-imx6/g1.schema68
-rw-r--r--recipes-support/libusbgx/files/colibri-imx6/g1.schema68
-rw-r--r--recipes-support/libusbgx/files/colibri-imx7/g1.schema68
-rw-r--r--recipes-support/libusbgx/files/colibri-vf/g1.schema68
-rw-r--r--recipes-support/libusbgx/files/usbg.service17
-rw-r--r--recipes-support/libusbgx/libusbgx_git.bb24
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"