Добрый день. Есть оборудование (сканер ШК) на 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
Подскажите, как добиться подключения данного устройства?
COM ch341 Linux Mint
Спасибо, видимо, я не умею пользоваться поиском в интернете.
Собрал драйвера для своей версии, заменил модуль, подключил его, но всёравно ошибка
[ 474.339100] ch34x: module verification failed: signature and/or required key missing - tainting kernel
[ 474.339471] usbcore: registered new interface driver ch34x
[ 474.339489] usbserial: USB Serial support registered for ch341-uart
[ 474.339509] ch34x 2-1.1:1.0: ch341-uart converter detected
[ 475.353809] ch341-uart ttyUSB0: failed to read break control: -110
[ 475.353836] ch341-uart: probe of ttyUSB0 failed with error -110
[ 483.320068] usb 2-1.1: usbfs: interface 0 claimed by ch34x while 'brltty' sets config #1
[ 483.323818] ch34x 2-1.1:1.0: device disconnected
Добавлено: 05.10.2022 10:48:22
Я так понимаю проблемы с подписью, сейчас попробую CONFIG_MODULE_SIG_ALL отключить и заново скомпилировать.
Добавлено: 05.10.2022 11:23:29
Не помогло...
[ 474.339100] ch34x: module verification failed: signature and/or required key missing - tainting kernel - строка пропала, а вот остальные ошибки остались
[ 474.339471] usbcore: registered new interface driver ch34x
[ 474.339489] usbserial: USB Serial support registered for ch341-uart
[ 474.339509] ch34x 2-1.1:1.0: ch341-uart converter detected
[ 475.353809] ch341-uart ttyUSB0: failed to read break control: -110
Помогите :(
Уверены, что устройство распознается ядром? lsusb показывает все подключенное к шине, даже если устройство не поддерживается. Проверьте выход dmesg после подключения. *SCRATCH*
Сообщение: module verification failed: signature and/or required key missing - tainting kernel, означает, что проверка модуля не проходит в ядре.
Часто в этом модуле присутствует датчик sds011 и требуемый модуль ядра называется ch341 и имеет в файле .config запись: CONFIG_USB_SERIAL_CH341=m
При установке драйвера и поддержке устройства должно появиться:
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
-> USB Serial Converter support
Уверены, что устройство распознается ядром? lsusb показывает все подключенное к шине, даже если устройство не поддерживается. Проверьте выход dmesg после подключения, если устройство опознано, пойдём дальше *SCRATCH*
Сообщение: module verification failed: signature and/or required key missing - tainting kernel, означает, что проверка модуля не проходит в ядре.
oem@oem-laptop:~$ dmesg | grep ch34
[ 14.251048] ch34x: module verification failed: signature and/or required key missing - tainting kernel
[ 14.251326] usbcore: registered new interface driver ch34x
[ 14.251343] usbserial: USB Serial support registered for ch341-uart
[ 14.251362] ch34x 1-1.4:1.0: ch341-uart converter detected
[ 15.277336] ch341-uart ttyUSB0: failed to read break control: -110
[ 15.277348] ch341-uart: probe of ttyUSB0 failed with error -110
Ну так lsusb его распознает, как: Bus 001 Device 003: ID 1a86:7523 QinHeng Electronics CH340 serial converter
"module verification failed: signature and/or required key missing - tainting kernel" появилось после того, как я скомпилировал драйвер
Цитировать всё сообщение не нужну, выбирайте только ту часть для цитаты, на которую даёте ответ, тем более, что по ходу ответа оно может измениться :) Потом сами же и запутаетесь.
Получается, что устройство у вас с датчиком и первоначально было опознано правильно, как ch341. О чём говорят строки:
[ 14.251343] usbserial: USB Serial support registered for ch341-uart
[ 14.251362] ch34x 1-1.4:1.0: ch341-uart converter detected
После вашей перекомпиляции вы что-то "сломали" и опознаётся оно теперь как ch34, на что ядро и сообщает вам, что не может опознать устройство, так как пытается его подключить как ch340, что не соответствует действительности.
Удалите полностью (с настройками), что наваяли. Проверьте систему на "битые" пакеты и, если всё нормально, выполните команду:
sudo modprobe ch341
Команда загрузит указанный модуль и все дополнительные зависимости.
Датчик sds011? Из коробки в минте и был ch341.ko, с этим модулем была та же ошибка ch341-uart ttyUSB0: failed to read break control: -110
И lsusb так же показывал ch340, а dmesg сh341
Драйвер с китайского сайта качал, как выше мне посоветовали и компилировал всё по инструкции, без внесения изменений, конечный модуль получился ch34x.ko
Вы хотите сказать, что ядро воспринимает ch341 от датчика, а не ch340 от конвертора?
Никаких битых пакетов, всё делаю на чистую mint, только update и upgrade прошли и ядро обновилось.
Так я после компиляции руками меняю модуль ch341 штатный на новый ch3x и lsmod смотрел, модуль подгрузился, не имеет же значения, как конкретно называется модуль? Так-то можно переименовать ch34x в ch341
Чтобы вам реально помочь, надо минимум иметь у себя это устройство, чего у меня нет. :) Задайте в строке поиска: "7523 QinHeng Electronics CH340 serial converter" и найдёте много информации на англоязычных форумах, включая решение проблем подключения и настройки. При незнании английского перевод можно осуществить через https://www.translate.ru/
Да уже всё изгуглил..
Самое интересное, что на mageia сканер работает без проблем и определяется там, как HL340.
В общем задали вопрос производителю, но у Китайцев праздник, пока ждем.Спасибо.
Датчик sds011? Из коробки в минте и был ch341.ko, с этим модулем была та же ошибка ch341-uart ttyUSB0: failed to read break control: -110
Сомневаюсь, имеет ли это отношение к данной ситуации... Но когда ковырял lirc и лепил обычный ИК-приемник на физический/материнский COM-порт, то перед загрузкой модулей ядра было необходимо выполнить:
setserial /dev/ttyS0 uart none
modprobe lirc_serial
Иначе он датчик не видел...
Configuration guide
Disabling kernel serial port reservation
Usually the default kernel serial port driver grabs all ports it auto-detects as soon as it is loaded and the LIRC modules won't be able to use any of them.
This needs to be resolved using the setserial(1) tool. An example how to load a lirc_serial module on /dev/ttyS0:
setserial /dev/ttyS0 uart none
modprobe lirc_serial
This could be added to lirc_options.conf as a modprobe section e. g.,:
[modprobe]
code = setserial /dev/ttyS0 uart none; modprobe lirc_serial
This section is parsed by the lircd-setup tool which runs as root when lircd is started.
lirc-setup can generate this section in many cases.
Debian users should adjust their /etc/serial.conf. Note that lirc_serial probably needs some modprobe setup, see below.
Как уже было сказано выше - устройства такого нет, зато есть ещё один экземпляр ИК-приемника на продажу. :)
Да уже всё изгуглил.
Фильтрами пользоваться пробовали? Может другой поисковик попробовать, у каждого ведь разная выдача.
Фильтрами пользоваться пробовали? Может другой поисковик попробовать, у каждого ведь разная выдача.
Нашел linux.org.ru/forum/linux-hardware/11965571
## Add source repository corresponding to your OS's /etc/apt/sources.list
## Update the sources list: apt-get update
## Create empty dir and fetch the sources:
sudo apt-get source linux-source-$(uname -r) linux-headers-$(uname -r)
после этой команды мне пишет "E: Вы должны заполнить sources.list, поместив туда URI источников пакетов с исходным кодом"
Так а какой репозиторий я должен указать в сорс лист?
Вот что у меня
oem@oem-laptop:~$ sudo grep -rhE ^deb /etc/apt/sources.list*
deb packages.linuxmint.com vanessa main upstream import backport #id:linuxmint_main
deb archive.ubuntu.com/ubuntu jammy main restricted universe multiverse
deb archive.ubuntu.com/ubuntu jammy-updates main restricted universe multiverse
deb archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse
deb security.ubuntu.com/ubuntu jammy-security main restricted universe multiverse
Кто понимает, объясните, далее он качает патч и потом надо пропатчить модуль ch341.ko штатный или ch34x.c и потом из него скомпилировать ch34x.ko и заменить им ch341.ko?
Так а какой репозиторий я должен указать в сорс лист?
Самую полную информацию о подключаемых в LM репозиториях можно узнать на https://linuxmint.com.ru/ у товарища с позывным slant :), ибо он тесно связан с разработкой дистрибутива.
На версии ядра 4.4.0 работает без проблем, брать модуль с 4.4 и подсовывать на 5.15 смысла нет я так понимаю?)
На версии ядра 4.4.0 работает без проблем
Значит, установлено, что модуль и драйвер рабочий.
брать модуль с 4.4 и подсовывать на 5.15 смысла нет я так понимаю?)
Маленький каламбурчик :) - зависит от зависимостей. Кто его знает какие версии пакетов, необходимые для работы модуля, были изменены. С другой стороны, если поддержка модуля не завязана напрямую с ядром, версии пакетов могут не измениться.
Уже попробовал, в dmesg пишет disagrees about version of symbol module_layout
На старом ядре lsusb его определял, как HL340, а на более свежем CH340
Проблема в том, что патч не встает на версию драйвера под моё ядро...
В общем голова уже кругом, придется другие девайсы покупать.
Проблема в том, что патч не встает на версию драйвера под моё ядро...
Видимо, проблема в том, что в ядре 5 что-то изменилось (версия пакета, ссылка), а может и полностью убрали. LM вообще славится "передовыми" идеями :| Например, любят удалят из ядра поддержку устройств, которыми как им кажется уже никто не пользуется. Так в своё время, по-моему, в 17 версии перестал устанавливатьcя используемый мной принтер LBP-800, после 19-ой исчезла поддержка моей аудиокарты. После этих новшеств перешёл на LMDE. Принтер заработал, звуковая тоже. Тот же LM, только релизы не такие частые, версии пакетов не скачут, обновления предсказуемые, да и работает стабильнее, потому что построен на пакетной базе Debian :) .
С софт принтерами всегда были траблы...LBP-800