Debian и COM-порт

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Debian и COM-порт

Сообщение Ворон226 »

Решил вынести в отдельную тему.

Есть система Debian (Debian 4.19.146-1 (2020-09-17) x86_64 GNU/Linux)
Есть СОМ-порт и плата PLA-001 (8 реле, управляемых через СОМ-порт).

На Убунте всё прекрасно работает через компонент, написанный на Питоне (viewtopic.php?f=15&t=3108).
А вот на Debian работа этой связки (СОМ-порт и плата) периодически (через каждые 10 секунд) прерывается и релюшки начинают перещёлкиваться (несколько секунд), после чего работа платы восстанавливается.

Стандартные приёмы:

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

lsof | grep /dev/ttyS
- ничего не видит, кроме моего компонента на Питоне (когда он включен)

или

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

systemctl list-units --all --type=service --no-pager | grep tty
getty-static.service loaded inactive dead getty on tty2-tty6 if dbus and logind are not available
getty@tty1.service
или

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

systemctl list-units --all | grep ttyS
dev-ttyS0.device loaded active plugged /dev/ttyS0
dev-ttyS1.device loaded active plugged /dev/ttyS1
dev-ttyS2.device loaded active plugged /dev/ttyS2
dev-ttyS3.device loaded active plugged /dev/ttyS3
sys-devices-platform-serial8250-tty-ttyS2.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS2
sys-devices-platform-serial8250-tty-ttyS3.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS3
sys-devices-pnp0-00:02-tty-ttyS0.device loaded active plugged /sys/devices/pnp0/00:02/tty/ttyS0
sys-devices-pnp0-00:03-tty-ttyS1.device loaded active plugged /sys/devices/pnp0/00:03/tty/ttyS1
Подключил на разъём материнки осцилограф:
На TxD периодически проскакивают импульсы.
На RxD - тишина

Как отловить и отключить процесс, который периодически обращается к СОМ-порту?
Хочешь быть счастливым? Будь им!
kfmut
Мастер
Сообщения: 1249
Зарегистрирован: 30 янв 2021, 21:34
Репутация: 147
Настоящее имя: Максим
Откуда: г.Тверь
Контактная информация:

Re: Debian и COM-порт

Сообщение kfmut »

Права(левые владельца-группу) на файл устройства пробовали поменять, чтобы посмотреть кто будет весело материться в логах с потерей доступа?
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Debian и COM-порт

Сообщение Ворон226 »

kfmut писал(а): 12 дек 2021, 19:52 Права(левые владельца-группу) на файл устройства пробовали поменять, чтобы посмотреть кто будет весело материться в логах с потерей доступа?
Не пробовал. А про какой файл устройства речь?
Хочешь быть счастливым? Будь им!
kfmut
Мастер
Сообщения: 1249
Зарегистрирован: 30 янв 2021, 21:34
Репутация: 147
Настоящее имя: Максим
Откуда: г.Тверь
Контактная информация:

Re: Debian и COM-порт

Сообщение kfmut »

Ну /dev/ttyS же или какой вы используете :wik:
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Debian и COM-порт

Сообщение Ворон226 »

kfmut писал(а): 12 дек 2021, 21:23 Ну /dev/ttyS же или какой вы используете :wik:
... и что с ним сделать?
Хочешь быть счастливым? Будь им!
kfmut
Мастер
Сообщения: 1249
Зарегистрирован: 30 янв 2021, 21:34
Репутация: 147
Настоящее имя: Максим
Откуда: г.Тверь
Контактная информация:

Re: Debian и COM-порт

Сообщение kfmut »

В самом простом варианте

sudo chmod 000 /dev/ttyS<какой_нужен>

потом посмотреть логи в /var/log ( или где оно в современных дебианах лежит), виновник опроса может(!) начать туда жаловаться на отсутствие доступа
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Debian и COM-порт

Сообщение Ворон226 »

утром проверю...
Есть ещё варианты?
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Debian и COM-порт

Сообщение Ворон226 »

Кстати, завтра поиграюсь с права на разных пользователей:

sudo chmod 077 /dev/ttyS0

sudo chmod 707 /dev/ttyS0

sudo chmod 770 /dev/ttyS0

sudo chmod 000 /dev/ttyS0
Хочешь быть счастливым? Будь им!
alex_sar
Мастер
Сообщения: 1672
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 278
Настоящее имя: Алексей
Контактная информация:

Re: Debian и COM-порт

Сообщение alex_sar »

играться не надо.
поставить 000 и посмотреть исчезнут ли щелчки. если нет, другие варианты ничего не дадут.

