У меня возникла проблема при подключении последовательного порта USB к Windows и попытке получить данные из этого порта в WSL2.
Проблема в том, что я могу перечислить USB-устройства в Windows PowerShell.
PS C:\> usbipd list
приводит к:
BUSID VID:PID DEVICE STATE
6-4 0403:6001 USB Serial Converter Attached
Я могу подключить USB к WSL, используя
PS C:\> usbipd attach --wsl --busid 6-4
Он привязан к WSL.
Со стороны WSL я могу показать USB-соединения в WSL с помощью lsusb, указав:
Чтобы проверить имя устройства:
sudo dmesg | grep tty
дает это:
Со стороны Python я хочу связаться с последовательным портом для получения данных и т. д. Код:
import serial
import time
import time
import os
ser = serial.Serial('/dev/ttyUSB0') # device name on your computer
print(ser.name) # check which port was really used
ser.write(b'serail port on wsl \n') # write a string
s = ser.readline()
print(s)
ser.close()
Этот код не может писать ни readline(), ни выводить данные, поэтому по сути он не считывает данные из последовательного порта.
Я проверил некоторые проблемы, но они не решили мои проблемы: здесь-1 , здесь-2 , здесь-3 , здесь-4.
Могу ли я что-нибудь дополнительно изучить и решить эту проблему?





Проблема решается просто определением скорости передачи данных как 460800 в serial.Serial("/dev/ttyUSB0", baudrate).
Вероятно, в ядро не входит драйвер FTDI. См. stackoverflow.com/questions/76341080/… и ralf-lang.de/2024/04/02/…. Вам нужно будет собрать и установить собственное ядро.