Bug 6804 - При извлечении USB устройства не запускается usermap-скрипт
: При извлечении USB устройства не запускается usermap-скрипт
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/hotplug)
: unstable
: all Linux
: P1 major
Assigned To:
:
:
:
: 7085
:
  Show dependency tree
 
Reported: 2005-05-10 20:09 by
Modified: 2006-08-29 22:14 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2005-05-10 20:09:51
Для поддержки IrDA/USB (реализуется при помощи usermap) необходимо выполнять
некоторую последователность действий при подключении устройства и при его
отключении.  Сейчас такой возможности не предусмотрено:

/etc/hotplug/usb.agent
...
case $ACTION in

add)
...
    for MAP in $MAP_USERMAP $HOTPLUG_DIR/usb/*.usermap
    do
...
    done
...
 ;;

remove)
    if [ -x $REMOVER ]; then
        $REMOVER
    fi
    rm -f $REMOVER

    ;;
...
------- Comment #1 From 2005-05-11 01:24:19 -------
Кстати, за отмазку вполне может проканать указание как пользоваться
$REMOVER'ом.
 Это как я понимаю наиболее прямой путь в данной ситуации.
------- Comment #2 From 2005-05-12 10:30:27 -------
Как использовать REMOVER рассказано в комментариях usb.agent'а
------- Comment #3 From 2005-05-12 10:56:56 -------
Это?

# This script then adds the variable:
#
#       REMOVER=/var/run/usb/<some string unique to $DEVICE>
#
# This is the path where the script would like to find a remover, if
# the target device needs one. This script is executed on remove if
# it is executable when the remove happens.

Насколько кошерно такое использование:

... do something useful
if [ -n "$REMOVER" ]; then
  rmscript=$(mktemp "${REMOVER}.XXXXXXXXXX")
  cat <<EOF > "$rmscript"
#!/bin/sh
... do something
EOF
  chmod 700 "$rmscript"
  mv -f "$rmscript" "$remover"
fi

Ещё вопрос - имеет ли смысл переменная ACTION в usermap скрипте?  Во всех
примерах подразумевается, что ACTION всегда add...
------- Comment #4 From 2005-05-12 11:19:39 -------
Наверное где-то имеет.

Кстати, а зачем тебе нужно что-то делать в REMOVER ?
------- Comment #5 From 2005-05-12 11:22:12 -------
> Кстати, а зачем тебе нужно что-то делать в REMOVER ?

Нужно убивать irattach (service irda stop).  Сам не дохнет...
------- Comment #6 From 2005-05-12 11:25:38 -------
Алексей, подожди заморачиваться. Мы тут с pilot@ посовещались, irdaX это же
сетевой интерфейс, дергается он через net.agent, поэтому для него надо делать
up\down в etcnet
------- Comment #7 From 2005-05-12 11:30:51 -------
(In reply to comment #6)
> Алексей, подожди заморачиваться. Мы тут с pilot@ посовещались, irdaX это же
> сетевой интерфейс, дергается он через net.agent, поэтому для него надо делать
> up\down в etcnet

Он такой же сетевой, как tty.  /dev/ircommX (модуль ircomm-tty).

Как scmxx будет общаться с телефоном через сетевой интерфейс?
------- Comment #8 From 2005-05-12 11:37:54 -------
а ты включи для начала дебаг в хотплюе и подергай игду туда сюда, все увидишь.
в
конце концов неважно чем он будет подниматься\опускаться, главное что бы
реализация была простая
------- Comment #9 From 2005-05-13 01:09:39 -------
Ага, именно так.  Вызывается net.agent c нужным irdaX...

Как вариант - запускать irattach из net.agent через start-stop-daemon,
пропатчив
первый на предмет создания уникальных пидфайлов (его вообще переписать бы надо
если честно).

Либо то же самое, но в etcnet.  Можно вообще всю поддержку irda вынести в
etcnet.
------- Comment #10 From 2005-05-13 10:19:55 -------
> Либо то же самое, но в etcnet.  Можно вообще всю поддержку irda вынести в etcnet.
... или в hotplug :) Хорошо.
------- Comment #11 From 2005-05-13 10:27:33 -------
> ... или в hotplug :) Хорошо.

А что вообще нужно от интерфейса irdaX?  У меня дальше irattach и modprobe
ircomm-tty фантазия не идёт.  Обычно всё равно поверх него работает pppd, либо
как клиент либо как сервер...
------- Comment #12 From 2005-05-13 10:39:15 -------
Не могу похвастаться более занятными применениями.
------- Comment #13 From 2005-05-13 12:16:47 -------
Еще можно смонтировать содержимое сотового через OBEX.
------- Comment #14 From 2005-07-13 20:44:26 -------
raorn, используй /etc/dev.d/ в udev-0.62, оно как раз для этих целей.