Puncte:2

Dispozitivul serial CH340 nu apare în /dev/ (WSL)

drapel cn

Am o clonă arduino nano cu un cip serial CH340. Apare în lsusb ca Adaptor USB-serial QinHeng Electronics HL-340 iar când se conectează îl pot vedea în dmesg cu următoarea înregistrare:

[ 31.251098] vhci_hcd vhci_hcd.0: pdev(0) rhport(0) sockfd(3)
[ 31.251544] vhci_hcd vhci_hcd.0: devid(65541) speed(2) speed_str(viteză completă)
[ 31.252004] vhci_hcd vhci_hcd.0: Dispozitivul atașat
[ 31.538489] vhci_hcd: viteza vhci_device nu este setată
[ 31.608492] usb 1-1: noul dispozitiv USB de viteză maximă numărul 2 folosind vhci_hcd
[ 31.698522] vhci_hcd: viteza vhci_device nu este setată
[ 31.768510] usb 1-1: SetAddress Request (2) la portul 0
[ 31.812328] usb 1-1: a fost găsit un nou dispozitiv USB, idVendor=1a86, idProduct=7523, bcdDevice= 2.63
[ 31.812734] usb 1-1: șiruri noi de dispozitive USB: Produc=0, Produs=2, Număr de serie=0
[ 31.813059] usb 1-1: Produs: USB2.0-Serial

Dar nu există /dev/ttyUSB*.

Mulțumiri.

NotTheDr01ds avatar
drapel vn
Folosiți USB/IP sau încercați să îl accesați direct din WSL? AFAIK, doar USB/IP va funcționa (și doar în cel mai recent kernel, pe care se pare că îl aveți).
Leo Bound avatar
drapel cn
USB/IP (cu usbipd) în WSL2 pe Win11. Apare cu lsusb ca „Bus 001 Device 002: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter” și uname -r este „5.10.60.1-microsoft-standard-WSL2”
Puncte:5
drapel cn

Deci, în momentul în care scriu acest lucru, motivul lipsei de suport pentru dispozitivele seriale USB se datorează faptului că modulele acestora nu sunt incluse în nucleul WSL.

Puteți compila propriul kernel WSL cu modulele făcând următoarele:

  1. Este posibil să aveți nevoie de aceste dependențe: sudo apt install build-essential flex bison libssl-dev libelf-dev dwarves libncurses-dev

  2. Clonează depozitul WSL2 cu: clona git https://github.com/microsoft/WSL2-Linux-Kernel.git

  3. Schimbați directorul în folderul WSL2-Linux-Kernel: cd WSL2-Linux-Kernel

  4. Modificați configurația kernelului rulând face menuconfig KCONFIG_CONFIG=Microsoft/config-wsl.

  5. Mergi la Drivere de dispozitiv -> Suport USB -> Suport USB Serial Converter apoi activați driverele aici.

    • Familia CP210x este, de asemenea, comună pe plăcile de dezvoltare pentru microcontrolere.
    • Probabil vrei ca acestea să fie coapte în miez, așa că apasă y sau spaţiu de două ori pentru a vă asigura că sunt activate cu <*> Decat <M>.

    Apoi salvați și părăsiți menuconfig și suprascrieți config-wsl.

- Probabil că nu ar trebui să utilizați următoarele puncte barate, dar acestea sunt o alternativă la cele două anterioare -

3. Modificați fișierul config-wsl: nano Microsoft/config-wsl (Sau utilizați editorul dorit).

âAccesați linia 2409 (shift+_ apoi 2409 în nano) și înlocuiți # CONFIG_USB_SERIAL_CH341 nu este setat cu CONFIG_USB_SERIAL_CH341=a â- Poate doriți să faceți același lucru pentru CONFIG_USB_SERIAL_CP210X - un alt adaptor serial-usb comun.

  1. Închideți editorul de text și salvați (ctrl + x atunci y atunci introduce cu nano).

  2. Construiți nucleul utilizând configurația nucleului WSL2: face KCONFIG_CONFIG=Microsoft/config-wsl â- Acest lucru poate dura ceva timp â- Puteți accelera acest lucru cu argumentul -j, dar asigurați-vă că specificați o valoare, de ex. -j4

  3. Copiați nucleul compilat în directorul de utilizator Windows: cp arch/x86/boot/bzImage /mnt/c/Users/<numele-de-utilizator-aici>/wsl_kernel

  4. Creați un fișier în directorul de utilizator Windows numit .wslconfig și inserați acesta în el:

[wsl2]
kernel = C:\Utilizatori\<numele-utilizator-aici>\wsl_kernel
  1. Închideți WSL cu wsl --oprire într-un prompt de comandă Windows.

  2. Deschideți terminalul WSL și acum ar trebui să puteți conecta dispozitive seriale USB așa cum este descris Aici.

Și sperăm că totul ar trebui să funcționeze! (Testat pe Win10 și Win11 cu distribuția Ubuntu WSL2)

Biswapriyo avatar
drapel ng
Utilizați menuconfig în loc să editați manual fișierul de configurare.
Leo Bound avatar
drapel cn
@Biswapriyo Mulțumesc, nu am fost niciodată nevoit să mă încurc cu configurația kernel-ului până acum, așa că nu știam cea mai bună modalitate de a o face. Am actualizat cele de mai sus în consecință și apreciez orice alte comentarii pe care le are cineva.
drapel ro
Am putut confirma că atât fluxul manual, cât și fluxul menuconfig funcționează! A trebuit să instalez libncurses, dar în rest a funcționat perfect.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.