Установите виртуальные последовательные порты (эмулятор нуль-модема Linux) использующий tty0tty

Я хочу установить эмулятор виртуального последовательного порта в Linux. Я хочу, чтобы порты были постоянными, так, чтобы я мог использовать их каждый раз, когда я перезапускаю. Я пытался использовать socat с этой целью как таким образом,

socat -d -d pty,raw,echo=0 pty,raw,echo=0

Но я часто получаю порт занятые проблемы во время использования этих VSPs (Виртуальные последовательные порты) в моих тестовых программах. Кроме того, мне трудно создать постоянный/персистентный VSPs. Я теперь хочу испытать tty0tty в своих целях. Но, редко существует любая документация и как использовать руководство для этого. Кто-либо может просветить меня на этом? Прокомментируйте, если существует какое-либо решение для socat также.

9
задан 22 February 2015 в 23:09

1 ответ

Установка

  1. Загрузите tty0tty пакет с одного из этих источников:

  2. Извлеките его

    • tar xf tty0tty-1.2.tgz
  3. Создайте модуль ядра из обеспеченного источника
    • cd tty0tty-1.2/module
    • make
  4. Скопируйте новый модуль ядра в каталог модулей ядра
    • sudo cp tty0tty.ko /lib/modules/$(uname -r)/kernel/drivers/misc/
  5. Загрузите модуль
    • sudo depmod
    • sudo modprobe tty0tty
    • Необходимо видеть новые последовательные порты в/dev/(ls /dev/tnt*)
  6. Дайте соответствующие полномочия новым последовательным портам
    • sudo chmod 666 /dev/tnt*

Можно теперь получить доступ к последовательным портам как /dev/tnt0 (1,2,3,4 и т.д.) Примечание, что последовательные порты взаимосвязаны. Например,/dev/tnt0 и/dev/tnt1 соединены как будто использование прямого кабеля.

Сохранение через начальную загрузку

отредактируйте файл/etc/modules (Debian) или/etc/modules.conf

nano /etc/modules

и добавьте следующую строку:

tty0tty

Предупреждение

Обратите внимание, что этот метод не заставит модуль сохраниться по обновлениям ядра поэтому, если Вы когда-либо будете обновлять свое ядро, удостоверьтесь, что Вы создаете tty0tty, снова повторяют процесс.

Если Вы не перемещаете модуль в каждое обновление ядра systemctl --failed возвратит тот сервис systemd-modules-load.service законченный"failed". Также на journalctl -xe | grep "Failed to find".

13
ответ дан 23 November 2019 в 04:57

Другие вопросы по тегам:

Похожие вопросы: