Страница 3 из 6

Re: Требуется помощь от знатоков Linux

Добавлено: Ср июн 03, 2026 11:22:51
linux_rulezz
ARV писал(а): Ср июн 03, 2026 10:07:34ответь на мой вопрос
Я уже ответил, несколько вариантов есть. Некоторые требуют прав рута, некоторые - нет.
Но: если у человека порт не отключен в биосе, то все очень просто. У /dev/ttySX и COMY связь элементарная: X=Y-1.
Еще можно stty натравить (тут уже вообще рут не нужен) на /dev/ttySx. Вот, запускаю у себя на компе:

Код: Выделить всё

stty -F /dev/ttyS0
speed 9600 baud; line = 0;
-brkint -imaxbel
ishtar> 03.06, 11:19 ~/Yandex.Disk/Projects/small_tel
stty -F /dev/ttyS1
stty: /dev/ttyS1: Input/output error
ishtar> 03.06, 11:19 ~/Yandex.Disk/Projects/small_tel
ls -l /dev/ttyS*
crw-rw---- 1 root dialout 4, 64 Jun  2 17:00 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 Jun  2 17:00 /dev/ttyS1
crw-rw---- 1 root dialout 4, 66 Jun  2 17:00 /dev/ttyS2
crw-rw---- 1 root dialout 4, 67 Jun  2 17:00 /dev/ttyS3
Т.е. если я пытаюсь "потенциальный" порт использовать, получаю ошибку. Аналогично в софте:

Код: Выделить всё

tty_term -n /dev/ttyS1
tty_term: Can't get old TTY settings: Input/output error

Can't open /dev/ttyS1
Т.е. когда ты выполняешь `ioctl(comfd, TCGETS2, &tty)` для несуществующего порта, получаешь ошибку.

Зато у аппаратных портов есть жирный плюс: в отличие от USB, они никуда не денутся. Разве что могут стать недоступными, если в биосе пользователь их отключил. И по надписям у портов отлично понятно, что под каким /dev/ttySx находится.

Re: Требуется помощь от знатоков Linux

Добавлено: Ср июн 03, 2026 11:28:06
ARV
твой ответ лишь частично соответствует моему вопросу. мне нужно понять, как все это сделать из моей программы, а не из консоли. запускать отдельные консольные скрытые процесы, чтобы потом парсить их текстовый выхлоп?! ужос
что такое stty я не в курсе, но догадываюсь, что она пытается что-то отправить в порт? ну и что это за метод? а если на том конце порта пресс, который примет мусор и отрубит кому-то голову? так недопустимо проверять.

Re: Требуется помощь от знатоков Linux

Добавлено: Ср июн 03, 2026 11:31:07
ARV
и вообще проверка методом какого-либо доступа (в т.ч. просто на чтение настроек) мне представляется несколько кривой... если порт кем-то открыт, я получу ошибку, если его нет, тоже ошибку, если я не в группе тех, кому можно читать настройки - тоже ошибка... что-то тут как-то плохо всё...

Re: Требуется помощь от знатоков Linux

Добавлено: Ср июн 03, 2026 11:59:27
linux_rulezz
ARV писал(а): Ср июн 03, 2026 11:28:06 как все это сделать из моей программы
Что именно сделать? Угадать, в какой порт пользователь воткнул железку? Ну, тогда придется все поочередно перебирать, слать запрос и ждать верного ответа (но если на другом порту есть еще что-то, что среагирует на этот запрос, может быть нехорошо).
Пусть пользователь сам и вызывает твою утилиту с путем, соответствующим порту, в который он воткнул.
ARV писал(а): Ср июн 03, 2026 11:28:06 запускать отдельные консольные скрытые процесы, чтобы потом парсить их текстовый выхлоп?
Это не нужно, т.к. все можно сделать средствами стандартных библиотек. Только вместо устаревшей termios советую использовать termios2, как у меня здесь. В этом случае можно задавать нестандартные скорости или даже разные скорости для чтения и записи.
А если нужно USB-устройство по VID-PID найти, но не хочется заморачиваться с правилами udev, можно udev и в своем софте использовать, например, так.
ARV писал(а): Ср июн 03, 2026 11:28:06 что такое stty я не в курсе
Команда man для этих случаев есть. Надо бы знать...
ARV писал(а): Ср июн 03, 2026 11:28:06 а если на том конце порта пресс, который примет мусор и отрубит кому-то голову?
Вот я выше и писал, что слать туда что-то нельзя. А stty или упоминаемый мною выше ioctl просто проверяет текущие настройки порта. И если его нет, то матюкнется.

