summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-wireless/irda-utils/files/irda-usb.sh')
-rw-r--r--net-wireless/irda-utils/files/irda-usb.sh62
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