HEX
Server: Apache/2.2.34 (Unix) mod_fastcgi/mod_fastcgi-SNAP-0910052141
System: Linux Kou-Etsu-Dou 4.4.59+ #25556 SMP PREEMPT Thu Mar 4 18:03:46 CST 2021 x86_64
User: hosam (1026)
PHP: 7.2.29
Disabled: NONE
Upload Files
File: //usr/syno/etc/rc.sysv/usbip.sh
#!/bin/sh
#S90usbip.sh - startup script for multifunctional printer
#
# This goes in /usr/syno/etc/rc.d and gets run at boot-time.
PRINTERCONF=/usr/syno/etc/printer.conf
KERNEL_VERSION=`uname -r`

CAT=/bin/cat
CUT=/usr/bin/cut
ECHO=/bin/echo
GET_KEY_VALUE=/bin/get_key_value
GREP=/bin/grep
INSMOD=/sbin/insmod
RMMOD=/sbin/rmmod
KILL=/bin/kill
PIDFILEDIR=/var/run
PIDOF=/bin/pidof
LOGGER=/usr/bin/logger

BIND_DRIVER=/usr/bin/bind_driver
USBIPD=/usr/bin/usbipd

case "$KERNEL_VERSION" in
"3.10."* | "3.6."*)
	USBIP_KO=/lib/modules/usbip-host
	USBIP_COMMON_MOD_KO=/lib/modules/usbip-core
	;;
*)
	USBIP_KO=/lib/modules/usbip
	USBIP_COMMON_MOD_KO=/lib/modules/usbip_common_mod
	;;
esac
VHCI_HCD_KO=/lib/modules/vhci-hcd
SYNOPRINT=/usr/syno/bin/synoprint

log_msg()
{
        $LOGGER -sp $1 -t USBIP "$2"
}

# For non-support model
SUPPORTMFP=`$GET_KEY_VALUE /etc.defaults/synoinfo.conf supportMFP`
if [ "x$SUPPORTMFP" != "xyes" ]; then
	exit 1
fi

LoadModules() {
		# insmod usbip kernel modules
		$INSMOD "$USBIP_COMMON_MOD_KO.ko" > /dev/null 2>&1
		$INSMOD "$USBIP_KO.ko" > /dev/null 2>&1
		#$INSMOD "$VHCI_HCD_KO.ko" > /dev/null 2>&1
}

UnLoadModules() {
    # rmmod usbip kernel modules
    $RMMOD $USBIP_KO > /dev/null 2>&1
    $RMMOD $USBIP_COMMON_MOD_KO > /dev/null 2>&1
    #$RMMOD $VHCI_HCD_KO > /dev/null 2>&1
}

SIGUSR1USBIPD() {
	/usr/syno/sbin/synoservice --reload usbipd > /dev/null 2>&1
}

ExecuteUSBIPD() {
    # execute the usbipd daemon or force to reload config.

	ret=`/usr/syno/sbin/synoservice --status usbipd`
	if [ $? -ne 0 ]; then
		/usr/syno/sbin/synoservice --start usbipd > /dev/null 2>&1
	fi
}

STOPUSBIPD() {
    # stop the usbipd daemon and unload modules.
	/usr/syno/sbin/synoservice --stop usbipd > /dev/null 2>&1
}

if [ "x$1" = "xstartd" ]; then
	LoadModules
	ExecuteUSBIPD

elif [ "x$1" = "xbindbybusid" ]; then
    LoadModules
    $BIND_DRIVER --usbip $2 > /dev/null 2>&1
    ExecuteUSBIPD

elif [ "x$1" = "xbindbyprinterid" ]; then
    LoadModules
    $BIND_DRIVER --syno $2 > /dev/null 2>&1
    ExecuteUSBIPD

elif [ "x$1" = "xunbind" ]; then
    $BIND_DRIVER --other $2 > /dev/null 2>&1
    usbipDeviceNum=`$BIND_DRIVER --count`
    if [ $usbipDeviceNum -eq 0 ]; then
		STOPUSBIPD
    else
		SIGUSR1USBIPD
    fi
fi