Linux посмотреть ком порт

Linux посмотреть ком порт

Как получить список доступных системе COM портов в Linux? Раньше искал в /dev файлы типа ttyS*, но что-то тут не так. На моем компе имеется один физический компорт. В /dev есть 4 порта (ttyS0, ttyS1, ttyS2, ttyS3). Но, например когда пытаюсь добавить в систему принтер, визард просит выбрать порт и показывает только ОДИН доступный компорт. Всё правильно, порт всего один. Хотя в девах их 4, в визарде только 1. На другом компе физически есть 1 компорт, а в /dev их аш 5. Как из кода в Linux-e можно получить список доступных компортов? или как проверить все ttyS0, ttyS1, ttyS2, ttyS3 и найти среди них рабочий(е)(реальный(е))?

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

  • Как получить список доступных системе COM портов? , ACCA, 18:37 , 21-Янв-10, (1)
    • Как получить список доступных системе COM портов? , juvf, 08:06 , 08-Фев-10, (2)
      • Как получить список доступных системе COM портов? , ACCA, 23:44 , 10-Фев-10, (3)

Сообщения по теме [Сортировка по времени | RSS]

>Как получить список доступных системе COM портов в Linux? Раньше искал в

a) grep serial /proc/ioports
b) cat /proc/tty/driver/serial
c) dmesg | grep ttyS
d) setserial -g /dev/ttyS6 | grep -v unknown

setserial получает информацию о порте через ioctl = TIOCGSERIAL.

1. «Как получить список доступных системе COM портов? « + / –
Сообщение от ACCA (ok) on 21-Янв-10, 18:37
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. «Как получить список доступных системе COM портов? « + / –
Сообщение от juvf (ok) on 08-Фев-10, 08:06

Спасибо. Таким образом смог выделить из всех ttyS* только рабочие. А можно подобным образом получить инфу о портах типа ttyUSB*? Или достаточно по наличию в /dev/ttyUSB0 определить, что такой порт доступен системе?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. «Как получить список доступных системе COM портов? « + / –
Сообщение от ACCA (ok) on 10-Фев-10, 23:44

>подобным образом получить инфу о портах типа ttyUSB*? Или достаточно по
>наличию в /dev/ttyUSB0 определить, что такой порт доступен системе?

Смотря откуда этот /dev/ttyUSB* взялся. Если его udev или ещё какой hal сделал — почти достаточно.

Посмотри, что такое /dev. Если udev filesystem, то скорее всего можно — /dev/ttyUSB* создаются и убираются динамически, если udev скрипт не глюканул.

Сделай `lshal’, почитаешь много интересного про ttyUSB. dmesg | grep ttyUSB тоже поможет.

Источник

Определение номера подключенного COM порта

Для правильного подключения оборудования, необходимо определить номер COM порта.

Проверка проводится при условии, что сервер полностью развернут, и работает заведомо правильно.

Windows

Для определения номера COM порта на ОС Windows необходимо:

  1. Убедиться в том, что многожильный кабель подключен к COM-порту
  2. Перейти в «Диспетчер устройств», расположенный в: Панель управления\Оборудование и звук\Диспетчер устройств (необходимы права администратора)
  3. Раскрыть дерево «Порты (COM и LPT)»
  4. Отсоединить многожильный кабель
  5. Запомнить изменения в дереве устройств «Порты (COM и LPT)»
  6. Присоединить многожильный кабель обратно к COM-порту
  7. Найти новый порт в дереве устройств «Порты (COM и LPT)»

8. После того, как номер COM-порта определен его необходимо указать в схеме SCADA, для устройства, подключенного многожильным кабелем.

Linux

Для определения номера COM порта на ОС Linux необходимо:

  1. Обладать правами Root либо пользователь должен входить в группу dialout
  2. Убедиться в том, что многожильный кабель подключен к COM-порту
  3. Проверить наличие COM портов в системе, введя в командную строку следующую команду:

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

Чтобы установить параметры для платы Launchpad для соединения на скорости 9600 нужно выполнить:

$ stty 9600 -F /dev/ttyACM0 raw -echo

Параметр raw устанавливает, что данные в компьютер передаются байт за байтом так же как приходят в порт без преобразований. Аппаратное управление потоком отключено. Подробнее о том, что включает и выключает raw — см. man stty. Если не включить raw, то скорее всего ничего работать не будет.

Теперь в той же консоли нужно набрать

$ cat /dev/ttyACM0

И можно смотреть данные, которые приходят от платы. Выход — нажать Ctrl+C.

Теперь нажимаем на плате RESET и видим, что в консоди напечатался текст.

Чтобы передать в плату данные, в другой консоли нужно использовать команду echo и перенаправление вывода в файл устройства. Наберём в другой консоли:

$ echo "1">/dev/ttyACM0

Видим, что на плате загорелся красный светодиод и в первой консоли было выдано сообщение об этом. Чтобы убрать конец строки в передаваемых данных, то нужно использовать запуск echo -n, а чтобы интерпретировать 16-ричные коды — нужно echo -e. Ключи можно комбинировать.

В итоге должно получиться так:

Чтобы увидеть 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*

Он долден выдать адреса всех реальных девайсов а эти адреса привящаны к номерам портов.

Источник

Читайте также:  Монитор aoc драйвер windows 10
Оцените статью