aboutsummaryrefslogtreecommitdiffstats
path: root/unmaintained/usbip-utils/usbip.initd
diff options
context:
space:
mode:
Diffstat (limited to 'unmaintained/usbip-utils/usbip.initd')
-rw-r--r--unmaintained/usbip-utils/usbip.initd244
1 files changed, 0 insertions, 244 deletions
diff --git a/unmaintained/usbip-utils/usbip.initd b/unmaintained/usbip-utils/usbip.initd
deleted file mode 100644
index f0e908c721..0000000000
--- a/unmaintained/usbip-utils/usbip.initd
+++ /dev/null
@@ -1,244 +0,0 @@
-#!/sbin/openrc-run
-
-description="Load USBIP kernel modules and run daemon"
-
-: ${USBIP_EXEC:=$(which usbip)}
-: ${USBIP_EXEC_DAEMON:=$(which usbipd)}
-
-depend()
-{
- provide usbip
- need sysfs net
-}
-
-LoadKernelModule ()
-{
- local module=$1
- #-----------------
- result=
- if [ -z "$(/sbin/lsmod | grep "^$(basename $module)")" ]
- then
- local filename=$(find lib/modules/`uname -r`/kernel -type f -name $module.ko -printf '%f\n')
- if [ -n "$filename" ]
- then
- if ! /sbin/modprobe $module
- then
- eerror "Cannot load kernel module '$module'."
- result=failed
- fi
- else
- eerror "Cannot find kernel module '$module'."
- result=failed
- fi
- fi
- [ -z "$result" ]
-}
-
-IsAvailable ()
-{
- local bus_or_device=$(echo $1 | tr '[A-Z]' '[a-z]')
- local host=$2
- #-----------------
- host=${host:+--remote=$host}
- : ${host:=--local}
- $USBIP_EXEC list --parsable $host |
- sed -n 's|.*busid='$bus_or_device'#.*|yes|p; \
- s|.*usbid='$bus_or_device'#.*|yes|p'
-}
-
-GetBus ()
-{
- local device=$(echo $1 | tr '[A-Z]' '[a-z]')
- local host=$2
- #-----------------
- host=${host:+--remote=$host}
- : ${host:=--local}
- case "$host" in
- "--remote"*) # FIXME: USBIP bug causing remote devices not to be listed parsable
- $USBIP_EXEC list --parsable $host |
- sed -n 's|^[ \t]*\([0-9][0-9]*-[0-9][0-9]*\):.*('"$device"').*|\1|p';;
- *)
- $USBIP_EXEC list --parsable $host |
- sed -n 's|.*busid=\([0-9][0-9]*-[0-9][0-9]*\)#usbid='"$device"'#.*|\1|p';;
- esac
-}
-
-ExecuteUsbip()
-{
- local command=$1
- local bus=$2
- local host=$3
- local port=$4
- #-----------------
- local result=
- if [ -n "$command" ]
- then
- if $USBIP_EXEC $command ${bus:+--busid=$bus} ${host:+--remote=$host} ${port:+--port $port} 1> /dev/null 2> /dev/null
- then
- einfo "Executed command '$command'${bus:+ with bus '$bus'}${host:+ on host '$host'}${port:+ on port '$port'}, successfully."
- else
- ewarn "Executing command '$command'${bus:+ with bus '$bus'}${host:+ on host '$host'}${port:+ on port '$port'} failed."
- result=failed
- fi
- fi
- [ -z "$result" ]
-}
-
-ValidateCommand ()
-{
- local command=$1
- local bus_or_device=$2
- local host=$3
- #-----------------
- local result=
- local bus=
- if [ -z "$host" -o -n "$(echo $host | grep '^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$')" ]
- then
- if [ -n "$(echo $bus_or_device | grep '^[[:xdigit:]]\{4\}:[[:xdigit:]]\{4\}$')" ]
- then
- bus="$(GetBus $bus_or_device $host)"
- if [ -z "$bus" ]
- then
- ewarn "Device '$bus_or_device' not available${host:+ on host '$host'}."
- result=failed
- fi
- else
- if [ -n "$(echo $bus_or_device | grep '^[0-9][0-9]*-[0-9][0-9]*$')" ]
- then
- bus=$bus_or_device
- else
- ewarn "Unrecognized bus or device '$bus_or_device'."
- result=failed
- fi
- fi
- if [ -n "$bus" ]
- then
- case "$command" in
- "bind"|"unbind")
- ExecuteUsbip $command $bus || result=failed;;
- "attach")
- if [ -n "$host" ]
- then
- ExecuteUsbip $command $bus $host || result=failed
- else
- ewarn "Host statement is missing in command '$command'."
- result=failed
- fi
- ;;
- *)
- ewarn "Unhandled command '$command'."; result=failed;;
- esac
- fi
- else
- ewarn "Illegal host ip address '$host'."
- result=failed
- fi
- [ -z "$result" ]
-}
-
-ProcessList ()
-{
- local command=$1
- shift
- local list=$*
- #-----------------
- local result=
- local no_host=
- case "$command" in
- "bind"|"unbind") no_host=yes;;
- *) no_host=;;
- esac
- local host=
- local item=
- ( for item in $list
- do
- if [ -n "$host" -o -n "$no_host" ]
- then
- ValidateCommand $command $item $host || result=failed
- host=
- else
- host=$item
- fi
- done
- [ -z "$result" ] )
-}
-
-DetachAll ()
-{
- # FIXME: At this stage, there is no way to get the vhci_hcd port id of any attached device
- for port in $(seq 0 15)
- do
- $USBIP_EXEC detach --port $port 2> /dev/null
- done
- [ 1 -eq 1 ]
-}
-
-UnbindAll ()
-{
- local result=
- ProcessList unbind "$($USBIP_EXEC list --parsable --local | sed -n 's|^busid=\([0-9][0-9]*-[0-9][0-9]*\)#.*=usbip-host#$|\1|p' | tr '\n' ' ')"
-}
-
-start_daemon()
-{
- ebegin "Starting usbip daemon"
- if LoadKernelModule usbip-host
- then
- start-stop-daemon --start --exec $USBIP_EXEC_DAEMON -- -D
- fi
- eend $?
-}
-
-start()
-{
- ebegin "Starting usbip"
- if LoadKernelModule usbip-core
- then
- if LoadKernelModule vhci-hcd
- then
- eend 0
- if yesno "${USBIP_START_DAEMON:-no}"
- then
- start_daemon
- fi
- if [ -n "$USBIP_AUTO_BIND" ]
- then
- ebegin "Auto-binding local busses"
- ProcessList bind $USBIP_AUTO_BIND
- eend $?
- fi
- if [ -n "$USBIP_AUTO_ATTACH" ]
- then
- ebegin "Auto-attaching remote busses"
- ProcessList attach $USBIP_AUTO_ATTACH
- eend $?
- fi
- else
- eend 1
- fi
- else
- eend 1
- fi
-}
-
-stop_daemon()
-{
- ebegin "Stopping usbip daemon"
- start-stop-daemon --stop --exec $USBIP_EXEC_DAEMON
- eend $?
-}
-
-stop()
-{
- ebegin "Detaching remote busses"
- DetachAll
- eend $?
- ebegin "Un-binding local busses"
- UnbindAll
- eend $?
- if [ -n "$(pidof $(basename "$USBIP_EXEC_DAEMON"))" ]
- then
- stop_daemon
- fi
-}
-