А вообще, если уж пользователь сам в биосе отключил порт, а потом его пытается использовать, то ему в биореактор пора…
ARV писал(а): Ср июн 03, 2026 11:31:07 если порт кем-то открыт, я получу ошибку
Ошибка будет другой. Маны нужно курить внимательно.
ARV писал(а): Ср июн 03, 2026 11:31:07 если я не в группе тех, кому можно читать настройки - тоже ошибка...
Тут ошибка будет третьей. И да, если пользователь не в группе dialout, то ему и бесполезно пытаться что-то сделать. У него ни на чтение, ни на запись доступа не будет.

Re: Требуется помощь от знатоков Linux

Добавлено: Ср июн 03, 2026 12:09:11
ARV
ну... как бы я примерно так и сделал... хоть и не совсем так, как ты сказал.

сканирую /dev по маске 'ttyS*' и 'ttyUSB*' (и еще некоторые), что нашел - открываю /sys/class/tty/<что нашел>/device/resource - если такого файла нет, пустой или в нем нулевые адреса портов (перебор строк), значит, найденный объект реально НЕ существует... ну и впридачу смотрю на ошибку - если связана с правами, информирую о том, что пользователю не положено использовать мою программу...

муторно все это, в винде в 100500 раз проще

Re: Требуется помощь от знатоков Linux

Добавлено: Ср июн 03, 2026 12:15:53
ARV
linux_rulezz писал(а): Ср июн 03, 2026 11:59:27 Ошибка будет другой.
дело не в том, что ошибка другая, а в том, что открытый порт или закрытый - на факт его существования не влияет, мне существование проверить надо. и, насколько я помню, нифига по ошибкам нельзя определить существоание физического девайса - одна и та же ошибка и для доступа к несуществующему, и для доступа к существующему, но занятому... или несуществующий наоборот, не выдает ошибки... я штук шесть способов перебрал, пока на вышеописанном не остановился, но не факт, что он будет работать в другой версии линуха...

например, Астра требует, чтобы файл был не resource, а resources...

Re: Требуется помощь от знатоков Linux

Добавлено: Чт июн 04, 2026 21:18:17
Мурик
linux_rulezz писал(а): Ср июн 03, 2026 09:57:41Я разрабатываю под линукс более двадцати лет.
Это заметно.
100% линукс головного мозга! :facepalm: :)))
linux_rulezz писал(а): Ср июн 03, 2026 10:02:57Сначала - чтение документации, потом - ознакомление с железом/ОС. Не наоборот!
То есть нужно не меньше 20 лет потратить на изучение линукса и только потом что-то писать под него? Втопку такую ОС.

Re: Требуется помощь от знатоков Linux

Добавлено: Пт июн 05, 2026 08:45:11
ARV
Я скажу крамольную (по личной традиции) вещь: за 30 лет винда прошла путь от системы, которая жрала ресурсы, падая от каждого движения мыша, до системы, которая может годами не выключаться, обновляясь на лету даже без перезагрузок (в некоторых случаях). Линукс за этот же этот срок по сути не изменилась вообще: как в ней не было толком работающего ПО, кроме системного CLI, так и нет, с гарантией 90% можно утверждать, все всё работающее стороннее ПО придется переустанавливать/пересобирать после ЛЮБОГО обновления системы из-за несовместимости библиотек.
За 30 лет линукс так и не стала ни на миллиметр ближе к "простому" пользователю.
Ставил я на виртуалке линукс, и по ошибке выделил не 2Т диска, а 2Г. Система прекрасно установилась, ни слова мне не сказала, никаких предупреждений не выдала, но GUI не запускала. молча. просто выбрасывала мигающий курсорчик в командной строке, и всё. Ну хотя бы что-то типа "no free space" - даже этого не было. Винда в таких условиях не только даже не начала бы установку, но и задоблала бы рассказами о том, что надо сделать и как... А ведь проблема лишь в том, что каждый линукс-программист при разработке программы думает ТОЛЬКО О СЕБЕ, и вообще не думает о том, кто будет его программой пользоваться.
В сущности, линукс за 30 не потеряла ни одного своего достоинства, но умудрилась не приобрести тоже ни одного...
Имхо.

Re: Требуется помощь от знатоков Linux

Добавлено: Пт июн 05, 2026 09:41:33
linux_rulezz
Линукс работает НА пользователя. А с маздаем другая история: там пользователь работает на маздай.

Re: Требуется помощь от знатоков Linux

Добавлено: Пт июн 05, 2026 09:59:50
ARV
linux_rulezz писал(а): Пт июн 05, 2026 09:41:33 Линукс работает НА пользователя. А с маздаем другая история: там пользователь работает на маздай.
на практике этот тезис не подтверждается, и как раз на практике всё наоборот.

