URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID15
Нить номер: 4250
[ Назад ]

Исходное сообщение
"Помогите создать правило для udev"

Отправлено qazarus , 16-Авг-15 13:11 
Имеется модем Alcatel X090S. Он имеет серийник 1234567890ABCDEF и имеет три рабочих порта, при чем рабочий порт модема это "01".
Мне требуется на него создать симлинк.

Суть проблемы следующая:
Такое правило:
ACTION=="add", SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="01", SYMLINK+="modem"
Создает симлинк на правильный порт, и все работает, но мне требуется ловить модем еще и по серийнику.

Такое правило:
ACTION=="add", SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{serial}=="1234567890ABCDEF", SYMLINK+="modem"
Создает симлинк на первый порт, потом переподключает на второй, и вконце на третий. Модем то не работает, но симлинк все-же создается.

Логично предположить что мне требуется такое правило:
ACTION=="add", SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{serial}=="1234567890ABCDEF", ATTRS{bInterfaceNumber}=="01", SYMLINK+="modem"
но вот оно уже не работает, симлинк не создается.

Что не так? Как правильно написать правило?
Полный лог udev подключения модема можно посмотреть здесь:
https://dl.dropboxusercontent.com/u/27680952/GSM.log


Содержание

Сообщения в этом обсуждении
"Помогите создать правило для udev"
Отправлено pavlinux , 16-Авг-15 15:03 
Есть маза, что по первому правилу симлинк создаётся  на любое (tty) устройство воткнутое в ЮСБ
Ну и надо понимать, что 1234567890ABCDEF - это не серийник, если погуглить, думаю найдется ещё мильон таких.  

"Помогите создать правило для udev"
Отправлено qazarus , 16-Авг-15 16:18 
> Есть маза, что по первому правилу симлинк создаётся  на любое (tty)
> устройство воткнутое в ЮСБ

Проверял по логах - создается правильно.

> Ну и надо понимать, что 1234567890ABCDEF - это не серийник, если погуглить,
> думаю найдется ещё мильон таких.

Это да, но тут есть маленький ньюанс - я нашел как этот серийник изменять через прошивку, по этому меня этот вопрос и интересует.


"Помогите создать правило для udev"
Отправлено pavlinux , 16-Авг-15 16:33 
>> Есть маза, что по первому правилу симлинк создаётся  на любое (tty)
>> устройство воткнутое в ЮСБ
> Проверял по логах - создается правильно.
>> Ну и надо понимать, что 1234567890ABCDEF - это не серийник, если погуглить,
>> думаю найдется ещё мильон таких.
> Это да, но тут есть маленький ньюанс - я нашел как этот
> серийник изменять через прошивку, по этому меня этот вопрос и интересует.

Через GOTO попробуй. Что-то типа

ACTION=="add", SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{serial}=="1234567890ABCDEF", GOTO="modem_ports"

LABEL="modem_ports"
SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="01", SYMLINK+="modem"


---
# Гы

ACTION!="add", GOTO="modem_end"
SUBSYSTEM!="tty", GOTO="modem_end"
SUBSYSTEMS=="usb", ATTRS{serial}=="1234567890ABCDEF", GOTO="modem_ports"
GOTO="modem_end"

LABEL="modem_ports"
SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{ALKATEL_FACENUM}="$attr{bInterfaceNumber}"
ATTRS{idVendor}=="1234", ATTRS{idProduct}=="abcd", ENV{ALKATEL_FACENUM}=="01", SYMLINK+="modem"

LABEL="modem_end"