Страница 1 из 1

USB-COM переходник, 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

Добавлено: 02 окт 2016, 12:19
sulpakneo
Всем доброго времени суток. Вообщем, попался мне USB-COM переходник

На картинке - два одинаковых переходника. Разница угадывается только в небольшой "зеленоватости" левого переходника и более сильной "голубоватости" правого переходника. С левым переходником проблем нет, а вот с правым... Причем партия одна и та же, в системе определяются абсолютно одинаково..
Все дело в том, что у меня на работе касса работает на Linux Mint 17.3 Rosa. Сама программа кассы пашет на Net.Framework 4.0 через Wine 1.6. В Linux воткнут кассовый аппарат через такой USB-COM переходник. В Linux все вставало всегда без проблем, я просто добавлял юзера в группу dialout и tty. Затем пробрасывал в wine порт ttyUSB0 под именем com1. И все прекрасно работало. Пока не пришло это. Покупку делал я, в кол-ве 100 шт. И не пашет... Как объяснить шефу, что я купил 100 шт переходников, который не могу завести - даже не представляю себе))....
Вообщем, имею следующее:
1. Linux видит устройство: команда lsusb - "1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter"
2. Драйвер встал норм - команда dmesg | grep tty - "usb 2-1.2: ch341-uart converter now attached to ttyUSB0"

Пробрасываю его в wine - ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1
Все как обычно... но не работает...
Тестирую сей девайс на Win8 - переходник там прекрасно работает, драйвера в комплекте на Win завелись и встали норм, касса пашет норм на винде. Значит - проблема с драйверами на Linux.
Пошукав в просторах интернета, нашел такую инфу, что это, скорее всего, потому что этот переходник работает на специальном доработанном драйвере, который поддерживает асинхронные usb-com адаптеры. Нашел мануал:

Код: Выделить всё

sudo apt-get source linux-source-3.19.0 linux-headers-$(uname -r)
cd /tmp
tar -xjf /usr/src/linux-source-3.19.0.tar.bz2
cd /usr/src/linux-headers-3.19.0-32/
make oldconfig
make prepare
make scripts
cp -v /usr/src/linux-headers-$(uname -r)/Module.symvers .
cp /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko.orig
cd drivers/usb/serial
cp ch341.c ch341.c.orig
wget https://github.com/karlp/ch341-linux/raw/master/0001-usb-serial-ch341-Add-parity-support.patch
cat 0001-usb-serial-ch341-Add-parity-support.patch | patch -p4
patching file ch341.c
Hunk #1 succeeded at 349 (offset 3 lines).
Hunk #2 succeeded at 370 (offset 3 lines).
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
sudo cp ch341.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko
sudo rmmod ch341
sudo modprobe ch341
Однако на первой же команде споткнулся, т.к. в указанной в команде папке нету такого архива...
плюнул дальше пошел вставлять строки в терминал... споткнулся на команде cp ch341.c ch341.c.orig - нет такого файла ch341.c
вообщем нужна помощь... пока не казнили мну)
Помогите переделать скрипт для Linux mint 17.3 Rosa...
uname -a выдает следующее

Код: Выделить всё

"Linux kassa22109-8 3.19.0-32-generic #37~14.04.1-Ubuntu SMP Thu Oct 22 09:37:25 UTC 2015 i686 i686 i686 GNU/Linux"

Re: USB-COM переходник, 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

Добавлено: 02 окт 2016, 13:52
zuzabrik
sulpakneo писал(а): Однако на первой же команде споткнулся, т.к. в указанной в команде папке нету такого архива...
это скорее описание того что надо сделать, а не точный набор команд и путей имхо )

Re: USB-COM переходник, 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

Добавлено: 02 окт 2016, 14:40
di_mok
sulpakneo писал(а): linux-source-3.19.0
Сразу наводит на подозрение. Почему 3.19.0?

Ни когда ни чем подобным не занимался, но по логике сначало нужно посмотреть

Код: Выделить всё

apt-cache search linux-source

Re: USB-COM переходник, 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

Добавлено: 02 окт 2016, 16:52
Chocobo
sulpakneo писал(а): sudo apt-get source linux-source-3.19.0 linux-headers-$(uname -r)
Вообще да, притянуть source от определенной версии и хидеры для текущего ядра - первый глупый поступок, по остальному - надо бы попробовать.
sulpakneo писал(а): Тестирую сей девайс на Win8 - переходник там прекрасно работает, драйвера в комплекте на Win завелись и встали норм, касса пашет норм на винде. Значит - проблема с драйверами на Linux.
проверить бы сначала как он работает на линукс - попробуй опросить какуюнибудь железку через него без wine