вангую что не поможет, скорей всего это идёт от root, а для пользователя рут права не проверяются.
alex_sar
Мастер
Сообщения: 1672
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 278
Настоящее имя: Алексей
Контактная информация:

Re: Debian и COM-порт

Сообщение alex_sar »

ещё можно попробовать

grep -r getty /etc/systemd/

grep -r getty /lib/systemd/

чудес не бывает. 99% порт дёргает какой-то процесс в имени которого есть getty
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Debian и COM-порт

Сообщение Ворон226 »

alex_sar писал(а): 12 дек 2021, 21:59 играться не надо.
поставить 000 и посмотреть исчезнут ли щелчки. если нет, другие варианты ничего не дадут.

вангую что не поможет, скорей всего это идёт от root, а для пользователя рут права не проверяются.
Ты прав - sudo chmod 000 /dev/ttyS0 ничего не изменило...
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Debian и COM-порт

Сообщение Ворон226 »

alex_sar писал(а): 12 дек 2021, 22:05 ещё можно попробовать

grep -r getty /etc/systemd/

grep -r getty /lib/systemd/

чудес не бывает. 99% порт дёргает какой-то процесс в имени которого есть getty
Первая команда ничего не дала... А вот по второй вылезло много!
grep -r getty /lib/systemd/
/lib/systemd/system-preset/90-systemd.preset:enable getty@.service
/lib/systemd/system-preset/90-systemd.preset:disable console-getty.service
/lib/systemd/system/getty-pre.target:Documentation=man:systemd.special(7) man:systemd-getty-generator(8)
/lib/systemd/system/setserial.service:Before=system-getty.slice
/lib/systemd/system/plymouth-kexec.service:After=getty@tty1.service display-manager.service plymouth-start.service
/lib/systemd/system/getty-static.service:Description=getty on tty2-tty6 if dbus and logind are not available
/lib/systemd/system/getty-static.service:ExecStart=/bin/systemctl --no-block start getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service
/lib/systemd/system/plymouth-halt.service:After=getty@tty1.service display-manager.service plymouth-start.service
/lib/systemd/system/etc-setserial.service:Before=system-getty.slice
/lib/systemd/system/container-getty@.service:Documentation=man:agetty(8) man:systemd-getty-generator(8)
/lib/systemd/system/container-getty@.service:After=rc-local.service getty-pre.target
/lib/systemd/system/container-getty@.service:Before=getty.target
/lib/systemd/system/container-getty@.service:# The '-o' option value tells agetty to replace 'login' arguments with an
/lib/systemd/system/container-getty@.service:ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear --keep-baud pts/%I 115200,38400,9600 $TERM
/lib/systemd/system/console-getty.service:Documentation=man:agetty(8) man:systemd-getty-generator(8)
/lib/systemd/system/console-getty.service:After=rc-local.service getty-pre.target
/lib/systemd/system/console-getty.service:Before=getty.target
/lib/systemd/system/console-getty.service:# The '-o' option value tells agetty to replace 'login' arguments with an
/lib/systemd/system/console-getty.service:ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear --keep-baud console 115200,38400,9600 $TERM
/lib/systemd/system/console-getty.service:WantedBy=getty.target
/lib/systemd/system/plymouth-reboot.service:After=getty@tty1.service display-manager.service plymouth-start.service
/lib/systemd/system/getty.target:Documentation=man:systemd.special(7) man:systemd-getty-generator(8)
/lib/systemd/system/getty@.service:Documentation=man:agetty(8) man:systemd-getty-generator(8)
/lib/systemd/system/getty@.service:After=systemd-user-sessions.service plymouth-quit-wait.service getty-pre.target
/lib/systemd/system/getty@.service:# If additional gettys are spawned during boot then we should make
/lib/systemd/system/getty@.service:# sure that this is synchronized before getty.target, even though
/lib/systemd/system/getty@.service:# getty.target didn't actually pull it in.
/lib/systemd/system/getty@.service:Before=getty.target
/lib/systemd/system/getty@.service:# On systems without virtual consoles, don't start any getty. Note
/lib/systemd/system/getty@.service:# that serial gettys are covered by serial-getty@.service, not this
/lib/systemd/system/getty@.service:# The '-o' option value tells agetty to replace 'login' arguments with an
/lib/systemd/system/getty@.service:ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear %I $TERM
/lib/systemd/system/getty@.service:# Unset locale for the console getty since the console has problems
/lib/systemd/system/getty@.service:WantedBy=getty.target
/lib/systemd/system/serial-getty@.service:Documentation=man:agetty(8) man:systemd-getty-generator(8)
/lib/systemd/system/serial-getty@.service:After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service getty-pre.target
/lib/systemd/system/serial-getty@.service:# If additional gettys are spawned during boot then we should make
/lib/systemd/system/serial-getty@.service:# sure that this is synchronized before getty.target, even though
/lib/systemd/system/serial-getty@.service:# getty.target didn't actually pull it in.
/lib/systemd/system/serial-getty@.service:Before=getty.target
/lib/systemd/system/serial-getty@.service:# The '-o' option value tells agetty to replace 'login' arguments with an
/lib/systemd/system/serial-getty@.service:ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 %I $TERM
/lib/systemd/system/serial-getty@.service:WantedBy=getty.target
/lib/systemd/system/plymouth-poweroff.service:After=getty@tty1.service display-manager.service plymouth-start.service
/lib/systemd/system/debug-shell.service:# Unset locale for the console getty since the console has problems
Двоичный файл /lib/systemd/system-generators/systemd-getty-generator совпадает
Хочешь быть счастливым? Будь им!
alex_sar
Мастер
Сообщения: 1672
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 278
Настоящее имя: Алексей
Контактная информация:

