Problemas com portas seriais USB

Prezados,

Estou com alguns Labrador 32 (core 2.2) com Labrador Base-M V2.1. Estou com o ultimo kernel atualizado, conforme instruções do wiki.

uname -a retorna:
Linux labrador 5.10.191 #1 SMP Sun Oct 22 00:42:00 -03 2023 armv7l GNU/Linux

Estou tentando conectar alguns componentes via USB na labrador 32bits, como chips conversores serial USB (presentes em alguns tipos de ARDUINO e compatíveis) com chipset CH340. A serial é detectada (como pode ser visto no dmesg), mas ao tentar receber qualquer coisa dela, só se recebe lixo. Tentei com outros chipsets, como FTDI, com diversos cabos USB, diferentes velocidades, etc. também sem sucesso. Poderiam me ajudar?

Ao conectar um Arduino UNO na USB da caninos, o dmesg mostra:

[  237.182051] caninos-hcd b0700000.usb: HC IN ep 0 error [0x0F] error type [0x03], reset it...
[  237.186855] usb 2-1: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00
[  237.186865] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  237.186871] usb 2-1: Product: FT232R USB UART
[  237.186878] usb 2-1: Manufacturer: FTDI
[  237.186883] usb 2-1: SerialNumber: A105IQZC
[  237.190022] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected
[  237.190268] usb 2-1: Detected FT232RL
[  237.192126] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0

Ao tentar qualquer comunicação, por exemplo, com o Minicom, só se recebe lixo.

Estou tentando implementar um servidor OctoPrint numa caninos. Mas ela não consegue conversar com nada do tipo “porta serial” via USB.

Atenciosamente
Pellini

Pessoal, tentei remover o driver de suporte ao conversor USB serial (rmmod), fazer o modprobe novamente, mas o erro persiste.

Basicamente parece haver algum tipo de vazamento de memória, conflito ou corrupção dos dados dos buffers da serial pois, independentemente do baud rate ajustado, as informações que aparecem pela serial estão sempre corrompidas. Em algumas ocasiões a quantidade de bytes recebidos parece ser o dobro ou quatro vezes mais do que o esperado. E em algumas ocasiões é possível ler, naquilo que foi recebido do buffer, em ascii, algo como "usb2/ " alguma coisa.

Enquanto isso, no dmesg, nada surge de errado.

Me parece que o módulo usbserial (ou os demais módulos relacionados, como o ftdi_sio) foram compilados de forma errada, para alguma outra arquitetura de arm. Ou então algum outro erro com alinhamento dos buffers em memória (alguns arm não fazem acesso desalinhado à memória).

Me coloco a disposição para ajudar, mas preciso entrar em contato com quem mantem o kernel para a labrador 32. Tenho cerca de 10 placas para uso numa disciplina e não estou conseguindo espetar hubs e conversores USB serial para usar em nossas aplicações.

Preciso de ajuda.

Pellini