У меня ситауция с usb2com девайсом была обратной в свое время, чтоб завести его под виндой надо было как-то вкрутить некий чудо-драйвер, который отказывался работать на системах выше xp, а в 11-м минте досточно было воткнуть его в usb и все работало искаропки :smile:

Re: USB-COM переходник, 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

Добавлено: 02 окт 2016, 17:43
di_mok
У меня валяется ch-340. Заводится без проблем. В wine не пробрасывал.

Re: USB-COM переходник, 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

Добавлено: 09 ноя 2016, 00:47
edward2005
sulpakneo писал(а): Всем доброго времени суток. Вообщем, попался мне USB-COM переходник

На картинке - два одинаковых переходника. Разница угадывается только в небольшой "зеленоватости" левого переходника и более сильной "голубоватости" правого переходника. С левым переходником проблем нет, а вот с правым... Причем партия одна и та же, в системе определяются абсолютно одинаково..
Все дело в том, что у меня на работе касса работает на Linux Mint 17.3 Rosa. Сама программа кассы пашет на Net.Framework 4.0 через Wine 1.6. В Linux воткнут кассовый аппарат через такой USB-COM переходник. В Linux все вставало всегда без проблем, я просто добавлял юзера в группу dialout и tty. Затем пробрасывал в wine порт ttyUSB0 под именем com1. И все прекрасно работало. Пока не пришло это. Покупку делал я, в кол-ве 100 шт. И не пашет... Как объяснить шефу, что я купил 100 шт переходников, который не могу завести - даже не представляю себе))....
Вообщем, имею следующее:
1. Linux видит устройство: команда lsusb - "1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter"
2. Драйвер встал норм - команда dmesg | grep tty - "usb 2-1.2: ch341-uart converter now attached to ttyUSB0"

Пробрасываю его в wine - ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1
Все как обычно... но не работает...
Тестирую сей девайс на Win8 - переходник там прекрасно работает, драйвера в комплекте на Win завелись и встали норм, касса пашет норм на винде. Значит - проблема с драйверами на Linux.
Пошукав в просторах интернета, нашел такую инфу, что это, скорее всего, потому что этот переходник работает на специальном доработанном драйвере, который поддерживает асинхронные usb-com адаптеры. Нашел мануал:

Код: Выделить всё

sudo apt-get source linux-source-3.19.0 linux-headers-$(uname -r)
cd /tmp
tar -xjf /usr/src/linux-source-3.19.0.tar.bz2
cd /usr/src/linux-headers-3.19.0-32/
make oldconfig
make prepare
make scripts
cp -v /usr/src/linux-headers-$(uname -r)/Module.symvers .
cp /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko.orig
cd drivers/usb/serial
cp ch341.c ch341.c.orig
wget https://github.com/karlp/ch341-linux/raw/master/0001-usb-serial-ch341-Add-parity-support.patch
cat 0001-usb-serial-ch341-Add-parity-support.patch | patch -p4
patching file ch341.c
Hunk #1 succeeded at 349 (offset 3 lines).
Hunk #2 succeeded at 370 (offset 3 lines).
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
sudo cp ch341.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko
sudo rmmod ch341
sudo modprobe ch341
Однако на первой же команде споткнулся, т.к. в указанной в команде папке нету такого архива...
плюнул дальше пошел вставлять строки в терминал... споткнулся на команде cp ch341.c ch341.c.orig - нет такого файла ch341.c
вообщем нужна помощь... пока не казнили мну)
Помогите переделать скрипт для Linux mint 17.3 Rosa...
uname -a выдает следующее

Код: Выделить всё

"Linux kassa22109-8 3.19.0-32-generic #37~14.04.1-Ubuntu SMP Thu Oct 22 09:37:25 UTC 2015 i686 i686 i686 GNU/Linux"
команда cp ch341.c ch341.c.orig подразумевает что вы делаете копию файла ch341.с с другим названием ch341.c.orig что бы если при компиляции с ним что нибудь произойдет
также логика подразумевает что вы находитесь в папке
/usr/src/linux-source-3.19.0/drivers/usb/serial


аналогично только в папке /lib/modules/$(uname -r)/kernel/drivers/usb/serial/

cp /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko.origr

так подстраховочка что бы была возможность откатить