Рейтинг:1

Невозможно прочитать из последовательного порта в командной строке

флаг de

Я попытался прочитать из /dev/ttyS0 на 1 терминале как root с кошкой:

кошка < /dev/ttyS0

и отправка сообщения на последовательный порт с другого терминала от имени пользователя root с эхом:

echo -ne "привет" > /dev/ttyS0

Но я ничего не получил от кота. Может ли кто-нибудь просветить меня на причину проблемы?

guiverc avatar
флаг cn
Только поддерживаемые выпуски Ubuntu (*стандартная или публичная поддержка*) актуальны для этого сайта. Ubuntu 14.04 LTS является EOL (*конец жизни*), поэтому не по теме, а Ubuntu 14.04 ESM находится в *расширенной* поддержке и поддерживается только Canonical через Ubuntu Advantage, поэтому здесь также не по теме. См. https://askubuntu.com/help/on-topic https://help.ubuntu.com/community/EOLUpgrades https://fridge.ubuntu.com/2019/05/02/ubuntu-14-04-trusty-tahr-reached-end-of-life-on-april-25-2019-esm-available/
ablan avatar
флаг de
Подождите, этот сайт от Canonical? Я думал, это добровольцы?
FedKad avatar
флаг cn
Это силами волонтеров. Однако нет смысла тратить время на неподдерживаемый выпуск... В любом случае, что находится по другую сторону последовательного порта, который вы пытаетесь прочитать и записать? Модем, другой компьютер?
guiverc avatar
флаг cn
Это официальный сайт, связанный с Ubuntu, да, поэтому я могу использовать сайт без входа в систему через Stack Exchange (т. е. с помощью моего единого входа Ubuntu-ONE), но здесь тоже есть добровольцы.
ablan avatar
флаг de
С другой стороны ничего нет. Я просто ``ls /dev/```, увидел, что ttyS0 указан в списке, затем попробовал, но не сработало.
Рейтинг:1
флаг cn

Устройство /dev/ttyS0 обычно соответствует первому последовательному порту вашего компьютера. В настоящее время компьютеры не имеют последовательных портов, но некоторые USB-устройства могут появиться в любой момент. /dev/ttySИкс порт вашей системы. Если устройство было подключено к вашему компьютеру во время загрузки, вы можете найти имя устройства, вероятно, выполнив:

журналctl -b | grep ttyS

Если устройство еще не подключено, сначала выполните команду:

журналctl -f | grep ttyS

а затем подключить устройство; вы должны увидеть сообщение с указанием номера порта Икс.


Если вы пытаетесь отправить данные на виртуальные консоли настольной системы, сначала нажмите комбинацию клавиш Ctrl+Альт+F4 и войдите в виртуальную консоль, отображаемую в текстовом режиме. Затем запустите команду

кто я

чтобы убедиться, что устройство, на котором вы вошли, действительно /dev/tty4 (второе слово вывода вышеуказанной команды должно быть tty4 в таком случае).

На главном графическом экране (в который можно попасть, нажав комбинацию клавиш Ctrl+Альт+F2) откройте терминал и выполните команду:

эхо "Привет" >/dev/tty4

Вернитесь к консоли с помощью Ctrl+Альт+F4 и увидеть, что сообщение отображается.

Аналогичным образом выполните следующую команду на главном графическом экране:

кошка </dev/tty4

Вернитесь к консоли и попробуйте ввести несколько символов. Некоторые символы будут отображаться на экране эхом (по бить), некоторые не будут. Неотображаемые символы будут отображаться на главном графическом экране в качестве вывода кот команда. Причина этого в том, что одно и то же устройство считывается двумя процессами (один на текстовой консоли, который бить а другой на графическом экране, который является кот команда).


Примечание:

Чтобы пользователь без полномочий root мог читать и писать в последовательный порт, этот пользователь должен иметь разрешение на чтение и запись для этого устройства.В Ubuntu это легко сделать, добавив текущего пользователя в набор номера группа с помощью

sudo addgroup _your_user_ dialout

Возможно, вам придется выйти из системы, а затем войти снова, чтобы это изменение вступило в силу.

ablan avatar
флаг de
Это также работает, если к /dev/ttyS0 не подключено реальное оборудование?
FedKad avatar
флаг cn
@ablan Нет. К этому порту должно быть какое-то устройство, «подключенное» ... И, если в моем ответе есть какая-то дополнительная информация, пожалуйста, сообщите мне об этом.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.