All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] libusbgx: Add recipe
@ 2018-11-30 22:43 Otavio Salvador
  0 siblings, 0 replies; only message in thread
From: Otavio Salvador @ 2018-11-30 22:43 UTC (permalink / raw)
  To: Meta-OpenEmbedded Mailing listing

The libusbgx allow easier use and setup of USB gadgets. To easy
integration on different systems a libusbgx-config package is provided
so it can be used to start and enable respective USB gadget schema.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---

 .../libusbgx/libusbgx-config.bb               |  12 ++
 .../libusbgx/libusbgx-config/usbgx.default    |   2 +
 .../libusbgx/libusbgx/gadget-start            |  11 ++
 .../libusbgx/libusbgx/usbgx.initd             | 143 ++++++++++++++++++
 .../libusbgx/libusbgx/usbgx.service           |   9 ++
 .../recipes-support/libusbgx/libusbgx_git.bb  |  40 +++++
 6 files changed, 217 insertions(+)
 create mode 100644 meta-oe/recipes-support/libusbgx/libusbgx-config.bb
 create mode 100644 meta-oe/recipes-support/libusbgx/libusbgx-config/usbgx.default
 create mode 100644 meta-oe/recipes-support/libusbgx/libusbgx/gadget-start
 create mode 100644 meta-oe/recipes-support/libusbgx/libusbgx/usbgx.initd
 create mode 100644 meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service
 create mode 100644 meta-oe/recipes-support/libusbgx/libusbgx_git.bb

diff --git a/meta-oe/recipes-support/libusbgx/libusbgx-config.bb b/meta-oe/recipes-support/libusbgx/libusbgx-config.bb
new file mode 100644
index 000000000..b269e33c4
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx-config.bb
@@ -0,0 +1,12 @@
+SUMMARY = "USB Gadget Configuration Files"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SRC_URI = "file://usbgx.default"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+    install -Dm 0644 ${WORKDIR}/usbgx.default ${D}${sysconfdir}/default/usbgx
+}
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx-config/usbgx.default b/meta-oe/recipes-support/libusbgx/libusbgx-config/usbgx.default
new file mode 100644
index 000000000..f690dfe2a
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx-config/usbgx.default
@@ -0,0 +1,2 @@
+IMPORT_SCHEMAS=""
+ENABLED_SCHEMAS="$IMPORT_SCHEMAS"
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start b/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start
new file mode 100644
index 000000000..1a106b785
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+[ -r /etc/default/usbgx ] && . /etc/default/usbgx
+
+for i in $IMPORT_SCHEMAS; do
+    /usr/bin/gadget-import "$i" /etc/usbgx/"$i".schema
+done
+
+for i in $ENABLED_SCHEMAS; do
+    ls /sys/class/udc/ > /sys/kernel/config/usb_gadget/"$i"/UDC
+done
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.initd b/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.initd
new file mode 100644
index 000000000..d1938078f
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.initd
@@ -0,0 +1,143 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:          usbg
+# Required-Start:    $local_fs
+# Should-Start:
+# Required-Stop:     $local_fs
+# Should-Stop:
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Example initscript
+# Description:       This file should be used to construct scripts to be
+#                    placed in /etc/init.d
+### END INIT INFO
+
+# PATH should only include /usr/* if it runs after the mountnfs.sh script
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+DESC="Load USB gadget schemas"
+NAME="usbgx"
+DAEMON=/usr/bin/gadget-start
+DAEMON_ARGS=""
+PIDFILE=/var/run/$NAME.pid
+
+. /etc/init.d/functions || exit 1
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+#
+# Function that starts the daemon/service
+#
+do_start() {
+    local status pid
+
+    status=0
+    pid=`pidofproc $NAME` || status=$?
+    case $status in
+        0)
+            echo "$DESC already running ($pid)."
+            exit 1
+            ;;
+        *)
+            echo "Starting $DESC ..."
+            exec $DAEMON $DAEMON_ARGS >/dev/null 2>&1 || status=$?
+            echo "ERROR: Failed to start $DESC."
+            exit $status
+            ;;
+    esac
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop() {
+    local pid status
+
+    status=0
+    pid=`pidofproc $NAME` || status=$?
+    case $status in
+        0)
+            # Exit when fail to stop, the kill would complain when fail
+            kill -s 15 $pid >/dev/null && rm -f $PIDFILE && \
+                echo "Stopped $DESC ($pid)." || exit $?
+            ;;
+        *)
+            echo "$DESC is not running; none killed." >&2
+            ;;
+    esac
+
+    return $status
+}
+
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+    local pid status
+
+    status=0
+    # If the daemon can reload its configuration without
+    # restarting (for example, when it is sent a SIGHUP),
+    # then implement that here.
+    pid=`pidofproc $NAME` || status=$?
+    case $status in
+        0)
+            echo "Reloading $DESC ..."
+            kill -s 1 $pid || exit $?
+            ;;
+        *)
+            echo "$DESC is not running; none reloaded." >&2
+            ;;
+    esac
+    exit $status
+}
+
+
+#
+# Function that shows the daemon/service status
+#
+status_of_proc () {
+    local pid status
+
+    status=0
+    # pidof output null when no program is running, so no "2>/dev/null".
+    pid=`pidofproc $NAME` || status=$?
+    case $status in
+        0)
+            echo "$DESC is running ($pid)."
+            exit 0
+            ;;
+        *)
+            echo "$DESC is not running." >&2
+            exit $status
+            ;;
+    esac
+}
+
+case "$1" in
+    start)
+        do_start
+        ;;
+    stop)
+        do_stop || exit $?
+        ;;
+    status)
+        status_of_proc
+        ;;
+    restart)
+        # Always start the service regardless the status of do_stop
+        do_stop
+        do_start
+        ;;
+    try-restart|force-reload)
+        do_stop && do_start
+        ;;
+    *)
+        echo "Usage: $0 {start|stop|status|restart|try-restart|force-reload}" >&2
+        exit 3
+        ;;
+esac
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service b/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service
new file mode 100644
index 000000000..74541d3c2
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Load USB gadget schemas
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/gadget-start
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx_git.bb b/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
new file mode 100644
index 000000000..d73ca6106
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
@@ -0,0 +1,40 @@
+SUMMARY = "USB Gadget neXt Configfs Library"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "libconfig"
+
+inherit autotools pkgconfig systemd update-rc.d
+
+PV = "0.2.0+git${SRCPV}"
+SRCREV = "45c14ef4d5d7ced0fbf984208de44ced6d5ed898"
+SRCBRANCH = "master"
+SRC_URI = " \
+    git://github.com/libusbgx/libusbgx.git;branch=${SRCBRANCH} \
+    file://gadget-start \
+    file://usbgx.initd \
+    file://usbgx.service \
+"
+
+S = "${WORKDIR}/git"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "usbgx.service"
+
+INITSCRIPT_NAME = "usbgx"
+INITSCRIPT_PARAMS = "defaults"
+
+EXTRA_OECONF = "--includedir=${includedir}/usbgx"
+
+do_install_append() {
+    install -Dm 0755 ${WORKDIR}/gadget-start ${D}/${bindir}/gadget-start
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        install -Dm 0644 ${WORKDIR}/usbgx.service ${D}${systemd_system_unitdir}/usbgx.service
+    fi
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+		install -Dm 0755 ${WORKDIR}/usbgx.initd ${D}${sysconfdir}/init.d/usbgx
+	fi
+}
+
+RDEPENDS_${PN} += "libusbgx-config"
-- 
2.19.2



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2018-11-30 22:43 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-30 22:43 [PATCH] libusbgx: Add recipe Otavio Salvador

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.