Chinesische Arduino Nano Clon mit CH340(G) Treiber Problem

Programmierung und Hardwaredesign mit Arduino, AVR, PIC und Konsorten.

Moderatoren: MaxZ, ebastler, SeriousD

Antworten
Benutzeravatar

Thread-Ersteller
LEDSchlucker
Beiträge: 85
Registriert: Fr 8. Apr 2016, 16:52
Spezialgebiet: Fotografie
Wohnort: Schweiz
Hat sich bedankt: 16 Mal
Danksagung erhalten: 10 Mal

Chinesische Arduino Nano Clon mit CH340(G) Treiber Problem

Beitrag von LEDSchlucker »

Hallo zusammen

vor einiger Zeit habe ich beim Aliexpress Arduino Nano Clon's bestellt, die nun angekommen sind. Ich habe sie natürlich sogleich getestet. Allerdings ist immer beim Programmieren die Fehlermeldung gekommen, dass der Arduino nicht Antwortet.
Spoiler:
Binäre Sketchgröße: 1'054 Bytes (von einem Maximum von 14'336 Bytes)
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
Also habe ich recherchiert was das sein kann. Da habe ich herausgefunden, dass die Chinesen einen anderen (billigeren) USB Chip verwenden, den CH340G und man deshalb einen extra Treiber benötigt. Ich als Linux nutzer habe natürlich zuerst nur für Windows und Mac Treiber gefunden, nach längerem Suchen bin ich dann jedoch auf die Webseite des Herstellers (des CH340 Chips) gekommen und habe auch eine Version für Linux gefunden.

Aber als ich den Treiber (wie im readme.txt beschrieben) installieren wollte kam eine fehlermeldung!

readme.txt:
Spoiler:
// ChangeLog
// 1.0 - 1.1 modified to solve transmition between ch341 and ch341
// 1.1 - 1.2 Support high Linux kernel
Instructions

Note: 1.Please run followed executable programs as root privilege
2.Current Driver support versions of linux kernel range from 2.6.25 to 3.13.x
3.Current Driver support 32bits and 64bits linux systems

Usage:
(load or unload linux driver of CH34x)
//compile
#make
//load ch34x chips driver
#make load
//unload ch34x chips driver
#make unload
// 1.2 - 1.3 Fix some bugs
Fehlermeldung Im Terminal:
Spoiler:
username CH341SER_LINUX # make
make -C /lib/modules/4.13.0-36-generic/build M=/home/username/CH341SER_LINUX
make[1]: Entering directory '/usr/src/linux-headers-4.13.0-36-generic'
CC [M] /home/username/CH341SER_LINUX/ch34x.o

/home/username/CH341SER_LINUX/ch34x.c: In function ‘ch34x_close’:
/home/username/CH341SER_LINUX/ch34x.c:591:2: error: unknown type name ‘wait_queue_t
wait_queue_t wait;
^

/home/username/CH341SER_LINUX/ch34x.c:591:15: warning: unused variable ‘wait’ [-Wunused-variable]
wait_queue_t wait;
^

/home/username/CH341SER_LINUX/ch34x.c:590:7: warning: unused variable ‘timeout’ [-Wunused-variable]
long timeout;
^

/home/username/CH341SER_LINUX/ch34x.c:589:6: warning: unused variable ‘bps’ [-Wunused-variable]
int bps;
^

/home/username/CH341SER_LINUX/ch34x.c: In function ‘wait_modem_info’:
/home/username/CH341SER_LINUX/ch34x.c:797:7: error: implicit declaration of function ‘signal_pending’ [-Werror=implicit-function-declaration]
if( signal_pending(current) )
^
cc1: some warnings being treated as errors
scripts/Makefile.build:315: recipe for target '/home/username/CH341SER_LINUX/ch34x.o' failed
make[2]: *** [/home/username/CH341SER_LINUX/ch34x.o] Error 1
Makefile:1550: recipe for target '_module_/home/username/CH341SER_LINUX' failed
make[1]: *** [_module_/home/username/CH341SER_LINUX] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.13.0-36-generic'
Makefile:5: recipe for target 'default' failed
make: *** [default] Error 2

username CH341SER_LINUX # make load
modprobe usbserial
insmod ch34x.ko
insmod: ERROR: could not load module ch34x.ko: No such file or directory
Makefile:9: recipe for target 'load' failed
make: *** [load] Error 1
Jetzt zur Frage: ist das ein Problem von cmake oder ist der Linux Treiber schlecht Programmiert?
Oder kann ich das irgendwie umgehen?

