diff options
Diffstat (limited to 'net-wireless/irda-utils/files/irda-usb.sh')
-rw-r--r-- | net-wireless/irda-utils/files/irda-usb.sh | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/net-wireless/irda-utils/files/irda-usb.sh b/net-wireless/irda-utils/files/irda-usb.sh new file mode 100644 index 000000000000..d0250eab891f --- /dev/null +++ b/net-wireless/irda-utils/files/irda-usb.sh @@ -0,0 +1,62 @@ +#!/bin/sh +# +# irda-usb +# +# Hotplug IrDA-USB devices. Only USB devices are handled! +# To initialize normal SIR/FIR dongles, please use /etc/init.d/irda + +SYSFS="/sys" + +checkusb() { + # quick check, but not always available + [ "${PHYSDEVBUS}" = "usb" ] && return 0 + + # alternative check via modalias + /bin/grep -q '^usb:' "${SYSFS}${DEVPATH}/device/modalias" 2>/dev/null +} + +checkconfig() { + . /etc/conf.d/irda + + if [ "${DISCOVERY}" = "yes" ]; then + DISCOVERY="-s" + else + DISCOVERY="" + fi + + NET_IRDA_OPTS="" + + # Set maximum baud rate for IrDA + if [ -n "${MAX_BAUD_RATE}" ]; then + NET_IRDA_OPTS="${NET_IRDA_OPTS} net.irda.max_baud_rate=${MAX_BAUD_RATE}" + fi + + # Disable discovery (enabling is done automatically by irattach) + if [ -z "${DISCOVERY}" ]; then + NET_IRDA_OPTS="${NET_IRDA_OPTS} net.irda.discovery=0" + fi +} + +case "${ACTION}" in + add) + # We handle USB only + checkusb || exit 0 + + # Load config + checkconfig + + # Load IrDA modules + /sbin/modprobe -sqa ircomm-tty ${LOAD_MODULES} + + # Set IrDA options + [ -n "${NET_IRDA_OPTS}" ] && /sbin/sysctl -e -q -w ${NET_IRDA_OPTS} + + # Finally, attach IrDA device + /usr/sbin/irattach ${INTERFACE} ${DISCOVERY} + ;; + + remove) + # Unconditionally kill irattach instance + /usr/bin/pkill -f "^/usr/sbin/irattach ${INTERFACE} ?" + ;; +esac |