anonymous@RULINUX.NET~# Last login: 2024-04-20 12:11:18
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

Вопрос RS-232-фагам

Хочется спросить тех людей, что давеча выступали в пользу RS-232 и против USB: а как вы в udev'e определяете какое именно устройство подключено к вашей машинке по RS-232?

anonymous(*) (2012-07-13 17:21:17)

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: Вопрос RS-232-фагам от anonymous 2012-07-13 17:21:17
avatar
Скрыть

Re:Вопрос RS-232-фагам

А зачем? /dev/ttyS0 чем не устраивает?

anonymous(*)(2012-07-13 17:50:20)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от anonymous 2012-07-13 17:50:20
avatar
Скрыть

Re:Вопрос RS-232-фагам

Как зачем? Чтобы отреагировать соответствующим образом. Если это GPS-приёмник, надо сказать gpsd чтобы подхватил его, если модем - надо проинициализировать соответствующим образом, если самоделка какая - тоже ведь надо с ней что-то сделать, не просто же так её воткнули - будь то градусник, детонатор для ТТД ракетомодели или датчик каких-нибудь ускорений. В USB кого подключили можно определить по кодам устройства, а /dev/ttyS* ничего не говорит о том, что именно пользователи воткнули тебе в дырочку.

anonymous(*)(2012-07-13 17:56:59)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от anonymous 2012-07-13 17:56:59
avatar
Скрыть

Re:Вопрос RS-232-фагам

Так то ж RS-232. Простой почти как гвоздь: три провода и всё. Даже всякие CTS/RTS лишние, не то, что автоопределение. И потом, раньше бытовало мнение, что пользователь не на столько туп, что не знает что за железку он только что целенаправленно подключил в свой комп, а посему и последующие действия ему тоже известны.

anonymous(*)(2012-07-13 18:03:41)