Re: Debian и COM-порт

Сообщение alex_sar »

А что вот такая команда покажет?

sudo systemctl stop serial-getty@ttyS0.service

ttyS0 ведь у тебя?

если поможет, то
systemctl mask serial-getty@ttyS0.service
# вырубить навсегда
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Debian и COM-порт

Сообщение Ворон226 »

alex_sar писал(а): 13 дек 2021, 10:44 А что вот такая команда покажет?

sudo systemctl stop serial-getty@ttyS0.service

ttyS0 ведь у тебя?

если поможет, то
systemctl mask serial-getty@ttyS0.service
# вырубить навсегда
После sudo systemctl stop serial-getty@ttyS0.service ничего не изменилось...
Хочешь быть счастливым? Будь им!
Kost_irk
Мастер
Сообщения: 995
Зарегистрирован: 19 июл 2018, 07:46
Репутация: 193
Откуда: Иркутск
Контактная информация:

Re: Debian и COM-порт

Сообщение Kost_irk »

Как дойдет до прослушки порта, меня позовите.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Debian и COM-порт

Сообщение Ворон226 »

Kost_irk писал(а): 13 дек 2021, 15:26 Как дойдет до прослушки порта, меня позовите.
Вопрос:
Ну вот возьму я осцилограф. Подключу его на выход СОМ-порта. И увижу пачки импульсов. (я, кстати, уже их сморел - есть они на выходе с материнки).
Или перемкну выход и вход СОМ-порта и через CutCom или minicom прочитаю ЧТО посылается...

КАК это поможет узнать источник обращений?
Я серьёзно не понимаю ЧТО слушать?
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Debian и COM-порт

Сообщение Ворон226 »

Перемкнул вход и выход и увидел пачками летящие <break>

И об чём это???

Иногда проскакивает:
<break>

<0x02>9<0x02><break>
<break>

или

<0x05>1B<0x16>**<break>
Хочешь быть счастливым? Будь им!
Kost_irk
Мастер
Сообщения: 995
Зарегистрирован: 19 июл 2018, 07:46
Репутация: 193
Откуда: Иркутск
Контактная информация:

Re: Debian и COM-порт

Сообщение Kost_irk »

Ворон226 писал(а): <0x05>1B<0x16>**<break>
Скорость подбирайте
Ворон226 писал(а): КАК это поможет узнать источник обращений?
Да потому что пока непонятно вообще, кто это у вас делает, может хоть по надписям получится понять. Вы же убедились, что все простые предложенные решения не работают.
Kost_irk
Мастер
Сообщения: 995
Зарегистрирован: 19 июл 2018, 07:46
Репутация: 193
Откуда: Иркутск
Контактная информация:

Re: Debian и COM-порт

Сообщение Kost_irk »

Ворон226 писал(а): И увижу пачки импульсов
Если у вас нормальный цифровой осциллограф и покажете читаемый скрин - я вам так скажу, какая там скорость и что там пишут.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Debian и COM-порт

Сообщение Ворон226 »

Kost_irk писал(а): 13 дек 2021, 17:56 Скорость подбирайте
На других скоростях вообще ничего не получается увидеть.
Да и команда

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

stty -a -F /dev/ttyS0
speed 19200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; discard = ^O; min = 0; time = 0;
parenb parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt
-echoctl -echoke -flusho -extproc
показывает, что скорость нужна 19200 и 8 битЮ и проверка по нечётности и т.п.

Попробую запустить осцилограф...
Хочешь быть счастливым? Будь им!
Ответить

Вернуться в «LinuxCNC»