Гид по технологиям

Serial-консоль и USB→Serial в Linux: подключение и инструменты

6 min read Embedded Linux Обновлено 29 Nov 2025
Serial-консоль и USB→Serial в Linux
Serial-консоль и USB→Serial в Linux

serial-console-applications-and-usb-converter-ports

Картинка: USB→Serial преобразователь рядом с последовательными портами на плате.

Что такое serial-консоль и зачем она нужна

Serial-консоль — это последовательный интерфейс для обмена текстовыми сообщениями между двумя устройствами. Обычно он используется для отладки загрузчика, ядра или ранней инициализации операционной системы на встроенных платформах. Коротко:

  • Последовательный порт передаёт байты по проводам с фиксированной скоростью (baud rate).
  • На Linux устройство сериал-порта представлено как файл в /dev, например /dev/ttyUSB0 или /dev/ttyS0.
  • USB→Serial преобразователь обеспечивает связь между современным USB-портом и устаревающим последовательным интерфейсом.

Определение: baud rate — число бит в секунду, через которое производится обмен (типичные значения: 115200, 57600, 9600).

Быстрая проверка конвертера и обнаружение устройства

  1. Подключите USB→Serial адаптер к компьютеру.
  2. Выполните команду dmesg и посмотрите последние строки, относящиеся к USB или tty:
dmesg | tail -n 50

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

[ 1234.567890] usb 1-1: new full-speed USB device number 7 using xhci_hcd
[ 1234.678901] usb 1-1: New USB device found, idVendor=0403, idProduct=6001
[ 1234.678905] usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0

dmesg-serial-usb-converter-info-command

Картинка: пример вывода dmesg с информацией о подключении USB→Serial устройства.

Важно: название производителя в выводе зависит от конкретного чипа (FTDI, Prolific, Silicon Labs и т. д.).

Имена устройств и поведение при переподключении

  • Для USB→Serial обычно используются имена /dev/ttyUSB0, /dev/ttyUSB1 и т.д.
  • Для классических последовательных портов — /dev/ttyS0, /dev/ttyS1 и т.д.
  • При отключении и повторном подключении номер может поменяться. Чтобы получить стабильный путь, используйте udev-правило или симлинк.

Пример udev-правила для стабильного симлинка (/etc/udev/rules.d/99-usb-serial.rules):

SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="ttyUSB_mydevice", MODE="0660", GROUP="dialout"

Замените idVendor и idProduct на значения вашего адаптера (узнать через lsusb).

Права доступа к устройствам и группа dialout

Типичные права на устройство выглядят так:

crw-rw---- 1 root dialout 188, 46 Jul 17 15:34 /dev/ttyUSB0

Разбор:

  • c — символьное устройство.
  • Владелец root имеет права чтения и записи.
  • Группа dialout имеет права чтения и записи.
  • Остальные — без прав.

Если ваш пользователь не в группе dialout, добавьте его в группу:

# Для Fedora и похожих
sudo usermod -aG dialout USERNAME

# Для Debian/Ubuntu
sudo adduser USERNAME dialout

# Для Arch с uucp
sudo usermod -a -G uucp USERNAME

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

Примечание: альтернативный вариант — настроить udev-правило, которое выставит MODE=”0666” для конкретного устройства. Это менее безопасно, чем группа.

Что делать, если устройство не появляется

Пошаговая диагностика:

  1. Подключите адаптер и выполните dmesg. Если адаптер не виден — проверьте кабель и порт.
  2. Запустите lsusb, чтобы увидеть, распознаётся ли USB-устройство.
lsusb
  1. Проверьте, загружены ли нужные модули ядра (ftdi_sio, cp210x, usbserial):
lsmod | grep -E "ftdi_sio|cp210x|usbserial"
sudo modprobe ftdi_sio
  1. Если устройство распознаётся, но нет прав — посмотрите ls -l /dev/ttyUSB* и добавьте пользователя в dialout.
  2. Для нестабильных нумераций — добавьте udev-правило.

Популярные приложения для доступа к serial-консоли

Ниже — инструменты и краткие инструкции по использованию.

Minicom

Установка:

# Fedora, CentOS, RHEL
sudo yum install minicom

# Debian, Ubuntu
sudo apt-get install minicom

# Arch (через AUR/Snap как в примере)
sudo snap install minicom

Запуск настроек при первом запуске:

minicom -s

В меню настройки: клавиша A — имя устройства, клавиша E — скорость (baud rate). По умолчанию minicom может пытаться открыть /dev/modem, поэтому укажите корректный /dev/ttyUSB0.

Горячие клавиши в minicom:

  • Ctrl+A O — открыть экран конфигурации
  • Ctrl+A X — выйти из minicom
  • Ctrl+A W — включить перенос строк
  • Ctrl+A Z — справка по сочетаниям

GTKTerm

GTKTerm — графическая программа для новичков.

# Fedora, CentOS, RHEL
sudo dnf -y install gtkterm

# Debian, Ubuntu
sudo apt-get install gtkterm

# Arch
yay -S gtkterm

