Перейти к содержанию

ch341 не появляется ttyUSB


Рекомендуемые сообщения

Добрый день. Есть оборудование (сканер ШК)  на ch340 китайский, не назначается ttyUSB.

lsusb: Bus 002 Device 004: ID 1a86:7523 QinHeng Electronics CH340 serial converter

dmesg: [ 1355.038051] ch341-uart ttyUSB0: failed to read break control: -110
            [ 1355.038064] ch341-uart: probe of ttyUSB0 failed with error -110

пробовал прописать пид и вид, не помогло
modprobe usbserial vendor=0x1a86 product=0x7523

Подсказали инфу по драйверам https://www.programmersought.com/article/64338953162/ скомпилировал под свое ядро, но все равно ошибка

ch341-uart ttyUSB0: failed to read break control: -110

 

Ссылка на комментарий

У меня телетайп USB0 не создается, chmod для /dev/ttyUSB0 выдаст ошибку, что нет такого файла

Проблема в том и есть, что ttyUSB0 НЕ СОЗДАЕТСЯ с ошибкой ch341-uart: probe of ttyUSB0 failed with error -110

Ссылка на комментарий
sudo rmmod ch341

Добавьте исходный репозиторий, соответствующий /etc/apt/sources.list

Обновите список источников:

apt-get update

Создать пустой каталог и получить исходники:

sudo apt-get source linux-source-$(uname -r) linux-headers-$(uname -r)

Загрузите и примените патч

cd linux-[34]*
wget https://github.com/karlp/ch341-linux/raw/master/0001-usb-serial-ch341-Add-parity-support.patch
patch -p1 <0001-usb-serial-ch341-Add-parity-support.patch

Скомпилировать модуль и заменить системный

make -C /lib/modules/`uname -r`/build M=$(pwd) drivers/usb/serial/ch341.ko
sudo cp drivers/usb/serial/ch341.ko /lib/modules/`uname -r`/kernel/drivers/usb/serial/ch341.ko

Теперь вы можете подключить устройство

Ссылка на комментарий

Да я видел эту инструкцию, как я понял, он пишет, что, независимо от версии вашего ядра, качать соурс надо от 4.2.0, оттуда берем исходник ch34x.c его патчим и компилим, но вот проблема, я его пропатчил, но при компиляции ошибка: /home/user/tmp/ch34x.c:570:30: error: initialization of ‘void (*)(struct usb_serial_port *)’ from incompatible pointer type ‘int (*)(struct usb_serial_port *)’ [-Werror=incompatible-pointer-types]
  570 |         .port_remove       = ch341_port_remove,

Что-то в коде ему не нравится, а если я качаю с https://elixir.bootlin.com/linux/v4.2/source/drivers/usb/serial/ch341.c драйвер для версии своего ядра (5.15.0), то файл не патчится..

Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...