Driver CH340G

¿Problemas con tu hardware? Aquí encontrarás respuestas.
Reglas del Foro
Lea las normas y conductas de la comunidad en "Zona Normatividad".
Busca antes de preguntar en Google y en el buscador de este foro.
Si se soluciona tu problema presione el botón en V de color verde, Imagen, para añadir un [Solucionado].

Driver CH340G

Notapor eduardogi » Dom, 21 Ene 2018, 10:24  •  [Mensaje 1]

Buenos días,
He adquirido una CNC para hacer hacer PCBs. Me he comprado el modelo que incluye la controladora basada en arduino woodpeeker v0.9. Actualmente tiene instalado la de version 1.1f GRBL.

Esta placa viene con el chip 340G para emular puerto serie a traves del USB. Es un chip muy conocido, ya que muchos arduinos clones, cuentan con el. Pero también dan infinidad de problemas. Mi probema es que si lo detecta, si consigo conectarme a el, incluso enviar y recibir algúnos datos, pero al poco se me congela la conexion y ni envia ni recibe. Tengo que cerrar la conexion y volverla abrir y es entoces cuando recibo datos de la conexion anterior, como si estuviesen guardados en el buffer. El driver es el que viene por defecto con el kernel. He probado varios versiones del kernel (3.16, 4.9 y la 4.13) pero tengo el mismo problema con todas. He probado con windows, y funciona correctamente, por lo que me decanto que el problema no es de la placa sino, del kernel y driver de linux.

Alguna idea, de como hacer funcionar correctamente este chip? He intentado compilar el driver que te descarga desde la web del fabricante, pero make me da errores. Al parecer hay que hacer algunas modificaciones dependiendo del kernel, tal como comentan aqui, pero tampoco consigo compilarlo. La salida es la siguiente para la version ya modificada que os comentaba antes:

Código: Seleccionar todo
sudo make
make -C /lib/modules/4.13.16-2-MANJARO/build  M=/home/eduardo/Descargas/ch340/CH340G/ch340g 
make[1]: se entra en el directorio '/usr/lib/modules/4.13.16-2-MANJARO/build'
  AR      /home/eduardo/Descargas/ch340/CH340G/ch340g/built-in.o
  CC [M]  /home/eduardo/Descargas/ch340/CH340G/ch340g/ch34x.o
/home/eduardo/Descargas/ch340/CH340G/ch340g/ch34x.c: En la función ‘ch34x_close’:
/home/eduardo/Descargas/ch340/CH340G/ch340g/ch34x.c:553:2: error: unknown type name ‘wait_queue_t’; did you mean ‘wait_event’?
  wait_queue_t wait;
  ^~~~~~~~~~~~
  wait_event
/home/eduardo/Descargas/ch340/CH340G/ch340g/ch34x.c:560:24: error: se pasa el argumento 1 de ‘init_waitqueue_entry’ desde un tipo de puntero incompatible [-Werror=incompatible-pointer-types]
  init_waitqueue_entry( &wait, current );
                        ^
In file included from ./include/linux/mmzone.h:9:0,
                 from ./include/linux/gfp.h:5,
                 from ./include/linux/slab.h:14,
                 from /home/eduardo/Descargas/ch340/CH340G/ch340g/ch34x.c:21:
./include/linux/wait.h:77:20: nota: se esperaba ‘struct wait_queue_entry *’ pero el argumento es de tipo ‘int *’
 static inline void init_waitqueue_entry(struct wait_queue_entry *wq_entry, struct task_struct *p)
                    ^~~~~~~~~~~~~~~~~~~~
/home/eduardo/Descargas/ch340/CH340G/ch340g/ch34x.c:561:36: error: se pasa el argumento 2 de ‘add_wait_queue’ desde un tipo de puntero incompatible [-Werror=incompatible-pointer-types]
  add_wait_queue( &tty->write_wait, &wait );
                                    ^
In file included from ./include/linux/mmzone.h:9:0,
                 from ./include/linux/gfp.h:5,
                 from ./include/linux/slab.h:14,
                 from /home/eduardo/Descargas/ch340/CH340G/ch340g/ch34x.c:21:
./include/linux/wait.h:148:13: nota: se esperaba ‘struct wait_queue_entry *’ pero el argumento es de tipo ‘int *’
 extern void add_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
             ^~~~~~~~~~~~~~
/home/eduardo/Descargas/ch340/CH340G/ch340g/ch34x.c:565:5: error: implicit declaration of function ‘signal_pending’; did you mean ‘timer_pending’? [-Werror=implicit-function-declaration]
     signal_pending(current) || port->serial->disconnected )
     ^~~~~~~~~~~~~~
     timer_pending
/home/eduardo/Descargas/ch340/CH340G/ch340g/ch34x.c:572:39: error: se pasa el argumento 2 de ‘remove_wait_queue’ desde un tipo de puntero incompatible [-Werror=incompatible-pointer-types]
  remove_wait_queue( &tty->write_wait, &wait );
                                       ^
In file included from ./include/linux/mmzone.h:9:0,
                 from ./include/linux/gfp.h:5,
                 from ./include/linux/slab.h:14,
                 from /home/eduardo/Descargas/ch340/CH340G/ch340g/ch34x.c:21:
./include/linux/wait.h:150:13: nota: se esperaba ‘struct wait_queue_entry *’ pero el argumento es de tipo ‘int *’
 extern void remove_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
             ^~~~~~~~~~~~~~~~~
/home/eduardo/Descargas/ch340/CH340G/ch340g/ch34x.c: En la función ‘wait_modem_info’:
/home/eduardo/Descargas/ch340/CH340G/ch340g/ch34x.c:733:3: error: declaración implícita de la función ‘interruptible_sleep_on’ [-Werror=implicit-function-declaration]
   interruptible_sleep_on( &priv->delta_msr_wait );
   ^~~~~~~~~~~~~~~~~~~~~~
cc1: algunos avisos se tratan como errores
make[2]: *** [scripts/Makefile.build:309: /home/eduardo/Descargas/ch340/CH340G/ch340g/ch34x.o] Error 1
make[1]: *** [Makefile:1512: _module_/home/eduardo/Descargas/ch340/CH340G/ch340g] Error 2
make[1]: se sale del directorio '/usr/lib/modules/4.13.16-2-MANJARO/build'
make: *** [Makefile:5: default] Error 2


Gracias de antemano,
Un saludo
Avatar de Usuario
eduardogi

Novato
 
Mensajes: 4
Registrado: Mié, 31 May 2017, 22:05
Distro actual: Manjaro
Versión: Ultima
Escritorio: xfce
Rama: stable

  • Temas Parecidos
    Respuestas
    Vistas
    Último mensaje

Volver a Hardware



¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado




StaffBorrar las cookies


^ Ir Arriba