Настройка окружения
Выясняем какие USB-to-COM преобразователи доступны в системе:
ls -l /dev/ttyU*
Настройка прав доступа из под обычного пользователя:
sudo chmod a+rwx /dev/ttyUSBx
либо пользуемся механизмом udev, для чего нам понадобится положить по пути /etc/udev/rules.d
файл такого содержания (с расширением *.rules):
SUBSYSTEMS=="usb", ATTRS{idProduct}=="ea60", ATTRS{idVendor}=="10c4", SYMLINK+="cp2102_%n", MODE="0666", GROUP="plugdev"
SUBSYSTEMS=="usb", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", SYMLINK+="ft232r_$attr{serial}", MODE="0666"
в примере прописаны VID&PID микросхем-преобразователей FT232R и СР2102. После сохранения файла необходимо добавить пользователя в группу plugdev
(если он еще не добавлен):
sudo usermod -a -G plugdev [username]
И перезачитать содержимое правил в директории /etc/udev/rules.d
:
sudo udevadm control --reload-rules
Узнать VID:PID произвольного донгла USB-to-UART можно, используя команду lsusb:
lsusb | cut -d' ' -f6-10
первые два значения VID и PID в формате vvvv:pppp
.
Настройка TTY-порта
Надо установить утилиту stty из пакета coreutils:
sudo yum install -y coreutils.x86_64
Настройка порта:
stty raw -echo 9600 < /dev/ttyUSB1
или то же самое с другим синтаксисом:
stty raw -echo 9600 -F /dev/ttyUSB1
В каком-то случае может понадобиться индивидуальная настройка stty. См. man stty
.
Работа в CLI: UART TX
Отправка в порт ASCII-строки:
echo -n AT+ > /dev/ttyUSB1
Отправка бинарного файла в UART:
dd if=fw_image_9600.sbl of=/dev/ttyUSB1 bs=1
Работа в CLI: UART RX
Приём из порта ASCII-последовательностей:
cat < /dev/ttyUSB1
picocom
Удобная интерактивная консоль, в общем случае может хватить запуска со следующими “магическими” параметрами:
sleep 1 && picocom --omap delbs --imap crcrlf,lfcrlf -b 9600 /dev/ttyUSB1