mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-04-02 02:49:12 +00:00
libusbgx: Add recipe
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> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
parent
ebc7b9e20a
commit
f29268ee21
12
meta-oe/recipes-support/libusbgx/libusbgx-config.bb
Normal file
12
meta-oe/recipes-support/libusbgx/libusbgx-config.bb
Normal file
@ -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
|
||||
}
|
||||
@ -0,0 +1,2 @@
|
||||
IMPORT_SCHEMAS=""
|
||||
ENABLED_SCHEMAS="$IMPORT_SCHEMAS"
|
||||
11
meta-oe/recipes-support/libusbgx/libusbgx/gadget-start
Normal file
11
meta-oe/recipes-support/libusbgx/libusbgx/gadget-start
Normal file
@ -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
|
||||
143
meta-oe/recipes-support/libusbgx/libusbgx/usbgx.initd
Normal file
143
meta-oe/recipes-support/libusbgx/libusbgx/usbgx.initd
Normal file
@ -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
|
||||
9
meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service
Normal file
9
meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service
Normal file
@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Load USB gadget schemas
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/gadget-start
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
40
meta-oe/recipes-support/libusbgx/libusbgx_git.bb
Normal file
40
meta-oe/recipes-support/libusbgx/libusbgx_git.bb
Normal file
@ -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"
|
||||
Loading…
x
Reference in New Issue
Block a user