Небольшое облегчение жизни с инфракрасником Tekram 410w

Не супер удачный USB инфракрасник, был куплен для работы с телефоном Nokia 6610i, в процессе GPRS серфинга иногда подвисает. Кроме того, если устройство хот-плаг, оно должно таким и оставаться, а не требовать потом указания каких- то комманд. Сделано с помощью udev. Для начала пишем правило для udev: /etc/udev/rules.d/irda.rules

# Tekram 410w
SUBSYSTEM=="net", ACTION="add",    DEVPATH=="*/irda*", SYSFS{idVendor}=="066f", SYSFS{idProduct}=="4200", RUN+="/lib/udev/irda.sh"

# Rule for all Irda devices:
#SUBSYSTEM=="net", ACTION="add",    DEVPATH=="*/irda*", RUN+="/lib/udev/irda.sh"
SUBSYSTEM=="net", ACTION="remove", DEVPATH=="*/irda*", RUN+="/lib/udev/irda.sh"

Пишем скрипт-хелпер: /lib/udev/irda.sh

#!/bin/bash

DEBUG=0

DEV=`basename $DEVPATH`
PID=`ps auxwww | grep irattach | grep $DEV | grep -v grep | awk '{print($2)}'`

if [ x"$DEBUG" = "1" ]; then
    echo            >> /tmp/irda.txt
    echo `date`     >> /tmp/irda.txt
    echo $ACTION    >> /tmp/irda.txt
    echo $DEVPATH   >> /tmp/irda.txt
    echo $DEV       >> /tmp/irda.txt
    echo $PID       >> /tmp/irda.txt
    echo $SUBSYSTEM >> /tmp/irda.txt
    echo $@         >> /tmp/irda.txt
    echo "--"       >> /tmp/irda.txt
fi

if [ x"$PID" != x"" ]; then
    kill $PID
fi

if [ x"$ACTION" = x"add" ]; then
    /usr/sbin/irattach $DEV -s
fi

idVendor и idProduct можно узнать набрав lsusb -v, при помощи них можно делать специфичные настройки для определенного инфракрасника, если ничего подобного не предусматривается, эту строчку закомментить, а сточку на действие add без idVendor/idProduct раскомментировать. От root'а делаем: udevcontrol reload_rules Теперь, если инфракрасник зависнет, нужно будет просто переткнуть его в порт… Поиск решения что бы сие чудо не зависало вообще идет, приветствуются все идеи. Кстати, это решение дает реальный хот-плаг для инфракрасника, т.е. ничего больше не нужно химичить если его воткнуть на лету :) PS это решение проблемы хотплага инфракрасника, еще решает проблему его зависания, почему так происходит - не знаю, но факт остается фактом. Скорее всего когда он зависает он отваливается и udev срабатыает на детач, а потом появляется и udev его опять подключает. Оригинал на сайте Hatred's Log Place

Размещено: 28.01.2008 13:55 Всего комментариев: 0
Автор: h4tr3d Блог: h4tr3d's blog
Тэги: howto , infrared , tekram 410w , udev

Комментарии:

Нет комментариев.

Пожалуйста войдите или зарегистрируйтесь чтобы оставлять комментарии.