diff options
author | Matthias Hentges <oe@hentges.net> | 2007-06-06 02:27:38 +0000 |
---|---|---|
committer | Matthias Hentges <oe@hentges.net> | 2007-06-06 02:27:38 +0000 |
commit | 579875cdcbd028b73e09b077dc13138e867ba27d (patch) | |
tree | c8ed89a4e6d95b1cdd4349bdbb8ba564eccd76cf /packages | |
parent | 97ed9a5df5501089de45ad25f98e86d0cac3d5d6 (diff) |
usb-gadget-mode: Add usb-gadget mode: An initscript to load the configured USB gadget module on boot
Diffstat (limited to 'packages')
-rw-r--r-- | packages/usb-gadget-mode/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/usb-gadget-mode/files/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/usb-gadget-mode/files/spitz/.mtn2git_empty | 0 | ||||
-rwxr-xr-x | packages/usb-gadget-mode/files/usb-gadget | 59 | ||||
-rw-r--r-- | packages/usb-gadget-mode/files/usb-gadget.conf | 3 | ||||
-rwxr-xr-x | packages/usb-gadget-mode/files/usb-gadget.init | 16 | ||||
-rw-r--r-- | packages/usb-gadget-mode/usb-gadget-mode.bb | 50 |
7 files changed, 128 insertions, 0 deletions
diff --git a/packages/usb-gadget-mode/.mtn2git_empty b/packages/usb-gadget-mode/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/usb-gadget-mode/.mtn2git_empty 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 --- /dev/null +++ b/packages/usb-gadget-mode/files/.mtn2git_empty 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 --- /dev/null +++ b/packages/usb-gadget-mode/files/spitz/.mtn2git_empty 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 <devel@hentges.net> (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 <devel@hentges.net> (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 <devel@hentges.net> (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 <oe@hentges.net>" +HOMEPAGE = "<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 +} |