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

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
Автор
Редакция

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

Как сбросить Samsung планшет до заводских настроек
Руководство

Как сбросить Samsung планшет до заводских настроек

Удаление дубликатов Burst на iPhone
iPhone фото

Удаление дубликатов Burst на iPhone

iHome SmartMonitor: руководство и настройка
Умный дом

iHome SmartMonitor: руководство и настройка

Pin Window на Samsung: настройка и безопасность
Мобильные устройства

Pin Window на Samsung: настройка и безопасность

Как исправить VCRUNTIME140.dll is missing в Windows 10
Windows

Как исправить VCRUNTIME140.dll is missing в Windows 10

Исправить ошибки CTF Loader в Windows 10
Windows

Исправить ошибки CTF Loader в Windows 10