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

Сделано с помощью 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``

Теперь, если инфракрасник зависнет, нужно будет просто переткнуть его в порт...

Поиск решения что бы сие чудо не зависало вообще идет, приветствуются все идеи.

Кстати, это решение дает реальный хот-плаг для инфракрасника, т.е. ничего больше не нужно химичить если его воткнуть на лету :)

Эти действия решает так же проблему: [Проблема с IrDa](http://vl-lug.ru/forum/viewtopic.php?id=39).

(c) Alexander Drozdoff (aka Hatred), Vladivostok, 2006