Страница 1 из 1
Статические dev'ы для устройств
Добавлено: 2014-05-27 19:42:15
Jetro
Столкнулся с неприятной проблемой:
Имеется 3G-модем, При его подключении в систему добавилось вот сколько радости:
Код: Выделить всё
cuaU0
cuaU0.init
cuaU0.lock
cuaU1
cuaU1.init
cuaU1.lock
cuaU2
cuaU2.init
cuaU2.lock
Нашел рабочий порт (оказался cuaU1), завел интернет и все вроди как закончилось хорошо... до первого отключения.
После полного отключения питания, и включения снова, инет не завелся. Как оказалось рабочим портом теперь стал уже cuaU0.
Чисто для интереса подключил еще один свисток, который добавил еще два набора девов. После отключения питания, мало того что порты изменились, так еще и модемы местами поменялись. Анархия у них одним словом, что хотят то и делают.
Так вот, возможно ли как-то или назначить статические девы для устройств, или как-то запретить их смену? На сколько я знаю в Линуксе все это решаеться с помощью правил в udev, но в FreeBsd на сколько я знаю такого нет.
Re: Статические dev'ы для устройств
Добавлено: 2014-06-04 20:32:44
Jetro
Еще актуально.
Re: Статические dev'ы для устройств
Добавлено: 2014-06-10 12:28:12
skeletor
Re: Статические dev'ы для устройств
Добавлено: 2014-07-20 19:05:47
Jetro
Снова возвращаюсь к данному вопросу, сейчас уже актуален как никогда.
Просмотрел devd - вроди как должен идеально решить мою проблему. Но столкнулся с пока не решаемым для меня вопросом:
Что писать в action, чтобы devd выдавал нужный мне cuaU порт?
Перелистал и маны, и логи, но как именно производиться выдача cuaU порта для меня осталось загадкой.
Re: Статические dev'ы для устройств
Добавлено: 2014-07-25 15:26:16
skeletor
Через action нельзя это сделать. Но выход есть: в action можно запихнуть создание симлинка. Например, при подключении модема с SN1 создаём симлинк /dev/modem1. При отключении - удаляем. Точно так же для второго -> /dev/modem2. В конфигах же, указывайте путь не /dev/cuaUX, а /dev/modemX.
Re: Статические dev'ы для устройств
Добавлено: 2014-07-28 16:39:32
Jetro
Я верно понял что нужно создать симлинк на /dev/cuaUX? Если да, то как мне получить нужный дев?
Re: Статические dev'ы для устройств
Добавлено: 2014-07-28 16:59:11
skeletor
Да, верно. Матчите нужный модем, например, по serial или imei.
Re: Статические dev'ы для устройств
Добавлено: 2014-07-29 11:20:41
Jetro
Дело в том, что фактически модем находится отдельно от порта, и нигде не указывается какой порт принадлежит какому модему. После подключения модема в логах имеется отчет только о подключении устройства, подключении виртуального привода, и больше ничего. Рабочий порт появляется на протяжении секунд тридцати, и он нигде не фигурирует - ни в логах ни в usbconfig.
Как вариант можно послать какую-то AT-команду, по ответу на которую определить модем, но и тут имеется загвоздка - если пытаться слать команды отдельным софтом, то по завершении действия порт оказывается занятым, и спасает только или перезагрузка, или передергивание модема.
Re: Статические dev'ы для устройств
Добавлено: 2014-08-05 10:46:40
skeletor
Конечно отдельно. Вы можете узнать это только серийному номеру и собственно матчить по нему и потом привязываться к этому порту.
Re: Статические dev'ы для устройств
Добавлено: 2014-12-23 13:38:24
flash_br
Всем привет, пожалуй оживлю тему т.к. не могу побороть эту, казалось бы мелочь ..
Имеем:
Код: Выделить всё
ugen1.3: <HUAWEI Mobile HUAWEI Technology> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x0000
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x12d1
idProduct = 0x1001
bcdDevice = 0x0000
iManufacturer = 0x0002 <HUAWEI Technology>
iProduct = 0x0001 <HUAWEI Mobile>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001
Код: Выделить всё
/etc/devd.conf
# When the HUAWEI 3G Modem appear...
attach 100 {
match "device-name" "cuaU[0-9]";
match "vendor" "0x12d1";
match "product" "0x1001";
match "release" "0x0000";
action "/bin/ln -s $device-name /dev/3gmodem1";
};
detach 100 {
match "device-name" "ugen+";
match "vendor" "0x12d1";
match "product" "0x1001";
match "release" "0x0000";
action "rm /dev/3gmodem1";
};
просьба не пинать ногами, НО оно не работает .. может подскажет кто, где я ошибку сделал?