хотя, если под пользователем понимать системного администратора линукс/виндовс, то вполне возможно, вы правы...

Re: Требуется помощь от знатоков Linux

Добавлено: Пт июн 05, 2026 15:29:53
Zapolyarny
ARV писал(а): Пт июн 05, 2026 09:59:50 на практике этот тезис не подтверждается, и как раз на практике всё наоборот.
Каждый раз, когда кто-то спорит с фанатиком линукса, в Антарктиде помирает пингвин ;)

---------------------------------
КолибриОС - навсегда! :twisted:

Re: Требуется помощь от знатоков Linux

Добавлено: Пт июн 05, 2026 15:37:52
ARV
зато когда фанатик линукса возражает - рождается два!

Re: Требуется помощь от знатоков Linux

Добавлено: Пт июн 05, 2026 15:51:26
Zapolyarny
Точно! :)

Re: Требуется помощь от знатоков Linux

Добавлено: Пт июн 05, 2026 15:55:08
yor
Это когда фанатик винды лезет в линукс, он всех пингвинов заморит. В чужой монастырь со своим уставом. А вот хочу чтобы так! Так даже в винде не бывает.
Отлезь от линукса, а то форточки перебью! :)

Re: Требуется помощь от знатоков Linux

Добавлено: Пт июн 05, 2026 16:31:07
Phlanger
ARV писал(а): Пт июн 05, 2026 08:45:11 Линукс за этот же этот срок по сути не изменилась вообще: как в ней не было толком работающего ПО, кроме системного CLI, так и нет
За 30 лет линукс так и не стала ни на миллиметр ближе к "простому" пользователю.
Двадцать семь лет читаю этих глупостей.
Первый Мандрейк, который "из коробки" поставился и поехал, включая софтовый диалапный момед, если вы понимаете, о чём я - был у меня в 2005 году.
Последний случай вот, дата там есть

Изображение

Телега, кстати, поставилась и поехала.

А вы можете и дальше жаловаться на то, что нишмагли толком освоить элементарные вещи.

Re: Требуется помощь от знатоков Linux

Добавлено: Пт июн 05, 2026 16:40:39
Zapolyarny
Не хочу "телегу", хочу Autocad.
А под элементарными вещами, полагаю, понимается вон та кучка буковок в терминале? Не самая длинная строчка, видел и пострашнее :) Конечно, это очень юзерфрэндли, никто не спорит.

Re: Требуется помощь от знатоков Linux

Добавлено: Пт июн 05, 2026 16:41:59
ARV
Phlanger писал(а): Пт июн 05, 2026 16:31:07 А вы можете и дальше жаловаться на то, что нишмагли толком освоить элементарные вещи.
из вашего сообщения не следует никакого опровержения сказанного мною: 27 лет стабильного состояния на том же месте - разве я сказал что-то иное? что появилось новое в линуксе, чего не было в 27 лет назад? видеокарты как ставились только с бубнами и очень с ограниченной поддержкой, так и ставятся. любое НОВОЕ оборудование практически не подключается, даже с бубнами. но консоль - таки да, по всем каналам связи работает. и, если я имею право утверждать, джава-таки заработала почти так же, как в винде... что еще?

Re: Требуется помощь от знатоков Linux

Добавлено: Пт июн 05, 2026 16:46:18
ARV
но лично меня убивает даже не то, что система недружелюбна, а то, что её адепты недружелюбны - я на трех или четырёх линуксовых форумах пытался задавать вопросы, и на всех получал ответ, как под копирку "читай маны". на этом форуме тоже без этого не обошлось, но, видимо, тут "гибриды" линуксоидов с радиолюбителями, и радиолюбительская часть натуры делает человека попроще - мне отвечают более развернуто...

Re: Требуется помощь от знатоков Linux

Добавлено: Пт июн 05, 2026 16:47:57
Zapolyarny
Потому что у фанатиков (у любых, не обязательно линукс) в области фанатизма отсутствует критичное мышление и мир делится на две категории. Вторая, разумеется, плохая, враждебная или презираемая.

Re: Требуется помощь от знатоков Linux

Добавлено: Пт июн 05, 2026 22:23:28
Phlanger
ARV писал(а): Пт июн 05, 2026 16:46:18 но лично меня убивает даже не то, что система недружелюбна, а то, что её адепты недружелюбны - я на трех или четырёх линуксовых форумах пытался задавать вопросы.
Я даже догадываюсь, какие.
Зато хотя бы здесь наконец-то нашли, где рассказать о Себе, Нинаглядачьном