Код: Выделить всё
lsusb
Bus 002 Device 009: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Код: Выделить всё
ls /dev/ttyUSB*
/dev/ttyUSB1
Код: Выделить всё
chmod 777 /dev/ttyUSB0
Код: Выделить всё
chmod 777 /dev/ttyUSB2
Сводка Команд Minicom
Предварительно настроив скорость подключения
Код: Выделить всё
minicom -D /dev/ttyUSB0
Код: Выделить всё
minicom -D /dev/ttyUSB1
CTRL-A Z for help | 9600 8N1 | NOR | Minicom 2.7 | VT102 | Не на линии | ttyUSB0
CTRL-A Z for help | 9600 8N1 | NOR | Minicom 2.7 | VT102 | Не на линии | ttyUSB1
Нужно установить драйвер ch34* который более распространен для Ардуино
Версия Debian
Код: Выделить всё
cat /etc/debian_version
Информация о дистрибутиве:
Код: Выделить всё
lsb_release -a
Distributor ID: Debian
Description: Debian GNU/Linux 9.9 (stretch)
Release: 9.9
Codename: stretch
Информация о ядре:
Код: Выделить всё
uname -a
Версия ядра
Код: Выделить всё
uname -r
Устанавливаем не обходимые пакеты
Код: Выделить всё
apt-get install linux-kbuild-4.9 linux-compiler-gcc-6-x86
Код: Выделить всё
apt-get install linux-headers-$(uname -r)
2 пакета качаем вручную так как в репозитории другая версия ядра linux-headers-4.9.0-13-amd64 а у нас 4.9.0-9
Код: Выделить всё
dpkg -i linux-headers-4.9.0-9-common_4.9.168-1+deb9u2_all.deb
Код: Выделить всё
dpkg -i linux-headers-4.9.0-9-amd64_4.9.168-1+deb9u2_amd64.deb
Извлекаем из архива и переходим в папку далее
1.Очистите предыдущую установку
Код: Выделить всё
make clean
2. Cобрать
Код: Выделить всё
make
Код: Выделить всё
make load
выполнит команду можно сразу ее выполнить insmod ch341.ko - загрузить модуль для динамической загрузки
4. Обновления таблицы зависимостей модулей ядра
Код: Выделить всё
depmod -a
Код: Выделить всё
dmesg | grep ch34.
[11569568.782441] usbcore: registered new interface driver ch341
[11569568.782454] usbserial: USB Serial support registered for ch341-uart
[11569568.782470] ch341 2-1.5:1.0: ch341-uart converter detected
[11569568.784748] usb 2-1.5: ch341-uart converter now attached to ttyUSB0
[11569627.727162] ch341 2-1.6:1.0: ch341-uart converter detected
[11569627.728669] usb 2-1.6: ch341-uart converter now attached to ttyUSB1
[12713456.491493] ch34x: disagrees about version of symbol module_layout
[12713517.844258] ch34x: disagrees about version of symbol module_layout
[12772392.094761] ch341: disagrees about version of symbol module_layout
[12777761.020663] ch341: loading out-of-tree module taints kernel.
[12777806.421420] usbserial: USB Serial deregistering driver ch341-uart
[12777806.421512] ch341-uart ttyUSB1: ch341-uart converter now disconnected from ttyUSB1
[12777806.421548] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[12777806.421556] usbcore: deregistering interface driver ch341
[12777806.421577] ch341 2-1.6:1.0: device disconnected
[12777806.421984] ch341 2-1.5:1.0: device disconnected
[12777808.815543] usb_ch341 2-1.5:1.0: ttyCH341USB0: ch341 USB device
[12777808.815629] usb_ch341 2-1.6:1.0: ttyCH341USB1: ch341 USB device
[12777808.815678] usbcore: registered new interface driver usb_ch341
[12777808.815679] ch341: USB serial driver for ch340, ch341, etc.
[12777808.815679] ch341: V1.8 On 2024.01
[12781989.347131] usbcore: deregistering interface driver usb_ch341
[12781989.347245] usb_ch341 2-1.6:1.0: ch341 usb device disconnect.
[12781989.347296] usb_ch341 2-1.5:1.0: ch341 usb device disconnect.
[12781989.347307] ch341: ch341 driver exit.
[12782007.862469] usb_ch341 2-1.5:1.0: ttyCH341USB0: ch341 USB device
[12782007.862534] usb_ch341 2-1.6:1.0: ttyCH341USB1: ch341 USB device
[12782007.862580] usbcore: registered new interface driver usb_ch341
[12782007.862581] ch341: USB serial driver for ch340, ch341, etc.
[12782007.862581] ch341: V1.8 On 2024.01
Код: Выделить всё
ls /dev/ttyCH341USB*
Код: Выделить всё
minicom -s
Меняем последовательный порт (Serial Device) на порт, к которому подключено оборудование и настраиваем параметры управления потоком(Flow Control). В данном примере это /dev/ttyS0 — адрес порта COM1. При подключении через разъем mini-usb порт может быть таким /dev/ttyACM0.
A - Serial Device : /dev/ttyS0
B - Lockfile Location : /var/lock
C - Callin Program :
D - Callout Program :
E - Bps/Par/Bits : 9600 8N1
F - Hardware Flow Control : Yes
G - Software Flow Control : No
Устройство /dev/ttyUSB0 обычно используется при подключении через переходник usb->com. Скорость 19200 иногда 115200 используется на свитчах 3COM
Сохраняем конфигурацию, как настройки по-умолчанию в главном меню minicom (Save setup as dfl), либо как конфигурацию с конкретным названием ( Save setup as..).
Для выхода из minicom необходимо нажать Ctrl+A затем Q.
Далее запускаем minicom с настройками по-умолчанию.
minicom
Либо с сохранными настройками.
minicom <имя_конфигурации>
Или подключиться
Код: Выделить всё
minicom -D /dev/ttyCH341USB0
Код: Выделить всё
minicom -D /dev/ttyCH341USB1
minicom -D /dev/ttyUSB0 -b 9600
Чтобы выйти из minicom, выполните следующие шаги:
Нажмите Ctrl+A.
Затем нажмите X.
Более подробно
Показать
# Установка
make clean - Очистите предыдущую установку
будет выполнена команда очистки rm -rf *.mk .tmp_versions Module.symvers *.mod.c *.o *.ko .*.cmd Module.markers modules.order *.a *.mod
make - собрать
make load выполнит команду можно сразу ее выполнить insmod ch341.ko - загрузить модуль для динамической загрузки драйвера
# Выгрузить модуль если это необходимо
make unload выполнит команду можно сразу ее выполнить rmmod ch341
# Обновления таблицы зависимостей модулей ядра
depmod -a
make install чтобы заставить драйвер работать постоянно
Выполняться следующие команды:
# Проверка что плагин загружен
rmmod ch341 || true
insmod ch341.ko || true
# Создание пути
mkdir -p /lib/modules/$(shell uname -r)/kernel/drivers/usb/serial/ || true
# Копирование файла
cp -f ./ch341.ko /lib/modules/$(shell uname -r)/kernel/drivers/usb/serial/ || true
# Обновления таблицы зависимостей модулей ядра
depmod -a
make uninstall чтобы удалить драйвер
Выполняться следующие команды
# Проверка выгрузки
rmmod ch341 || true
# Удаление
rm -rf /lib/modules/$(shell uname -r)/kernel/drivers/usb/serial/ch341.ko || true
# Обновления таблицы зависимостей модулей ядра
depmod -a
else
obj-m := ch341.o
чтобы быть уверенным, что модуль загрузится после перезагрузки, вы можете изменить расширение файла с "*.ko" на "*.ko.gz" и добавить его в путь к драйверам:
нет такого пути /usr/lib/modules/$(uname -r)/kernel/drivers/usb/serial
есть только такой /usr/lib/modules-load.d и такой /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko
В архиве
find . -name *.ko | xargs gzip
Копируем из текущей папки в
cp ch34x.ko.gz /usr/lib/modules/$(uname -r)/kernel/drivers/usb/serial
Перемещаем
mv /usr/lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko.gz /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko.gz~
# Просмотр подключеного устройства
lsmod | grep ch341
ch341 24576 0
usbcore 253952 6 usbhid,ehci_hcd,usbserial,ch341,ehci_pci
видно, что модуль ch341 был успешно загружен, так как он отображается в списке загруженных модулей.
# Проверим результаты
dmesg | grep ch34.
это пример вывода команды:
[12713456.491493] ch34x: disagrees about version of symbol module_layout
[12713517.844258] ch34x: disagrees about version of symbol module_layout
dmesg | grep ch341
[11569568.782441] usbcore: registered new interface driver ch341
[11569568.782454] usbserial: USB Serial support registered for ch341-uart
[11569568.782470] ch341 2-1.5:1.0: ch341-uart converter detected
[11569568.784748] usb 2-1.5: ch341-uart converter now attached to ttyUSB0
[11569627.727162] ch341 2-1.6:1.0: ch341-uart converter detected
[11569627.728669] usb 2-1.6: ch341-uart converter now attached to ttyUSB1
[12772392.094761] ch341: disagrees about version of symbol module_layout
[12777761.020663] ch341: loading out-of-tree module taints kernel.
[12777806.421420] usbserial: USB Serial deregistering driver ch341-uart
[12777806.421512] ch341-uart ttyUSB1: ch341-uart converter now disconnected from ttyUSB1
[12777806.421548] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[12777806.421556] usbcore: deregistering interface driver ch341
[12777806.421577] ch341 2-1.6:1.0: device disconnected
[12777806.421984] ch341 2-1.5:1.0: device disconnected
[12777808.815543] usb_ch341 2-1.5:1.0: ttyCH341USB0: ch341 USB device
[12777808.815629] usb_ch341 2-1.6:1.0: ttyCH341USB1: ch341 USB device
[12777808.815678] usbcore: registered new interface driver usb_ch341
[12777808.815679] ch341: USB serial driver for ch340, ch341, etc.
[12777808.815679] ch341: V1.8 On 2024.01
[12781989.347131] usbcore: deregistering interface driver usb_ch341
[12781989.347245] usb_ch341 2-1.6:1.0: ch341 usb device disconnect.
[12781989.347296] usb_ch341 2-1.5:1.0: ch341 usb device disconnect.
[12781989.347307] ch341: ch341 driver exit.
[12782007.862469] usb_ch341 2-1.5:1.0: ttyCH341USB0: ch341 USB device
[12782007.862534] usb_ch341 2-1.6:1.0: ttyCH341USB1: ch341 USB device
[12782007.862580] usbcore: registered new interface driver usb_ch341
[12782007.862581] ch341: USB serial driver for ch340, ch341, etc.
[12782007.862581] ch341: V1.8 On 2024.01
Проверка
ls /dev/ttyUSB*
или
ls /dev/ttyCH341USB*
Ответ
ttyCH341USB0
ttyCH341USB1
в файле Makefile путь
KERNELDIR := /lib/modules/$(shell uname -r)/build
аналогична в нашем случае версии ядра 4.9.0-13-amd64
KERNELDIR := /lib/modules/4.9.0-13-amd64/build
Данный путь должен существовать!
make clean - Очистите предыдущую установку
будет выполнена команда очистки rm -rf *.mk .tmp_versions Module.symvers *.mod.c *.o *.ko .*.cmd Module.markers modules.order *.a *.mod
make - собрать
make load выполнит команду можно сразу ее выполнить insmod ch341.ko - загрузить модуль для динамической загрузки драйвера
# Выгрузить модуль если это необходимо
make unload выполнит команду можно сразу ее выполнить rmmod ch341
# Обновления таблицы зависимостей модулей ядра
depmod -a
make install чтобы заставить драйвер работать постоянно
Выполняться следующие команды:
# Проверка что плагин загружен
rmmod ch341 || true
insmod ch341.ko || true
# Создание пути
mkdir -p /lib/modules/$(shell uname -r)/kernel/drivers/usb/serial/ || true
# Копирование файла
cp -f ./ch341.ko /lib/modules/$(shell uname -r)/kernel/drivers/usb/serial/ || true
# Обновления таблицы зависимостей модулей ядра
depmod -a
make uninstall чтобы удалить драйвер
Выполняться следующие команды
# Проверка выгрузки
rmmod ch341 || true
# Удаление
rm -rf /lib/modules/$(shell uname -r)/kernel/drivers/usb/serial/ch341.ko || true
# Обновления таблицы зависимостей модулей ядра
depmod -a
else
obj-m := ch341.o
чтобы быть уверенным, что модуль загрузится после перезагрузки, вы можете изменить расширение файла с "*.ko" на "*.ko.gz" и добавить его в путь к драйверам:
нет такого пути /usr/lib/modules/$(uname -r)/kernel/drivers/usb/serial
есть только такой /usr/lib/modules-load.d и такой /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko
В архиве
find . -name *.ko | xargs gzip
Копируем из текущей папки в
cp ch34x.ko.gz /usr/lib/modules/$(uname -r)/kernel/drivers/usb/serial
Перемещаем
mv /usr/lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko.gz /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko.gz~
# Просмотр подключеного устройства
lsmod | grep ch341
ch341 24576 0
usbcore 253952 6 usbhid,ehci_hcd,usbserial,ch341,ehci_pci
видно, что модуль ch341 был успешно загружен, так как он отображается в списке загруженных модулей.
# Проверим результаты
dmesg | grep ch34.
это пример вывода команды:
[12713456.491493] ch34x: disagrees about version of symbol module_layout
[12713517.844258] ch34x: disagrees about version of symbol module_layout
dmesg | grep ch341
[11569568.782441] usbcore: registered new interface driver ch341
[11569568.782454] usbserial: USB Serial support registered for ch341-uart
[11569568.782470] ch341 2-1.5:1.0: ch341-uart converter detected
[11569568.784748] usb 2-1.5: ch341-uart converter now attached to ttyUSB0
[11569627.727162] ch341 2-1.6:1.0: ch341-uart converter detected
[11569627.728669] usb 2-1.6: ch341-uart converter now attached to ttyUSB1
[12772392.094761] ch341: disagrees about version of symbol module_layout
[12777761.020663] ch341: loading out-of-tree module taints kernel.
[12777806.421420] usbserial: USB Serial deregistering driver ch341-uart
[12777806.421512] ch341-uart ttyUSB1: ch341-uart converter now disconnected from ttyUSB1
[12777806.421548] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[12777806.421556] usbcore: deregistering interface driver ch341
[12777806.421577] ch341 2-1.6:1.0: device disconnected
[12777806.421984] ch341 2-1.5:1.0: device disconnected
[12777808.815543] usb_ch341 2-1.5:1.0: ttyCH341USB0: ch341 USB device
[12777808.815629] usb_ch341 2-1.6:1.0: ttyCH341USB1: ch341 USB device
[12777808.815678] usbcore: registered new interface driver usb_ch341
[12777808.815679] ch341: USB serial driver for ch340, ch341, etc.
[12777808.815679] ch341: V1.8 On 2024.01
[12781989.347131] usbcore: deregistering interface driver usb_ch341
[12781989.347245] usb_ch341 2-1.6:1.0: ch341 usb device disconnect.
[12781989.347296] usb_ch341 2-1.5:1.0: ch341 usb device disconnect.
[12781989.347307] ch341: ch341 driver exit.
[12782007.862469] usb_ch341 2-1.5:1.0: ttyCH341USB0: ch341 USB device
[12782007.862534] usb_ch341 2-1.6:1.0: ttyCH341USB1: ch341 USB device
[12782007.862580] usbcore: registered new interface driver usb_ch341
[12782007.862581] ch341: USB serial driver for ch340, ch341, etc.
[12782007.862581] ch341: V1.8 On 2024.01
Проверка
ls /dev/ttyUSB*
или
ls /dev/ttyCH341USB*
Ответ
ttyCH341USB0
ttyCH341USB1
в файле Makefile путь
KERNELDIR := /lib/modules/$(shell uname -r)/build
аналогична в нашем случае версии ядра 4.9.0-13-amd64
KERNELDIR := /lib/modules/4.9.0-13-amd64/build
Данный путь должен существовать!
Запустите GNU Screen, указав порт, скорость передачи и другие параметры:
screen /dev/ttyUSB0 9600
Запустите picocom, указав порт и скорость передачи данных. Например, для подключения к порту /dev/ttyUSB0 со скоростью 9600 бит/с:
picocom /dev/ttyUSB0 -b 9600
Управление потоком: нет
Код: Выделить всё
minicom -D /dev/ttyCH341USB0
CISCO1 con0 is now available
Press RETURN to get started.
User Access Verification
Username:
или
Код: Выделить всё
picocom /dev/ttyCH341USB0 -b 9600
picocom v3.1
port is : /dev/ttyCH341USB0
flowcontrol : none
baudrate is : 9600
parity is : none
databits are : 8
stopbits are : 1
escape is : C-a
local echo is : no
noinit is : no
noreset is : no
hangup is : no
nolock is : no
send_cmd is : sz -vv
receive_cmd is : rz -vv -E
imap is :
omap is :
emap is : crcrlf,delbs,
logfile is : none
initstring : none
exit_after is : not set
exit is : no
Type [C-a] [C-h] to see available commands
Terminal ready
User Access Verification
Username:
% Username: timeout expired!
CISCO1 con0 is now available
Press RETURN to get started.
picocom /dev/ttyUSB0 -b 9600 стандартный порт
выйти
Нажмите сочетание клавиш Ctrl+A.
Затем нажмите Ctrl+X.
Miniterm - это простая консольная утилита, предоставляемая библиотекой pySerial для работы с последовательными портами.
Cutecom - графическая программа для работы с последовательными портами в Linux