Re: Статические dev'ы для устройств
Добавлено: 2014-12-23 14:04:30
flash_br
сделал так
Код: Выделить всё
/etc/devd.conf
# When the HUAWEI 3G Modem appear...
attach 100 {
# match "device-name" "cuaU[0-9]";
match "vendor" "0x12d1";
match "product" "0x1001";
match "release" "0x0000";
action "/bin/ln -s $device-name /dev/3gmodem1";
};
detach 100 {
# match "device-name" "ugen+";
match "vendor" "0x12d1";
match "product" "0x1001";
match "release" "0x0000";
action "rm /dev/3gmodem1";
};
получил вот что
Код: Выделить всё
Dec 23 10:57:48 berloga kernel: ugen1.3: <HUAWEI Technology> at usbus1
Dec 23 10:57:48 berloga kernel: u3g0: <HUAWEI Technology HUAWEI Mobile, class 0/0, rev 2.00/0.00, addr 3> on usbus1
Dec 23 10:57:48 berloga kernel: u3g0: Found 3 ports.
Dec 23 10:57:48 berloga devd: Executing '/bin/ln -s u3g0 /dev/3gmodem1'
т.е. симлинк создался, но не на
/dev/cuaU0.0 ... и соответственно оно не работает ..
дело в том, что у меня несколько USB-COM устройств, точнее 2 ... модем прописывается как
/dev/cuaU0.0
/dev/cuaU0.1
/dev/cuaU0.2
а второе как
/dev/cuaU1
ну или наоборот, в зависимости от того, в какой последовательности определятся ...
Re: Статические dev'ы для устройств
Добавлено: 2014-12-23 17:10:38
flash_br
так, частично заборол ...
Код: Выделить всё
# When the HUAWEI 3G Modem appear...
attach 100 {
# match "device-name" "cuaU[0-9]";
match "vendor" "0x12d1";
match "product" "0x1001";
match "release" "0x0000";
action "/usr/local/bin/3gdev";
};
detach 100 {
match "device-name" "ugen+";
match "vendor" "0x12d1";
match "product" "0x1001";
match "release" "0x0000";
action "rm /dev/3gmodem1";
};
Код: Выделить всё
cat /usr/local/bin/3gdev
#!/bin/sh
num=`sysctl -a | grep dev.u3g.0.ttyname | cut -d "U" -f2-`
moped="cuaU${num}.0"
/bin/chmod a+rw /dev/${moped}
/bin/ln -s ${moped} /dev/3gmodem1
всё круто, всё работает, но, зараза, не убивает симлинк при отключении устройства (((((((((((((
Re: Статические dev'ы для устройств
Добавлено: 2014-12-23 17:22:00
Alvares
Re: Статические dev'ы для устройств
Добавлено: 2014-12-23 17:27:06
flash_br
неа ... решил вот так
Код: Выделить всё
cat /usr/local/bin/3gdev
#!/bin/sh
num=`sysctl -a | grep dev.u3g.0.ttyname | cut -d "U" -f2-`
moped="cuaU${num}.0"
/bin/chmod a+rw /dev/${moped}
/bin/ln -s -F ${moped} /dev/3gmodem1
просто принудительно перезаписываю симлинк
Re: Статические dev'ы для устройств
Добавлено: 2014-12-23 17:35:21
flash_br
немного усовершенствовать надо
Код: Выделить всё
#!/bin/sh
num=`sysctl dev.u3g | grep ttyname: | cut -d "U" -f2-`
moped="cuaU${num}.0"
/bin/chmod a+rw /dev/${moped}
/bin/ln -s -F ${moped} /dev/3gmodem1
Re: Статические dev'ы для устройств
Добавлено: 2014-12-23 22:46:13
Neus
flash_br писал(а):немного усовершенствовать надо
Код: Выделить всё
#!/bin/sh
num=`sysctl dev.u3g | grep ttyname: | cut -d "U" -f2-`
moped="cuaU${num}.0"
/bin/chmod a+rw /dev/${moped}
/bin/ln -s -F ${moped} /dev/3gmodem1
Изобретатель
Исправь
На