Страница 1 из 1
FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 12:27:01
kursant1986
Доброго дна суток.
Помогите мне пожалуйста с такой проблемой. Решил я сделать устройство которое будет управляться с ПК через виртуальный COM порт. Но что бы это все происходило под Линуксом (KDE 13.04). Взял для этих целей (впрочем как и многие) FT232RL, собрал как в даташите показано, привентил к ней контроллер, проверил что бы все правельно было.
После того как я был уверен что все собрано правильно и ни где нет соплей всунул все это дело в комп. Линукс увидел эфтиху, как надо, но когда начал пробровать общаться с ней ,комп выдовал что неможет открыть устройство. Думал микруха дохлая, начал пробовать и заводской USB-COM адаптер и у друга брал, по его словам рабочий, все попрежнему. На венде работает, но мне надо чтоб на Линоксе. Может кто то стыкался с такой проблемой и решил ее? Тогда подскажите решить ее.
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 12:59:08
Dmitry Dubrovenko
Полагаю, лучше искать на профильном форуме, как работать с ком-портами.
Хотя, ведь у ФТДАй есть же, вроде, специальные драйвера под Линь...

Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 13:11:02
WiseLord
А что значит "не работает"?
По идее, он должен был определиться в системе как-то вроде /dev/ttyUSB0.
Тем же picocom-ом подключиться и слать/принимать байты:
picocom -b 115200 /dev/ttyUSB0
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 14:20:35
Мурик
Открывать порт нужно с правами рута. Такая вот тупая политика линукса.
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 14:29:04
kursant1986
Вот что пишет мне picocom:
oleg@oleg:~/mega/sensor/uart/Release$ sudo picocom -b 9600 dev/tty/ttyUSB0
picocom v1.7
port is : dev/tty/ttyUSB0
flowcontrol : none
baudrate is : 9600
parity is : none
databits are : 8
escape is : C-a
local echo is : no
noinit is : no
noreset is : no
nolock is : no
send_cmd is : sz -vv
receive_cmd is : rz -vv
imap is :
omap is :
emap is : crcrlf,delbs,
FATAL: cannot open dev/tty/ttyUSB0: No such file or directory
Но если посмотреть подключеные USB устройства, то вот:
oleg@oleg:~/mega/sensor/uart/Release$ lsusb
Bus 002 Device 002: ID 046d:c05b Logitech, Inc. M-U0004 810-001317 [B110 Optical USB Mouse]
Bus 002 Device 003: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 002 Device 063: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
oleg@oleg:~/mega/sensor/uart/Release$
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 15:22:16
WiseLord
Возможно, порт не ttyUSB0, а как-то иначе называется. Например, ttyACM0.
Посмотрите в dmesg, после втыкания в USB.
Или в реальном времени в консоли
tail -f /var/log/messages
P.S. И да, не
dev/tty..., а
/dev/tty... Если не из корневого каталога, конечно, запускается.
Мурик писал(а):Открывать порт нужно с правами рута. Такая вот тупая политика линукса.
Не выдумывайте, такое только в windows. Для доступка к порту пользователю достаточно быть в группе tty.
sudo gpasswd -a имя_пользователя tty
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 15:34:37
Мурик
WiseLord писал(а):Не выдумывайте, такое только в windows.
В винде как раз доступ к COM порту не ограничивается и его можно открыть даже под гостевой учеткой.
А в лине, нужны повышенные права хз зачем? Реально COM порт может быть дырой в безопасности ОС? Тогда почему для доступа в сеть (в т. к. инет) не нужны права рута? Ведь это реальная дыра в безопасности!
Короче в линукс с доступом к COM порту логики нет.
WiseLord писал(а):sudo gpasswd -a имя_пользователя_tty
И для этого нужен пароль рута!
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 15:42:29
WiseLord
Не в курсе, как это _сейчас_ в windows, но, помнится, когда я ещё ей пользовался, году в 2004, мне захотелось приспособить в 5-дюймовый отсек дисплей 2х16, под программку LCD_Smartie. Всякие параметры системы отображать, информацию о песне из винампа увидеть. Так вот, чтобы работать с LPT (не COM, может в этом дело?) портом, дабы программа могла напрямую в него писать, приходилось некий драйвер-заглушку ставить. Что-то вроде PORT95NT, не помню точно.
А в лине, нужны повышенные права хз зачем? Реально COM порт может быть дырой в безопасности ОС?
Скажите, а в winXP зачем для записи дисков нужно было работать от администратора? Запись дисков - дыра в безопасности?
Я это к тому, что спор бессмысленный. Просто в Linux архитектура такая. Хочешь иметь возможность писать диски - будь в группе cdrw. Только читать? Будь в группе cdrom. Слушать музыку (иметь доступ к аудиоустройству)? Будь в группе audio. И так далее. В популярных дистрибутивах инсталлятор добавляет в нужные группы сам, поэтому многие, как мы видим, об этом не задумываются и не подозревают.
И для этого нужен пароль рута!
Для этого не нужен пароль рута.
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 15:56:22
Мурик
WiseLord писал(а):не COM, может в этом дело?
Да дело в этом.
Вот такой код:
Код: Выделить всё
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
Port.s = "COM1"
CompilerElse
Port.s = "/dev/ttyS0"
CompilerEndIf
OpenSerialPort(0, Port, 9600, #PB_SerialPort_NoParity, 8, 1,
#PB_SerialPort_NoHandshake, 255, 255)
Откроет порт в Windows, Linux и MacOS X. Только в линуксе нужны повышенные права для этого, что ИМХО нелогично.
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 17:27:26
kursant1986
WiseLord писал(а):Возможно, порт не ttyUSB0, а как-то иначе называется. Например, ttyACM0.
Посмотрите в dmesg, после втыкания в USB.
Вот что пишут в dmesg:
22853.015961] usb 2-5: USB disconnect, device number 72
[22855.310066] usb 2-5: new full-speed USB device number 74 using ohci_hcd
[22855.537295] usb 2-5: New USB device found, idVendor=0403, idProduct=6001
[22855.537308] usb 2-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[22855.537316] usb 2-5: Product: FT232R USB UART
[22855.537322] usb 2-5: Manufacturer: FTDI
[22855.537328] usb 2-5: SerialNumber: A600dAbY
[22855.545372] ftdi_sio 2-5:1.0: FTDI USB Serial Device converter detected
[22855.545491] usb 2-5: Detected FT232RL
[22855.545497] usb 2-5: Number of endpoints 2
[22855.545503] usb 2-5: Endpoint 1 MaxPacketSize 64
[22855.545509] usb 2-5: Endpoint 2 MaxPacketSize 64
[22855.545515] usb 2-5: Setting MaxPacketSize 64
[22855.551422] usb 2-5: FTDI USB Serial Device converter now attached to ttyUSB0
oleg@oleg:~$
Блин, походу только мне с этим "повезло".
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 17:33:40
WiseLord
[22855.551422] usb 2-5: FTDI USB Serial Device converter now attached to ttyUSB0
Ну вот, как я и писал в самом начале, подключаться к этому порту порту нужно командой
picocom -b 115200 /dev/ttyUSB0
Проверить, работает ли - после подключения замкнуть RX и TX и написать что-нибудь в той же консоли. Если есть echo-ответ (написанное возвращается и отображается как обычный набор текста), то всё работает.
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 17:57:50
kursant1986
Ура!!!! Все заработало, только я так и непонял чего оно раньше неработало...
Но всеровно спасибо всем кто ответил.
Вот результат.
oleg@oleg:~$ sudo picocom -b 9600 /dev/ttyUSB0
picocom v1.7
port is : /dev/ttyUSB0
flowcontrol : none
baudrate is : 9600
parity is : none
databits are : 8
escape is : C-a
local echo is : no
noinit is : no
noreset is : no
nolock is : no
send_cmd is : sz -vv
receive_cmd is : rz -vv
imap is :
omap is :
emap is : crcrlf,delbs,
Terminal ready
0Hello World!!!
Теперь буду писать хост под это все дело.
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 19:59:33
WiseLord
kursant1986 писал(а):только я так и непонял чего оно раньше неработало...
Из-за неправильного пути к устройству порта (не dev/
tty/ttyUSB0, а
/dev/ttyUSB0)
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 20:16:15
Cheba
Мурик писал(а): Только в линуксе нужны повышенные права для этого, что ИМХО нелогично.
В линуксе как раз сделано всё правильно. Открыть может только тот, у кого достаточно прав на устройство
Код: Выделить всё
ls -l /dev/ttyS0
crw-rw---- 1 root uucp 4, 64 янв 11 18:02 /dev/ttyS0
Достаточно входить в группу uucp, чтобы получить права на устройство. Рута получать для этого совсем необязательно. И это очень правильно, если где-то это не так, то там потенциально дырка в безопасности системы.
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 21:14:17
Мурик
Как COM порт может стать дырой в безопасности системы?
Почему тогда выход в инет не считается гигантской дырой? А ведь он по умолчанию разрешен!
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 21:35:11
phenomen
Да потому, что ком-порт - это физическое устройство, а в случае сети Вы имеете права использовать только высокие уровни OSI модели. Отключить или подключить сеть не выйдет без прав суперюзера.
Re: FT232RL и Linux: проблема подключения
Добавлено: Пт янв 24, 2014 23:19:34
Tolmi
Меня всегда забавляло, как люди, пришедшие из мира виндовс, первым делом всегда пытаются получить права рута. Мне рут вообще практически никогда не нужен на настроенной системе. Но самое смешное, что в виндовс грануляция прав доступа сделана ничуть не хуже, чем линукс, просто считанные единицы этим пользуются. Дыра в безопасности не в системе, а в мышлении человека по эту сторону экрана.
Re: FT232RL и Linux: проблема подключения
Добавлено: Сб янв 25, 2014 00:32:17
Мурик
phenomen писал(а):Да потому, что ком-порт - это физическое устройство
Ну и что?
Речь же не идет об получении прямого доступа к порту. Работа ведется через стандартные функции ОС, которые через драйвер работают с портом. Где в таком случае дыра в безопасности?
phenomen писал(а):Вы имеете права использовать только высокие уровни OSI модели
Я бы сказал что появляется громадная дыра в безопасности вызванная возможностью взлома системы через сеть! В линукс тоже есть баги и уязвимости и их могут использовать для своих целей. Вот это действительно вызывает беспокойство.
А как COM порт может поставить под угрозу безопасность системы?
Re: FT232RL и Linux: проблема подключения
Добавлено: Сб янв 25, 2014 08:44:30
WiseLord
Да что Вы заладили со своей безопасностью системы. Если какой-то ресурс и не может потенциально быть дырой в безопасности, это не значит, что его нужно отдавать всем кому ни попадя.
Линукс - многопользовательская система. И возможность какому-то пользователю отдать какой-то ресурс, а другому - запретить его использовать, это не минус, как Вы пытаетесь тут доказать, а плюс.