From 579875cdcbd028b73e09b077dc13138e867ba27d Mon Sep 17 00:00:00 2001 From: Matthias Hentges Date: Wed, 6 Jun 2007 02:27:38 +0000 Subject: usb-gadget-mode: Add usb-gadget mode: An initscript to load the configured USB gadget module on boot --- packages/usb-gadget-mode/.mtn2git_empty | 0 packages/usb-gadget-mode/files/.mtn2git_empty | 0 .../usb-gadget-mode/files/spitz/.mtn2git_empty | 0 packages/usb-gadget-mode/files/usb-gadget | 59 ++++++++++++++++++++++ packages/usb-gadget-mode/files/usb-gadget.conf | 3 ++ packages/usb-gadget-mode/files/usb-gadget.init | 16 ++++++ packages/usb-gadget-mode/usb-gadget-mode.bb | 50 ++++++++++++++++++ 7 files changed, 128 insertions(+) create mode 100644 packages/usb-gadget-mode/.mtn2git_empty create mode 100644 packages/usb-gadget-mode/files/.mtn2git_empty create mode 100644 packages/usb-gadget-mode/files/spitz/.mtn2git_empty create mode 100755 packages/usb-gadget-mode/files/usb-gadget create mode 100644 packages/usb-gadget-mode/files/usb-gadget.conf create mode 100755 packages/usb-gadget-mode/files/usb-gadget.init create mode 100644 packages/usb-gadget-mode/usb-gadget-mode.bb (limited to 'packages/usb-gadget-mode') diff --git a/packages/usb-gadget-mode/.mtn2git_empty b/packages/usb-gadget-mode/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/usb-gadget-mode/files/.mtn2git_empty b/packages/usb-gadget-mode/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/usb-gadget-mode/files/spitz/.mtn2git_empty b/packages/usb-gadget-mode/files/spitz/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/usb-gadget-mode/files/usb-gadget b/packages/usb-gadget-mode/files/usb-gadget new file mode 100755 index 0000000000..611703f09d --- /dev/null +++ b/packages/usb-gadget-mode/files/usb-gadget @@ -0,0 +1,59 @@ +#! /bin/sh +# +# Copyright Matthias Hentges (c) 2007 +# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license) +# +# Filename: usb-gadget +# Date: 20070606 (YMD) +# +################################################################################# +# +# 20070606 - v0.0.1 - Initial release + +CONF_FILE="/etc/usb-gadget.conf" + +die() { + echo "ERROR: $1" + exit 1 +} + +go() { + test -e "$CONF_FILE" && . "$CONF_FILE" + + case "$USB_MODE" in + networking) setup_usb g_ether "$MODULE_OPTIONS" ;; + storage) setup_usb g_file_storage "$MODULE_OPTIONS" ;; + none) unload_usb_gadgets ;; + esac + +} + +setup_usb() { + + if ! ( lsmod | grep -q "$1" ) + then + unload_usb_gadgets + echo "Loading [$1]" + modprobe "$1" "$MODULE_OPTIONS" + else + echo "Already loaded: [$1]" + fi +} + +unload_usb_gadgets() { + KERNEL_VERSION="`uname -r`" + GADGET_MODULES="`find /lib/modules/$KERNEL_VERSION/kernel/drivers/usb/gadget -name "*g_*"`" + + for module in $GADGET_MODULES + do + MODULE_NAME="`basename $module | sed "s/\.ko//"`" + + if ( lsmod | grep -q "$MODULE_NAME" ) + then + echo "Unloading [$MODULE_NAME]" + rmmod "$module" + fi + done +} + +go diff --git a/packages/usb-gadget-mode/files/usb-gadget.conf b/packages/usb-gadget-mode/files/usb-gadget.conf new file mode 100644 index 0000000000..3b5ebd6433 --- /dev/null +++ b/packages/usb-gadget-mode/files/usb-gadget.conf @@ -0,0 +1,3 @@ +USB_MODE="" +MODULE_OPTIONS="" + diff --git a/packages/usb-gadget-mode/files/usb-gadget.init b/packages/usb-gadget-mode/files/usb-gadget.init new file mode 100755 index 0000000000..7bf456b652 --- /dev/null +++ b/packages/usb-gadget-mode/files/usb-gadget.init @@ -0,0 +1,16 @@ +#! /bin/sh +# +# Copyright Matthias Hentges (c) 2007 +# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license) +# +# Filename: usb-gadget.init +# Date: 20070606 (YMD) +# +################################################################################# +# +# 20070606 - v0.0.1 - Initial release + +case "$1" in +start) usb-gadget ;; +esac + diff --git a/packages/usb-gadget-mode/usb-gadget-mode.bb b/packages/usb-gadget-mode/usb-gadget-mode.bb new file mode 100644 index 0000000000..7c2083e99b --- /dev/null +++ b/packages/usb-gadget-mode/usb-gadget-mode.bb @@ -0,0 +1,50 @@ +#! /bin/sh +# +# Copyright Matthias Hentges (c) 2007 +# License: MIT (see http://www.opensource.org/licenses/mit-license.php +# for a copy of the license) +# +# Filename: usb-gadget-mode.bb +# Date: 20070606 (YMD) + +DESCRIPTION = "Manage the default USB gadget mode" +MAINTAINER = "Matthias 'CoreDump' Hentges " +HOMEPAGE = "" +LICENSE = "GPL" + +###################################################################################### + +PV = "0.0.1" +PR = "r0" + +###################################################################################### + +PACKAGE_ARCH = "${MACHINE}" + +###################################################################################### + +SRC_URI = "file://usb-gadget.conf \ + file://usb-gadget \ + file://usb-gadget.init" + +###################################################################################### + +do_install() { + install -d ${D}/etc + install -d ${D}/etc/init.d + install -d ${D}/usr/bin + + install -m 0644 ${WORKDIR}/usb-gadget.conf ${D}/etc + install -m 0755 ${WORKDIR}/usb-gadget.init ${D}/etc/init.d/usb-gadget + install -m 0755 ${WORKDIR}/usb-gadget ${D}/usr/bin +} + +pkg_postinst() { + + test -n "$D" && opt="-r $D" + update-rc.d $opt usb-gadget defaults 50 +} + +pkg_postrm() { + update-rc.d -f usb-gadget remove +} -- cgit 1.2.3-korg