- Как в Linux посмотреть подключенные USB устройства
- Просмотр списка имен USB устройств с помощью команды df
- Список имен подключенных USB — устройств с помощью команды lsblk
- Список USB — устройств с помощью команды fdisk
- Список сведений о подключенных USB-устройствах с помощью команды lsusb
- Список USB контроллеров и устройств, использующих USB устройства
- Заключение
- команда для определения портов устройства (например, / dev / ttyUSB0)
- Объяснение:
- Как посмотреть USB устройства Linux
- Список подключенных устройств Linux
- Как посмотреть USB устройства Linux
- Выводы
- Как найти все последовательные устройства (ttyS, ttyUSB, ..) в Linux, не открывая их?
- Обновить
- как определить номер com порта usb устройства
Как в Linux посмотреть подключенные USB устройства
В настоящее время многие компьютерные периферийные устройства, такие как веб-камеры, мыши, сканеры, принтеры, жесткие диски, USB (Pendrive) подключаются по USB. После того, как эти устройства подключены к рабочему столу или серверу, важно знать имя устройства или путь к нему. Это помогает идентифицировать USB устройства для таких задач, как форматирование или отключение.
В Linux все файлы устройств хранятся в каталоге /dev и должны быть доступны во время загрузки системы.
В этой статье я покажу вам различные способы как в ubuntu посмотреть usb устройства. Большинство команд, упомянутых здесь, должны работать практически на всех дистрибутивах Linux. Например Ubuntu, Debian, Mint.
Просмотр списка имен USB устройств с помощью команды df
Команда df — это полезная команда, которая может помочь составить список всех подключенных томов, включая USB-накопители.
Как только USB-устройство подключается в систему Linux, это устройство автоматически монтируется в раздел /media и становится готовым к использованию.
Из приведенного выше вывода следует, что у меня есть 1 USB-накопитель /dev/sdb с 2 разделами /dev/sdb1 и /dev/sdb2
Список имен подключенных USB — устройств с помощью команды lsblk
Команда Lsblk используется для перечисления всех блочных устройств в системе Linux. Из списка можно фильтровать USB-устройства с помощью команды grep.
Чтобы получить дополнительную информацию, такую как UUID, производитель и тип файловой системы, используйте команду blkid, как показано на рисунке ниже.
Список USB — устройств с помощью команды fdisk
Вы можете использовать старую добрую команду fdisk, которая используется для разбиения томов на разделы, чтобы перечислить все разделы в системе Linux, включая USB-накопители.
Запятая будет отображать подробную информацию о вашем USB-томе, включая разделы , размер тома, секторы и тип файловой системы.
Список сведений о подключенных USB-устройствах с помощью команды lsusb
Команда lsusb, также известная как команда “List USB”, используется в Linux для перечисления всех USB-устройств, подключенных к системе.
На выводе выше отображается идентификатор шины, идентификатор устройства, идентификатор USB, а также поставщик или производитель USB-устройств
Команда lsusb перечисляет подключенные устройства и не предоставляет дополнительной информации о USB-устройствах.
Для получения дополнительной информации о подключенных USB устройствах используйте команду dmesg. Команда dmesg, также известная как “сообщение драйвера” или “показать сообщение”, используется для проверки загрузочных сообщений. Кроме того, эта команда используется для отладки проблем, связанных с оборудованием и печати сообщений, генерируемых драйверами устройств.
Вы можете использовать команду dmesg и grep, чтобы сузиться до USB-устройств.
Кроме того, вы можете передать вывод команды dmesg в less для облегчения прокрутки.
На выходе вы можете найти определенную строку, нажав клавишу прямой косой черты ( / ) на клавиатуре, а затем имя или идентификатор устройства USB-устройства.
В моем случае я ищу дополнительную информацию о USB устройстве под названием SanDisk.
Поиск USB-накопителя
Список USB контроллеров и устройств, использующих USB устройства
Команда usb-devices-это сценарий оболочки, который позволяет вам перечислить все USB-контроллеры и USB-устройства, подключенные к вашему компьютеру. Он печатает детали USB-устройства, такие как производитель, название продукта, серийный номер и многое другое. Вот вывод команды:
Заключение
В этой статье мы продемонстрировали различные способы просмотра USB-устройств, подключенных к системе Linux.
Источник
команда для определения портов устройства (например, / dev / ttyUSB0)
У меня вопрос по поводу портов в Linux. Если я подключаю свое устройство через USB и хочу проверить его порт, я не могу сделать это с помощью команды lsusb, которая указывает только номер шины и номер устройства на этой шине:
Есть ли команда, которая сообщает мне порт, к которому устройство подключено напрямую? Единственный способ сделать это до сих пор заключался в том, чтобы отключить и повторно подключиться и использовать команду:
В последней строке видно, что мое устройство подключено к / dev / ttyUSB0 .
Я не совсем уверен, что вы спрашиваете. Вы упоминаете «порт» несколько раз, но затем в своем примере вы говорите, что ответом является /dev/ttyUSB0 путь устройства, а не порт. Таким образом, этот ответ о поиске пути разработки для каждого устройства.
Ниже приведен быстрый и грязный скрипт, который просматривает устройства в /sys поиске USB-устройств с ID_SERIAL атрибутом. Обычно только настоящие USB-устройства будут иметь этот атрибут, и мы можем фильтровать его. Если мы этого не сделаем, вы увидите в списке много вещей, которые не являются физическими устройствами.
В моей системе это приводит к следующему:
Объяснение:
Устройства, которые отображаются в, /dev имеют dev файл в своем /sys каталоге. Поэтому мы ищем каталоги, соответствующие этим критериям.
Нам нужен путь к каталогу, поэтому мы удалим его /dev .
Это дает нам путь, /dev который соответствует этому /sys устройству.
Это отфильтровывает вещи, которые не являются фактическими устройствами. В противном случае вы получите такие вещи, как USB-контроллеры и концентраторы.
Команда udevadm info -q property —export выводит список всех свойств устройства в формате, который может быть проанализирован оболочкой в переменные. Поэтому мы просто призываем eval к этому. Это также причина, по которой мы заключаем код в круглые скобки, чтобы мы использовали подоболочку, а переменные стирались в каждом цикле.
Больше фильтрации вещей, которые не являются реальными устройствами.
Я надеюсь, что вы знаете, что делает эта строка 🙂
Источник
Как посмотреть USB устройства Linux
При подключении USB флешки или любого другого USB устройства к компьютеру создается набор файлов, с помощью которых вы можете получить к ним доступ. Когда вы работаете в файловом менеджере все достаточно просто, но как только дело доходит до консоли все становится намного труднее.
Каждому новичку важно уметь идентифицировать подключенные устройства, будь то usb флешки, SD карты или жесткие диски чтобы не записать что-либо не туда или не отформатировать не тот диск. В этой статье мы рассмотрим несколько способов как посмотреть usb устройства Linux, подключенные к компьютеру.
Список подключенных устройств Linux
В операционной системе Linux используется особенная философия управления. Все объекты, в том числе и устройства считаются файлами. При подключении какого-либо устройства к системе для него создается файл в каталоге /dev/.
Обычно, после того, как вы подключили любую USB флешку или другой накопитель к системе с установленным окружением рабочего стола, устройство автоматически монтируется в папку /media/имя_пользователя/метка_устройства/, а затем вы можете получить доступ к файлам из устройства в этой папке. Тем не менее, бывают ситуации, когда вам нужно вручную монтировать USB и тогда такой вариант не поможет.
Файлы всех устройств находятся в каталоге /dev/. Здесь вы можете найти файлы sda, hda, которые представляют из себя жесткий диск, а также файлы sda1 или hda1, которые позволяют получить доступ к разделам диска. Мы уже подробно рассматривали это все в статье работа с устройствами Linux. Вы можете посмотреть список всех устройств в каталоге /dev/ с помощью команды:
Теперь осталось понять какие из этих файлов устройств принадлежат USB устройствам и каким устройствам именно.
Как посмотреть USB устройства Linux
Чтобы узнать более подробную информацию о каждом устройстве, подключенном к вашей системе и посмотреть список устройств linux, можно использовать команду df. Она используется для просмотра свободного места на диске:
По общему размеру и занятому пространству вы можете определить какое из устройств является вашей флешкой, но этот способ посмотреть устройства linux не очень удобен и работает он только с уже смонтированной флешкой, есть еще несколько, дающих более точную информацию.
Команда lsblk отображает список всех блочных устройств, подключенных к вашему компьютеру. Утилита отображает не только их размер, но и тип (диск/раздел) а также старший и младший номер устройства. Тут уже немного проще найти флешку, мы видим два диска, и если первый с размером 698 гигабайт это жесткий диск, то второй, — точно флешка:
Есть еще один способ, это утилита fdisk. Она позволяет посмотреть таблицу разделов на всех блочных устройствах, подключенных к компьютеру. Но утилиту нужно выполнять от имени суперпользователя:
Также, узнать о подключенном USB устройстве можно посмотрев очередь сообщений ядра dmesg. Здесь хранится информация обо всех операциях, которые происходят в ядре. В том числе здесь будет отображено имя флешки, только что подключенной к компьютеру. Для просмотра сообщений ядра выполните:
Чтобы посмотреть какие из sd устройств относятся к USB используйте такую команду:
ls -l /dev/disk/by-id/usb*
Попытаться идентифицировать свою флешку в системе через терминал можно с помощью утилиты blkid. Она выводит UUID идентификаторы всех подключенных устройств, а также файловую систему:
Выводы
В этой статье мы рассмотрели как посмотреть usb устройства linux, а также как узнать имя своей usb флешки в системе. Вы можете использовать любую из команд, которая вам понравилась, или же сразу несколько. Но теперь вы знаете как точно определить имя файла своей флешки.
Источник
Как найти все последовательные устройства (ttyS, ttyUSB, ..) в Linux, не открывая их?
Как правильно получить список всех доступных последовательных портов / устройств в системе Linux?
Другими словами, когда я перебираю все устройства /dev/ , как мне классическим способом определить, какие из них являются последовательными, то есть те, которые обычно поддерживают скорость передачи данных и управление потоком RTS / CTS ?
Решение будет закодировано на C.
Я спрашиваю, потому что я использую стороннюю библиотеку, которая явно ошибается: кажется, что она только повторяется /dev/ttyS* . Проблема в том, что есть, например, последовательные порты через USB (предоставляемые адаптерами USB-RS232), и они перечислены в / dev / ttyUSB *. И читая Serial-HOWTO на Linux.org , я понимаю, что со временем появятся и другие пространства имен.
Поэтому мне нужно найти официальный способ обнаружения последовательных устройств. Проблема в том, что ничего не задокументировано, или я не могу его найти.
Я предполагаю, что одним из способов было бы открыть все файлы /dev/tty* и вызвать ioctl() на них определенный, который доступен только на последовательных устройствах. Но будет ли это хорошим решением?
Обновить
hrickards предложил посмотреть исходник «setserial». Его код делает именно то, что я имел в виду:
Сначала он открывает устройство с:
Затем он вызывает:
Если этот вызов не возвращает ошибки, значит, это, по-видимому, последовательное устройство.
Я нашел похожий код в Serial Programming / termios , который также предложил добавить эту O_NOCTTY опцию.
Однако у этого подхода есть одна проблема:
Когда я тестировал этот код в BSD Unix (то есть в Mac OS X), он тоже работал. Однако последовательные устройства, которые предоставляются через Bluetooth, заставляют систему (драйвер) пытаться подключиться к устройству Bluetooth, что занимает некоторое время, прежде чем оно вернется с ошибкой тайм-аута. Это вызвано простым открытием устройства. И я могу представить, что подобное может происходить и в Linux — в идеале мне не нужно открывать устройство, чтобы определить его тип. Интересно, есть ли способ вызывать ioctl функции без открытия или открывать устройство таким образом, чтобы это не приводило к установлению соединений?
Источник
как определить номер com порта usb устройства
как определить номер ком порта устройства, подключенного через usb? по типу диспетчер устройств в windows
ставлю клиентам оборудование. возможно 2 типа подключений — через RS232 либо USB. В сопутствующем ПО необходимо прописать номер порта. Если подключение через RS232 — проблем никаких, все порты чаще всего подписаны на системнике, либо методом перебора, их как правило, не больше 5-и.
Но часто бывает что все физические comы заняты либо отсутствуют вовсе и приходится выполнять подключение через USB. В соответствии с технической документацией в этом случае в каталоге с ПО оборудования создаем символическую ссылку (драйвер) ttyS99 на /dev/ttyACM0. Как можно быстро узнать номер ком порта этого ttyACM0? Он определяется чаще всего как 9, но бывает какой-нибудь 61, 62 или вообще любой! начинаются танцы с бубном в виде бесконечного перебора.
При помощи udev создавай симлинк при подключении. И это будет уже не безымянный USB ACM, а /dev/чтототам. Конечно, если у железяки свои VID/PID, а не используется какой-нибудь ширпотребный.
Как можно быстро узнать номер ком порта этого ttyACM0? Он определяется чаще всего как 9
Ты что-то попутал. Какой, нафиг, «номер ком-порта»? Это тебе не прошивка для игровых приставок! Какое устройство создалось, такое и надо указывать в подключении.
В сопутствующем ПО необходимо прописать номер порта
До меня дошло! «сопутствующее ПО» писал вантузоид, да еще и не на ЯП, а на какой-нибудь «си-диезине»? И там нет устройства, а вместо него «номер порта»? Тогда смотри в исходники этого шлака. Я вообще не представляю, какой логикой мог автор руководствоваться, чтобы «номер порта».
чтобы запустить аппарат, необходимо в каталоге с его ПО в конфигурационном файле .ini прописать номер com порта. строка так и называется comport=*, где * — номер от 1 до 99. на windows проблема решалась в диспетчере устройств во вкладке com порты — номер порта. на линукс я не знаю как определить поэтому и задал вопрос. что не так я спросил? аппарат не предназначен для USB поэтому прописывается символическая ссылка (драйвер), эмулирующий этот ком. прописывать номер всеравно надо
проблема в том что одно и то же устройство с одним и тем же серийником, id, кодом или еще чем-то, на разных linux системах определяется под разным номером этого com. В основном это системы под ККТ, типо artix и проч. Нужен универсальный инструмент распознавания
на линукс я не знаю как определить поэтому и задал вопрос. что не так я спросил?
Объясняю: спрашивать надо того олуха, который это говно написал! Потому что в линуксе нет понятия «номер порта».
прописывается символическая ссылка (драйвер), эмулирующий этот ком.
Как она выглядит и куда прописывается?
Блин, ну неужели ты вообще в линуксе ниже плинтуса?
ln -s /dev/ttyACM0 /ПОустройства/ttyS99
ОК, теперь хоть понятно.
Как ты думаешь, что означает «ttyS99»? Какой номер «ком-порта»? Давай подскажу: /dev/ttyS0 — это «ком1».
«Потому что в линуксе нет понятия «номер порта». »
он есть в windows, возможно разрабы перенесли его в linux под тем же названием «для простоты». какой-то параметр существует точно
«Как ты думаешь, что означает «ttyS99»? Какой номер «ком-порта»? Давай подскажу: /dev/ttyS0 — это «ком1». »
по твоей логике ком100. но это бред. я писал уже — на разных linux системах везде пишется ttyS99 одинаково, но по факту методом подбора определяется как ком9, ком10, ком61
Не номер портта, а имя устройства. Смотри, что выводится в dmesg при подключении девайса
[17819.727106] usb 2-1.5: New USB device found, idVendor=079b, idProduct=0028 [17819.727111] usb 2-1.5: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [17819.727586] cdc_acm 2-1.5:1.0: ttyACM0: USB ACM device
это. чтобы запустить ‘это’ устройство, нужно в каталоге с его ПО в конфигурационном файле прописать comport=9. почему? почему если я поеду завтра в какой-нибудь леруомерлен со своим устройством, попробую воткнуть его им в ККТ, чтобы оно заработало у них, я должен буду у них в том же каталоге с ПО, прописать comport=61
Особо суровый идиотизм. С этим вопросом — к разработчику.
Предположим номеров comпорт не существует и надписи на системниках рядом с разъёмами com1 com2 и т д это чушь, а разработчики написали бред. Все же я не знаю по другому как их обзывать, буду говорить номер компорт извините что мозолю вам глаза. Одно я могу утверждать на 100 процентов. Какой-то параметр компорта существует, потому что от него зависит работоспособность устройства, я просто не знаю, как его посмотреть, с этим и обратился к вам, прошаренным линуксоводам. Повторюсь, если устройство физически подключается по ком через разъём rs232, то решение сводится к осмотру системника и поиска надписи. Если же подключение выполняется по USB, приходится гадать, потому что это уже виртуальный компорт, но по моей практике, у него тоже есть свой номер.
“Блин, ну неужели ты вообще в линуксе ниже плинтуса?”
Да это так. Я в линуксе на уровне монтирования флешки под командой sudo. Ровно столько мне требуется для работы. И если честно, чем глубже я в него окунаюсь, тем больше меня выворачивает наизнанку
Под этим номером разработчик мог понимать что угодно,напиши ему письмо.
Конечно, если у железяки свои VID/PID, а не используется какой-нибудь ширпотребный.
Даже тут можно выйти из положения, если она одна. Либо привязаться к Bus, если разные разъёмы на разных.
Я вообще не представляю, какой логикой мог автор руководствоваться, чтобы «номер порта».
Писал под DOS в начале 90-ых?
Нужен универсальный инструмент распознавания
Какое слово непонятно в первом же ответе анонимуса? Он же написал: udev.
Если же подключение выполняется по USB, приходится гадать, потому что это уже виртуальный компорт, но по моей практике, у него тоже есть свой номер.
Разработчик, конечно, мог упороться и зацепиться за то, что показывает ls -dl /sys/dev/char/* | grep «char/188» , но мне кажется, что он, всё же, хочет /dev/ttyS , а этот симлинк ему можно сделать посредством udev.
Да ну (: вот прям нет?
ок давай наведу на мысль, про правило для udev тебя уже тут ткнули, это хорошее решение, так как привяжешь конкретную железяку к конкретному симлинку.
если надо быстро посмотреть то
естественно твоя прога должна понимать не только запись в конфиге вида COMx. Если она настолько тупа, то кроме udev у тебя нет вариантов
ну и естественно это может не работать на всех зоопарках дистра, увы универсального способа нет
Спроси дебила, который этот софт писал!
чем глубже я в него окунаюсь, тем больше меня выворачивает наизнанку
Ну так раз ты — тупой геймер, не лезь, куда тебе не надо.
создаем символическую ссылку (драйвер) ttyS99 на /dev/ttyACM0
Символическая ссылка ≠ драйвер.
номер ком порта устройства, подключенного через usb?
У устройства подключенного по usb нет ком порта. Это драйвер юзбового ком адаптера при подключении устройства создаёт виртуальный ком порт.
Если ты хочешь писать в /dev/ttyACM0, то после создания симлинка ttyS99 тебе в твоей программе нужно указать порт 100. Но, емнип, оно у тебя не заработает, т.к. при подключении устройства, у тебя кроме ttyACM0 должен создаться ttyS*, номер которого тебе и нужно узнавать, если не хочешь копаться в правилах udev.
ttyACM0 — это не «ком порт», это юзбовый контроллер, который тебе ком порт добавляет.
Как посмотреть, какой из портов тебе нужен? Все ком порты — «файлы» в директории /sys/class/tty и /dev/serial Смотришь выхлоп ls -l /sys/class/tty и ls -l /dev/serial/by-path и сопоставляешь с тем, в какой USB разъём у тебя подключен адаптер. Как посмотреть куда адаптер воткнул, тебе уже Morin написал.
Я давно юзбовые адаптеры не видел, могу что-нибудь перепутать, если что.
А вообще, нормальный адаптер тебе бы /dev/ttyUSB0 создал, и не сношал мозг.
Когдя использую более одного переходника USB-COM, то беру на разных чипах и оборудование вешаю на /dev/serial/by-id/ . Если чипы одинаковые то надо делать udev правило, чтобы переходники мапились по серийнику, иначе будет путаница, но мне делать так лень)). Можно еще пробовать вешать на /dev/serial/by-path/, но я не пробовал.
Спасибо всем буду пробовать сегодня
[ 1328.568927] usb 2-1.5: new full-speed USB device number 6 using ehci-pci [ 1328.677761] usb 2-1.5: config 1 interface 0 altsetting 0 endpoint 0x85 has an invalid bInterval 0, changing to 10 [ 1328.678720] usb 2-1.5: New USB device found, idVendor=11ca, idProduct=0219 [ 1328.678725] usb 2-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 1328.678728] usb 2-1.5: Product: Trident USB Device 1.1 [ 1328.678731] usb 2-1.5: Manufacturer: VeriFone Inc [ 1328.678734] usb 2-1.5: SerialNumber: 0123456789ABCD
добавляется только ttyACM0
то есть. я должен создать правило udev, по которому моя система запомнит мое устройство, например, по серийнику, и будет автоматом при его подключении привязывать к какому-нибудь порту, пусть будет 50, т е ttyS50, если я все правильно понаял. Осталось разобраться как создавать эти udev правила )
в /etc/udev/rules.d создать файл 90-VeriFone.rules с таким содержанием
писал по памяти, попробуй, если что-то не выйдет гугли
окей. создал правило. в папке dev создается файл ссылка @COM50 ссылающийся на ttyACM0 по типу того что я создавал вручную в папке с ПО только с названием ttyS99. Как мне это поможет в определении компорта?
кто-то писал здесь про систему DOS он прав, это ПО писали в т ч для него, т к есть соответствующая инструкция. если я наберу команду cat /proc/tty/driver/serial, выдаст такой список 0: uart:unknown port:000003F8 irq:4 1: uart:unknown port:000002F8 irq:3 2: uart:unknown port:000003E8 irq:4 3: uart:unknown port:000002E8 irq:3 4: uart:unknown port:00000000 irq:0 5: uart:unknown port:00000000 irq:0 6: uart:unknown port:00000000 irq:0 7: uart:unknown port:00000000 irq:0 8: uart:unknown port:00000000 irq:0 9: uart:unknown port:00000000 irq:0 10: uart:unknown port:00000000 irq:0 11: uart:unknown port:00000000 irq:0 12: uart:unknown port:00000000 irq:0 13: uart:unknown port:00000000 irq:0 14: uart:unknown port:00000000 irq:0 15: uart:unknown port:00000000 irq:03E8 16: uart:unknown port:00000000 irq:0 17: uart:unknown port:00000000 irq:0 18: uart:unknown port:00000000 irq:0 19: uart:unknown port:00000000 irq:0 20: uart:unknown port:00000000 irq:0 21: uart:unknown port:00000000 irq:0 22: uart:unknown port:00000000 irq:0 23: uart:unknown port:00000000 irq:0 24: uart:unknown port:00000000 irq:0 25: uart:unknown port:00000000 irq:0 26: uart:unknown port:00000000 irq:0 27: uart:unknown port:00000000 irq:0 28: uart:unknown port:00000000 irq:0 29: uart:unknown port:00000000 irq:0 30: uart:unknown port:00000000 irq:0 31: uart:unknown port:00000000 irq:0
так вот в системе DOS это значило бы, что
3F8 это COM1 2F8 это COM2 3E8 это COM3 2E8 это COM4
не знаю как это может помочь просто наткнулся на соответствие
полагаю что надо искать параметр устройства типо 3F8, потом расшифровать его
А порт теперь не 16-м стал?
Ищи быдлокодера, который это говно написал.
Что это за утилита, кстати? Может, за то время, что ты ищешь решения, проще было с нуля ее переписать?
банковское по. устройство — терминал эквайринг
ну так и обращайся к нему как com50, в какой порт его не ткни для него всегда будет именно этот симлинк, привязанный к vid pid serial и всегда будет трактоваться однозначно на машине с подобным udev правилом
Ты невнимательно читал: ПО для этой фигни писал какой-то мудак, поэтому «номер порта» у него какой-то рандомный получается.
А ТС не въезжает не только в линукс, но и в это говноПО. И, похоже, у него нет ни исходников, чтобы сделать нормально, ни того урода рядом, чтобы ему морду набить!
да похрен какой у него номер под капотом, работать можно через симлинк. и грубо говоря линукс сам еще тот рандом в нумерации и потому кроме udev и нет нормального способа. пусть пропишет в конфиг симлинк, если надо что-то специфичное вроде «фыва30» то просто заменить в правиле com50 на нужный фыва
да не, перечитал еще раз, порт указывается в конфиге софтины, тут походу тс в надмозга играет вместо того чтоб сесть и почитать
ну собственно беглый гуглинг по этим терминалам и привел меня к ответу в составе пакета есть сшаник в котором прописан порт, собственно не вижу драмы заглянуть в него и написать хоть удев правило, хоть симлинк руками, хоть сшаник переписать
всем спасибо кто помогал. в общем разобрался нашелся способ через udev. прога действительно понимает конкретный фыва, а именно ttyS*, поэтому создаем правило ссылку на нее с любым номером (что крайне удобно — можно не гадать).
Я так понял проблема с определением была конкретно для моей сборки linux (у меня ubuntu). В гугле находил инструкцию, что люди определяют порт через команду ls -la /dev/ttyS* -выводит список всех ttyS, в стандартных случаях это все физические комы, ttyS0-ttyS3 и после подключения добавляется новый типо ttyS61, откуда сразу определяем номер. НО у меня же ИЗНАЧАЛЬНО существовало 60+ ttyS* под всевозможными номерами, и этот способ не работал. Проблема решилась УДАЛЕНИЕМ под правами root конкретного ttyS* из папки /dev/, на который создали правило, после этого применяем правило снова sudo udevadm trigger, после этого все работает.
Я понимаю что можно наверняка настроить, чтобы все было автоматически, легко и быстро, но меня это уже не интересует) Есть только пару сопутствующих вопросов. Я заметил, что если после перезагрузки подключить сначала флешку, потом устройство, оно будет уже определяться как ttyACM1, а не ttyACM0. на символическую ссылку это не влияет — она так же создается, только на ttyACM1. Но вот прога перестает запускаться. Почему? я думаю тут уже из-за ПО что то криво написано. Вопрос номер 2. Имеет ли значение расположения этой ссылки в linux? Имеется ввиду каталог. Вопрос 3. Я уже писал здесь что создавал ссылку в соответствии с инструкцией. Только вручную а не с помощью правила. Выглядела она @ttyS99 на файл ttyACM0. Это не одно и тоже, что я создал с помощью udev? описание одинаковое «/dev/ttyACM0», только название разное
«Это не одно и тоже, что я создал с помощью udev? описание одинаковое «/dev/ttyACM0», только название разное» помимо тогда что система его запоминает по серийнику
Да залезь же уже в скрипты программы, я ж вечером тебе писал, если не работает с ttyACM1, то в конфиге скорее всего захардкожено ttyACM0. Найди где оно, замени на что-то вменяемое например ttyVeriFone. создай udev правило и живи спокойно.
По поводу ковыряния в ПО в поисках ACM0 и его редактирования. Мне не удалось его найти. Одни файлы закодированы и при попытке открыть выдают кракозябры, другие слишком длинные, и поиск по ним с помощью поисковых команд по коду “ACM” не дал результатов. В прочем, это уже не имеет значения. А вообще служба безопасности запрещает там лазить, тем более что то менять
тогда пинай техпо, пусть исправляют, т.к. ACM0 может быть занят, а его удаление может привести к нерабочему состоянию чего-то еще на рабочем месте.
В случае с ACM0 и бубунтой все просто: в бубунте при втыкании флешки запускается какой-то демон, который пытается определить, не модем ли это случаем. Ну и на всякий случай эта дрянь создает устройство ACMx.
На SO поищи, как избавиться от такого поведения. Там то ли ненужный networkmanager убить нужно, то ли modemd (кажись, второе, но первое тоже лучше не запускать, оно не нужно).
Ну или нормальный линукс поставь, а не это говно.
Его «техпо» про modemd и прочее вредительство педераста-поцтеринга, похоже, не слыхало!
ну ты-то тоже походу про терминалы на модеме не слышал, да да, там такое сплошь и рядом, кто тебе сказал, что modemd можно безболезненно грохнуть? На кой хрен падтерминал прикидывается модемом уже отдельный разговор.
кто тебе сказал, что modemd можно безболезненно грохнуть?
Я тебе сказал. Это говно не нужно, т.к. и без него все работает прекрасно.
Ты, похоже, тоже нифига линуксом не пользуешься, как и ТС.
Источник