[#] [Добавить метку] [Редактировать] Ответ на: Вопрос RS-232-фагам от anonymous 2012-07-13 17:21:17
avatar
Скрыть

Re:Вопрос RS-232-фагам

В dmesg разве нет инфы по тому, откуда взялся серийный девайс?

Hokum(*)(2012-07-13 18:12:39)

Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1
[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от anonymous 2012-07-13 18:03:41
avatar
Скрыть

Re:Вопрос RS-232-фагам

> Так то ж RS-232. Простой почти как гвоздь: три провода и всё. Даже всякие CTS/RTS лишние, не то, что автоопределение.

Нифига они не лишние. Вот например RTS используется ардуином для сброса устройства после программирования. Правда из-за этого под опенсорсным линупсом, самым документированным и ориентированным для разработок гиков, оказывается нельзя указать компьютеру не дёргать этот пин при открытии устройства - поэтому ардуино сбрасывается каждый паз и надолго повисает на своём загрузчике. Надо ли говорить, что под закрытосорсным недокументированным виндовсом такой проблемы нет, да и вообще нет необходимости писать гигантские Serial How-To, потому что в MSDNe все функции системы задокументированы чётко и логично.

> И потом, раньше бытовало мнение, что пользователь не на столько туп, что не знает что за железку он только что целенаправленно подключил в свой комп, а посему и последующие действия ему тоже известны.

Почему? Пользователь-то как раз знает что он втыкает в систему. Но знает ли система что с этой штукой делать?

anonymous(*)(2012-07-13 18:33:17)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от Hokum 2012-07-13 18:12:39
avatar
Скрыть

Re:Вопрос RS-232-фагам

> В dmesg разве нет инфы по тому, откуда взялся серийный девайс?

А ядро как должно протелепатить что в порт воткнуто?

anonymous(*)(2012-07-13 18:34:42)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от anonymous 2012-07-13 18:34:42
avatar
Скрыть

Re:Вопрос RS-232-фагам

Udev это по сути механизм ядра, которым оно осуществляет какие-то манипуляции с оборудованием. Дрова всё равно в ядре и сама работа идёт в ядре

Кстати, юдев скорее всего будет трансформироваться в ближайшем будущем, т.к. это тоже поле интересов systemd

Hokum(*)(2012-07-13 18:42:54)

Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1
[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от Hokum 2012-07-13 18:42:54
avatar
Скрыть

Re:Вопрос RS-232-фагам

> Udev это по сути механизм ядра, которым оно осуществляет какие-то манипуляции с оборудованием. Дрова всё равно в ядре и сама работа идёт в ядре

И чо?

> Кстати, юдев скорее всего будет трансформироваться в ближайшем будущем, т.к. это тоже поле интересов systemd

И чо?

anonymous(*)(2012-07-13 18:47:28)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от anonymous 2012-07-13 18:47:28
avatar
Скрыть

Re:Вопрос RS-232-фагам

Да ничо...

Hokum(*)(2012-07-13 18:50:08)

Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1
[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от Hokum 2012-07-13 18:50:08
avatar
Скрыть

Re:Вопрос RS-232-фагам

Ах вот оно чо!

anonymous(*)(2012-07-13 18:59:39)

[#] [Добавить метку] [Редактировать] Ответ на: Вопрос RS-232-фагам от anonymous 2012-07-13 17:21:17
avatar
Скрыть

Re:Вопрос RS-232-фагам

Всё правильно, udev не нужен. Какбэ /dev/ttyS0 забил и работай. Это, блядь, не usb, где нужно сношать libusb, лол. Да, а если два одинаковых устройства, то это вообще пиздец нахуй. Как заставить прогу юзать какое-то определённое устройство? Ояебу?

Silvy(*)(2012-07-13 20:55:57)

Mozilla/5.0 (X11; Linux i686; rv:10.0.5) Gecko/20100101 Firefox/10.0.5
[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от anonymous 2012-07-13 18:34:42
avatar
Скрыть

Re:Вопрос RS-232-фагам

>А ядро как должно протелепатить что в порт воткнуто?
IMHO ядру абсолютно пофиг. Оно шлет сигналы на порт, которые генерирует прога...

И возвращает ей ответы.

Порт-то сейчас на борту всего один. Поэтому и три проводка всего задейсвовано.

anonymous(*)(2012-07-13 21:58:01)

Mozilla/5.0 (X11; Linux 3.2.0-1-686-pae) KHTML/4.8.4 (like Gecko) Konqueror/4.8
[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от Silvy 2012-07-13 20:55:57
avatar
Скрыть

Re:Вопрос RS-232-фагам

> Как заставить прогу юзать какое-то определённое устройство?

1. Идёшь читать фак: http://www.reactivated.net/writing_udev_rules.html
2. Знакомишься со своим устройством:
2.1. Для начала просто втыкаешь ус-во в систему - посмотреть чо будет. Допустим у тебя устройство при втыкании распозналось системой как /dev/ttyUSB0.
2.2. Ищешь его в sysfs, например так:

text
$find /sys -name ttyUSB0 | grep class
/sys/class/tty/ttyUSB0
 

2.3. Смотришь что нам про него известно:
text
# udevadm info -a -p /sys/class/tty/ttyUSB0

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:13.0/usb5/5-1/5-1:1.0/ttyUSB0/tty/ttyUSB0':
    KERNEL=="ttyUSB0"
    SUBSYSTEM=="tty"
    DRIVER==""

  looking at parent device '/devices/pci0000:00/0000:00:13.0/usb5/5-1/5-1:1.0/ttyUSB0':
    KERNELS=="ttyUSB0"
    SUBSYSTEMS=="usb-serial"
    DRIVERS=="ftdi_sio"
    ATTRS{port_number}=="0"
    ATTRS{latency_timer}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:13.0/usb5/5-1/5-1:1.0':
    KERNELS=="5-1:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="ftdi_sio"
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{bInterfaceSubClass}=="ff"
    ATTRS{bInterfaceProtocol}=="ff"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{interface}=="TTL232R"

  looking at parent device '/devices/pci0000:00/0000:00:13.0/usb5/5-1':
    KERNELS=="5-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{devpath}=="1"
    ATTRS{idVendor}=="0403"
    ATTRS{speed}=="12"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{busnum}=="5"
    ATTRS{devnum}=="2"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}==" 90mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="80"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="0"
    ATTRS{bcdDevice}=="0600"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{serial}=="FTDOP4PN"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="18290"
    ATTRS{manufacturer}=="FTDI"
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="6001"
    ATTRS{bDeviceClass}=="00"
    ATTRS{product}=="TTL232R"

    ... etc ...
 

3. Создаёшь соотв. руль:
text
$ cat /etc/udev/rules.d/99.my.lovely.rules
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTDOP4P4", SYMLINK+="MyDevices/FTDICableForNuclearPlantControl", GROUP="nuclearplantusers"
 

... и трясёшь своим удавом:
text
# udevadm control --reload-rules
 

4. Теперь когда ты будешь втыкать именно этот кабель себе в в USB, удав будет создавать на автоматически созданное устройство симлинк с именем /dev/MyDevices/FTDICableForNuclearPlantControl и накидывать ему заданную группу. Другой кабель (FTDI-шный чип) будет иметь другой serial (если производятел не полный кретин).

5. Профит: ты свою прогу натравливаешь не на /dev/ttyUSB? а на его симлинк с фиксированным выменем /dev/MyDevices/FTDICableForNuclearPlantControl, которое теперь не зависит от того в какую именно дырочку ты сунул и в каком порядке.

> Ояебу?

О да, ты да.

anonymous(*)(2012-07-13 22:51:30)
Отредактировано anonymous по причине "не указана"
[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от Hokum 2012-07-13 18:42:54
avatar
Скрыть

Re:Вопрос RS-232-фагам

> Кстати, юдев скорее всего будет трансформироваться в ближайшем будущем, т.к. это тоже поле интересов systemd
Ты что, из анабиоза только? Они уже давно объединили кодовые базы и теперь даже удев без системд не собрать и патч, пытающийся это хоть как-то исправить, был послан в /dev/null.

anonymous(*)(2012-07-13 22:55:00)

Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; Transformer Prime TF201 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30
[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от anonymous 2012-07-13 21:58:01
avatar
Скрыть

Re:Вопрос RS-232-фагам

> Порт-то сейчас на борту всего один.

Ну так это благодаря вытеснившим его прогрессивным технологиям он или один или, что скорее, его нет вообще. А представь какой ужас бы был, если бы производятелы послушали наших недалёких форумных кретинчиков, мечтающих о том, чтобы вместо нормального человеческого USB из их компьютеров во все стороны торчали мерзкие RS-232.

anonymous(*)(2012-07-13 22:57:39)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от anonymous 2012-07-13 22:57:39
avatar
Скрыть

Re:Вопрос RS-232-фагам

>вместо нормального человеческого USB из их компьютеров во все стороны торчали мерзкие RS-232.
Ну и ништяк... Тоскал бы ты тогда в кармане RS-232 флешку - вирусы с нее точно бы не самозапустились.

anonymous(*)(2012-07-13 23:10:55)

Mozilla/5.0 (X11; Linux 3.4.4-4.fc16.i686) KHTML/4.8.4 (like Gecko) Konqueror/4.8 Fedora/4.8.4-5.fc16
[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от anonymous 2012-07-13 23:10:55
avatar
Скрыть

Re:Вопрос RS-232-фагам

Правда карман бы выглядел так, как будто у меня там кролик..

anonymous(*)(2012-07-13 23:14:17)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от anonymous 2012-07-13 23:14:17
avatar
Скрыть

Re:Вопрос RS-232-фагам

Тоже представил флешку с RS-232. lol

iwolf(*)(2012-07-14 01:30:48)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от anonymous 2012-07-13 22:51:30
avatar
Скрыть

Re:Вопрос RS-232-фагам

у меня два китайский usb-r232 внем нет ATTRS{serial}, и одинаковые ATTRS{idVendor}, ATTRS{idProduct}, я сотворил следующие:

SUBSYSTEMS=="usb", KERNELS=="1-1", SYMLINK+="MyDevices/COM0", GROUP="dialout"

SUBSYSTEMS=="usb", KERNELS=="1-2", SYMLINK+="MyDevices/COM1", GROUP="dialout"

теперь я знаю в какой usb воткнуть переходник.

fobos(*)(2017-09-17 17:39:47)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:49.0) Gecko/20100101 Firefox/49.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:Вопрос RS-232-фагам от fobos 2017-09-17 17:39:47
avatar
Скрыть

Re:Вопрос RS-232-фагам

Воообще у многих этих микросхем переходников есть возможность поменять атрибуты в флэш памяти. У FTDI для этого есть какие-то проприетарные либы, а кетайские переходники - ну надо гуглить инфу по конкретному чипу.

anonymous(*)(2017-09-18 11:25:32)

Mozilla/5.0 (X11; Fedora; Linux i686; rv:55.0) Gecko/20100101 Firefox/55.0
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!