Конфигурация: Configuration > Port — укажите устройство и скорость. Сохраните как default.

gtkterm-gui-connection-rate-speed

Картинка: окно настройки порта в GTKTerm.

screen

screen — простой и часто уже установленный инструмент.

# Fedora/RedHat
sudo dnf -y install screen

# Debian/Ubuntu
sudo apt-get -y install screen

# Snap
sudo snap install screen --classic

Подключение:

screen /dev/ttyUSB0 115200

Чтобы выйти из screen: нажмите Ctrl+A затем K (убить сессию) или Ctrl+A D (отсоединиться).

Другие варианты

  • picocom — лёгкий терминал для серийного порта: picocom -b 115200 /dev/ttyUSB0
  • cu — старый, но рабочий: cu -l /dev/ttyUSB0 -s 115200
  • putty — доступен и для Windows, и для Linux (GUI)

Шаблон быстрого подключения — мини-SOP

  1. Подключите USB→Serial адаптер и целевое устройство.
  2. Выполните dmesg | tail и определите /dev/ttyUSBX.
  3. Убедитесь в правах доступа: ls -l /dev/ttyUSBX.
  4. При необходимости добавьте пользователя в dialout и повторно залогиньтесь.
  5. Настройте скорость, биты остановки и паритет (обычно 8N1 и 115200).
  6. Подключитесь через screen или minicom.
  7. Если нужно, создайте udev-правило для стабильного симлинка.

Пример команды для запуска с common-параметрами:

screen /dev/ttyUSB0 115200

Критерии приёмки

  • Устройство отображается в dmesg и /dev/ttyUSBX.
  • Пользователь может открыть файл устройства без sudo.
  • После подключения через терминал видно вывод загрузчика или ОС.
  • При повторном подключении симлинк или udev-правило сохраняет предсказуемый путь.

Роль‑ориентированные чеклисты

Для разработчика встраиваемых систем:

  • Проверьте физическое соединение и питание платы.
  • Убедитесь, что скорость и формат (8N1) совпадают с настройками устройства.
  • Настройте udev-правило для удобства команды сборки.

Для тестировщика:

  • Снимите вывод загрузчика и ядра при помощи screen/minicom.
  • Проверяйте последовательность вывода при повторных перезагрузках.

Для администратора CI/CD:

  • Настройте права доступа на тестовой машине (учётная запись в dialout).
  • Автоматизируйте сбор логов с serial-консоли через скрипт.

Типичные проблемы и как их решить

  • Нет вывода в терминале: проверьте скорость, линии RTS/CTS не должны мешать. Попробуйте переключить на 3.3V/5V, если применимо.
  • Появляются кракозябры: неверный baud rate. Попробуйте 115200, 57600, 9600.
  • Устройство появляется с разными номерами: добавьте udev-правило с поименованным симлинком.
  • Программа не может открыть /dev/ttyUSB0: проверьте права, добавьте пользователя в dialout.

Важно: при работе с TTL-уровнями соблюдайте полярность и напряжение. Неправильное подключение может повредить плату.

Короткая справка по командам

  • dmesg | tail — посмотреть последние сообщения ядра
  • lsusb — список USB-устройств
  • ls -l /dev/ttyUSB* — права и владельцы устройств
  • modprobe ftdi_sio или modprobe cp210x — загрузить драйверы
  • minicom -s — конфигурирование minicom
  • screen /dev/ttyUSB0 115200 — подключение через screen

Сравнение инструментов (кратко)

  • minicom — мощный, подходит для скриптов и сложных настроек.
  • screen — универсальный, часто уже установлен.
  • picocom — лёгкий и минималистичный.
  • GTKTerm — графический, удобен новичкам.

1‑строчный глоссарий

  • serial-консоль: текстовый интерфейс по последовательному порту для отладки.
  • tty: терминальная начинка в Linux, представляющая устройство как файл.
  • udev: подсистема Linux, создающая файлы устройств и применяющая правила.
  • baud: скорость передачи в бит/с.

Безопасность и конфиденциальность

Доступ к serial-консоли часто даёт привилегированный доступ к системе. Ограничьте права на устройство и выдавайте доступ только доверенным пользователям. Для автоматизированных тестовых стендов используйте выделенные учётные записи и храните udev-правила в контроле версий.

Заключение

Доступ к устройству через serial-консоль — базовый навык для работы с встраиваемыми Linux-системами. Понимание, как Linux обнаруживает USB→Serial адаптеры, как управлять правами доступа и какие инструменты использовать, позволит вам быстро налаживать отладку загрузчика и ядра. Создайте udev-правила для стабильных путей и используйте лёгкие терминалы (screen/picocom) для быстрой диагностики.

Краткое резюме:

  • Подключите адаптер, найдите /dev/ttyUSBX через dmesg.
  • Проверьте права и при необходимости добавьте пользователя в dialout.
  • Подключайтесь через minicom, screen, picocom или GTKTerm.

minicom-s-command-output-serial-ports

Картинка: пример экрана настройки minicom с выбором последовательного порта.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство