| #!/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 |