Linux посмотреть ком порт
Как получить список доступных системе COM портов в Linux? Раньше искал в /dev файлы типа ttyS*, но что-то тут не так. На моем компе имеется один физический компорт. В /dev есть 4 порта (ttyS0, ttyS1, ttyS2, ttyS3). Но, например когда пытаюсь добавить в систему принтер, визард просит выбрать порт и показывает только ОДИН доступный компорт. Всё правильно, порт всего один. Хотя в девах их 4, в визарде только 1. На другом компе физически есть 1 компорт, а в /dev их аш 5. Как из кода в Linux-e можно получить список доступных компортов? или как проверить все ttyS0, ttyS1, ttyS2, ttyS3 и найти среди них рабочий(е)(реальный(е))?
Оглавление |
|
Сообщения по теме | [Сортировка по времени | RSS] |
1. «Как получить список доступных системе COM портов? « | + / – | |
Сообщение от ACCA | ||
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору |
2. «Как получить список доступных системе COM портов? « | + / – | |
Сообщение от juvf | ||
Спасибо. Таким образом смог выделить из всех ttyS* только рабочие. А можно подобным образом получить инфу о портах типа ttyUSB*? Или достаточно по наличию в /dev/ttyUSB0 определить, что такой порт доступен системе? | ||
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору |
3. «Как получить список доступных системе COM портов? « | + / – | |
Сообщение от ACCA | ||
Смотря откуда этот /dev/ttyUSB* взялся. Если его udev или ещё какой hal сделал — почти достаточно. Посмотри, что такое /dev. Если udev filesystem, то скорее всего можно — /dev/ttyUSB* создаются и убираются динамически, если udev скрипт не глюканул. Сделай `lshal’, почитаешь много интересного про ttyUSB. dmesg | grep ttyUSB тоже поможет. Источник Определение номера подключенного COM портаДля правильного подключения оборудования, необходимо определить номер COM порта. Проверка проводится при условии, что сервер полностью развернут, и работает заведомо правильно. WindowsДля определения номера COM порта на ОС Windows необходимо:
8. После того, как номер COM-порта определен его необходимо указать в схеме SCADA, для устройства, подключенного многожильным кабелем. LinuxДля определения номера COM порта на ОС Linux необходимо:
4. После выполнения команды отобразится список всех доступных COM-портов dev/ttyS0 — первый COM порт /dev/ttyS1 — второй COM порт /dev/ttyUSB0 — специальный кабель-переходник из USB в COM (Gembird UAS111) 5. Установить программу minicom. Для этого вводим следующую команду: 6. Найти многожильный кабель в оплётке длиной 4-6 см. 7. Соединить 2 и 3 выводы COM порта перемычкой из кусочка многожильного провода. Оплётка будет удерживать провод на контактах, а металлические жилы внутри будут проводниками. 8. Настроить программу minicom. Для этого вводим следующую команду: 9. Выбрать «Настройка последовательного порта» 10. Нажимая А поочередно выбираем порты (если используется кабель-переходник из USB в COM то выбрать /dev/ttyUSB0) 11. Отключить аппаратное управление потоком, нажав «F» 12. Выйти из настроек нажав «Enter» 13. Сохранить настройки по умолчанию «Сохранить настройки как dfl» 14. Выйти из minicom 15. Запустить minicom выполнив команду: 16. Нажать на любую клавишу на клавиатуре В случае, если символы не вводятся с клавиатуры, необходимо вернуться к пункту 10, и выбрать другой COM-порт Если вводимые символы отображаются — значит COM-порт определен верно 17. После того, как номер COM-порта определен его необходимо указать в схеме SCADA, для устройства, подключенного многожильным кабелем. Источник Заметки о Linux, электронике, радиолюбительствеЛичный блог Вадима Кузнецова, RA3XDH воскресенье, 27 июля 2014 г.Работа с последовательным портом из консоли LinuxВ предыдущем посте было показано как запустить UART на отладочной плате Launchpad для MSP430. Теперь рассмотрим как общаться с платой при помощи средств командной строки Linux. Используется плата с прошивкой из предыдущего поста. Для подробностей — см. под кат Как известно, все устройства последовательных портов представлены файлами устройств в каталоге /dev.Через эти файлы и происходит общение ОС Linux с внешним устройством на последовательном порту. Чтобы передать что-то на внешнее устройство нужно записать данные в файл устройства, а чтобы считать информацию из устройства — прочитать данные из файла устройства. Это можно делать при помощи команд cat и echo так же как для обычных файлов на диске. Или внутри программы на С при помощи вызовов ioctl(), read() и write() или библиотеки termios. Физическим последовательным портам RS232, к которым подключались диалапные модемы на старых компьютерах, соответствуют файлы устройств /dev/ttyS*, начиная с /dev/ttyS0. Виртуальным последовательным портам, которые создаются различными конвертерами USB UART соответствуют файлы устройств /dev/ttyUSB* и /dev/ttyACM*. Ядро Linux автоматически разпознаёт подключенное устройство, загружает для него драйвер и создаёт файл устройства. Вручную устанавливать драйвер, как в ОС Windows не требуется. Например, если подключить к USB преобразователь USB UART FT232, то создаётся файл устройства /dev/ttyUSB0, с которым можно работать также как и с обычным последовательным портом. На плате Launcpad находится микросхема TUSB3410, которая тоже представляет собой конвертер USB UART. Если подключить её к USB, то создаётся файл устройства /dev/ttyACM0. Чтобы общаться с платой нужно что-либо писать/читать с этого файла. Чтобы пользователь мог читать или писать в файл устройства последовательного порта, его нужно добавить в группу dialout. Иначе работать с последовательным портом сможет только администратор root. Простейшим приложением с графическим интерфейсом, которое работает с последовательным портом, является CuteCOM. Он обычно уже есть в вашем дистрибутиве Linux. Его можно установить из репозиториев. При помощи CuteCOM мы работали с платой в предыдущем посте. Выглядит CuteCOM вот так: Работать с ним крайне просто. Указываем нужное устройство, если его нет в списке, то его можно впечатать вручную. Затем указываем скорость и параметры и нажимаем OpenDevice. В окне видим данные, которые пришли от устройства. В поле ввода в нижней части можем печать строку символов, которые предаются на устройство. Чтобы передать данный нажимаем Enter и смотрим ответ устройства в окне. Теперь рассмотрим как работать с COM-портом из командной строки. Для этого служат три команды: stty, cat и echo. Команда stty устанавливает параметры и скорость COM-порта. Её формат: stty -F $ stty 9600 -F /dev/ttyACM0 raw -echo Теперь в той же консоли нужно набрать $ cat /dev/ttyACM0 Теперь нажимаем на плате RESET и видим, что в консоди напечатался текст. Чтобы передать в плату данные, в другой консоли нужно использовать команду echo и перенаправление вывода в файл устройства. Наберём в другой консоли: $ echo "1">/dev/ttyACM0 В итоге должно получиться так: Чтобы увидеть 16-ричные коды данных, приходящих от устройства, нужно использовать команду hexdump: $ cat /dev/ttyACM0|hexdump -C Чтобы иметь вывод данных от устройство на экран и в текстовый файл нужно использовать tee: Источник как определить номер com порта usb устройствакак определить номер ком порта устройства, подключенного через usb? по типу диспетчер устройств в windows ставлю клиентам оборудование. возможно 2 типа подключений — через RS232 либо USB. В сопутствующем ПО необходимо прописать номер порта. Если подключение через RS232 — проблем никаких, все порты чаще всего подписаны на системнике, либо методом перебора, их как правило, не больше 5-и. Но часто бывает что все физические comы заняты либо отсутствуют вовсе и приходится выполнять подключение через USB. В соответствии с технической документацией в этом случае в каталоге с ПО оборудования создаем символическую ссылку (драйвер) ttyS99 на /dev/ttyACM0. Как можно быстро узнать номер ком порта этого ttyACM0? Он определяется чаще всего как 9, но бывает какой-нибудь 61, 62 или вообще любой! начинаются танцы с бубном в виде бесконечного перебора. Ну раз ты сказал то конечно, оно вон оно как (: Самому не смешно? Я тебя расстрою, это скорее всего не проблема убунты, а проблема хардварного моста и кривого линуксячего драйвера, ну вот модем он тут понимаешь, мож в епрумине моста валяется запись о модеме, может еще чего Если и хочется вдруг подключить модем через задницу, а не по-человечески, modemd можно из системы не удалять. Просто убить его автостарт. Но говорю тебе: он не нужен. Я еще когда 4 года назад «свистком» GSM’ным пользовался, без всяких modemd интернет поднимал. А сейчас это, наверное, уже вообще прошлый век. Вот ты и попался, сраный вантузоид! И еще советы на ЛОРе раздает. Хамло! Ну то есть драйверов под линукс не существует, ясно понятно, свидетель монолитного ядра во всей красе. (: Был бы ты линуксоидом, сказал «модули ядра». Слово «драйвер» в отношении куска ПО для обеспечения работы железки только вантузоиды используют! Ну конечно конечно это сильно меняет смысл для фанатиков (: Я тебя опять расстрою, все используют термин драйвер и всем насрать что там фантазируют себе фанатики Давай я тебе стул еще подогрею — https://github.com/torvalds/linux сам найдешь или помочь? Вы все не правы. А лор не торт. Проблема вовсе не в симлинках и удевом тут не помочь. Нужно узнать номер порта в дос/виндовс нотации. Соответственно, бери любую утилиту для дос или винды для поосмотра портов и смотри, какие порты в системе есть. С тем, что номер порта разный в зависимости от последовательности включения устройств в usb сделать ничего нельзя потому что во времена дос порты и их номера были привязаны к адресам и прерываниям. а в юсб пнп и они добавляются по одному. Посто пусть не вытаскивают юсб при перещагрузке. setserial -g /dev/ttyACM* Он долден выдать адреса всех реальных девайсов а эти адреса привящаны к номерам портов. Источник |