Wichtig ist einfach ich möchte mit dem Linux den Arduino Programmieren können, werde es aber mal mit Windows versuchen ob das geht.

Infos zum Betriebsystem:
OS: Linux Mint 18.2 Cinnamon 64-bit
Cinnamon-Version: 3.4.6
Linux-Kernel: 4.13.0-36-generic

Ich hoffe ihr könnt mir helfen!
mfG
LEDSchlucker


Gekochte LED's sind gesund allerdings etwas spitzig!
Benutzeravatar

Paul
Admin
Beiträge: 3595
Registriert: So 7. Aug 2005, 14:34
Schule/Uni/Arbeit: HW/SW-Entwickler
Wohnort: Braunschweig
Hat sich bedankt: 632 Mal
Danksagung erhalten: 210 Mal
Kontaktdaten:

Re: Chinesische Arduino Nano Clon mit CH340(G) Treiber Probl

Beitrag von Paul »

Moin,

dein Kernel ist nicht unterstützt. ;)

Bei dir steht was von Version 4, in der ReadMe geht's aber nur bis Version 3.

Gruß
Paul!
“With great power come great heat sinks.”
paulwilhelm.de -- mosfetkiller.de
Benutzeravatar

Thread-Ersteller
LEDSchlucker
Beiträge: 85
Registriert: Fr 8. Apr 2016, 16:52
Spezialgebiet: Fotografie
Wohnort: Schweiz
Hat sich bedankt: 16 Mal
Danksagung erhalten: 10 Mal

Re: Chinesische Arduino Nano Clon mit CH340(G) Treiber Probl

Beitrag von LEDSchlucker »

Danke Paul,

da werde ich wohl auf einem anderen Computer eine alte Linuxversion installiere müssen :)
mfG
LEDSchlucker


Gekochte LED's sind gesund allerdings etwas spitzig!
Benutzeravatar

MaxZ
Beiträge: 1163
Registriert: So 28. Jun 2015, 10:20
Schule/Uni/Arbeit: Mechatronik, Karlsruher Institut für Technologie
Wohnort: Luxemburg / Karlsruhe
Hat sich bedankt: 258 Mal
Danksagung erhalten: 157 Mal
Kontaktdaten:

Re: Chinesische Arduino Nano Clon mit CH340(G) Treiber Probl

Beitrag von MaxZ »

Die Teile sind so verbreitet, da wundert's mich, dass niemand den Treiber bisher angepasst hat... :gruebel:


Liebe Grüße,
Max
Benutzeravatar

Thread-Ersteller
LEDSchlucker
Beiträge: 85
Registriert: Fr 8. Apr 2016, 16:52
Spezialgebiet: Fotografie
Wohnort: Schweiz
Hat sich bedankt: 16 Mal
Danksagung erhalten: 10 Mal

Re: Chinesische Arduino Nano Clon mit CH340(G) Treiber Probl

Beitrag von LEDSchlucker »

@MaxZ:

Das stimmt, ich meine Linux Kernel 3.xxx ist schon etwas veraltet.

Ich habe aber jetzt mit VirtualBox Windows 7 Installiert, den Chinesischen Treiber installiert, VirtualBox USB Brücke eingerichtet, -- und jetzt Funktionierts!
mfG
LEDSchlucker


Gekochte LED's sind gesund allerdings etwas spitzig!

RealUlli
Beiträge: 1
Registriert: Sa 29. Dez 2018, 14:18

Re: Chinesische Arduino Nano Clon mit CH340(G) Treiber Probl

Beitrag von RealUlli »

Ich habe da einige Blog-Posts auf chinesischen Websites gefunden.

Google Translate macht aus einem davon folgendes:
Two errors are displayed directly after make:
1. ch34x.c:591:2: error: unknown type name ‘wait_queue_t’
2. error: implicit declaration of function ‘signal_pending’ [-Werror=implicit-function-declaration]

Line 591 is wait_queue_t wait not used for this variable. It can be commented directly, and then a header file is missing to introduce the #include <linux/sched/signal.h>implementation.

Then make finds no errors, make load loads the driver.
Quelle: https://blog.csdn.net/MobiuX/article/details/80115254

Ich habe das getestet, der Compile laeuft damit durch. Bloederweise laesst sich das resultierende Modul immer noch nicht laden: "insmod: ERROR: could not insert module ch34x.ko: Unknown symbol in module"

Ich muss mal schauen, was da schief geht, evtl. ist mein Setup subtil broeselig...
Antworten