Итак, на момент написания этой статьи причина отсутствия поддержки последовательных USB-устройств связана с тем, что их модули не включены в ядро WSL.
Вы можете скомпилировать собственное ядро WSL с модулями, выполнив следующие действия:
Вам могут понадобиться следующие зависимости: sudo apt install build-essential flex bison libssl-dev libelf-dev карлики libncurses-dev
Клонируйте репозиторий WSL2 с помощью: клон git https://github.com/microsoft/WSL2-Linux-Kernel.git
Перейдите в папку WSL2-Linux-Kernel: cd WSL2-Linux-ядро
Измените конфигурацию ядра, запустив make menuconfig KCONFIG_CONFIG=Microsoft/config-wsl
.
Перейти к Драйверы устройств -> Поддержка USB -> Поддержка USB Serial Converter
затем включите свои драйверы здесь.
- Семейство CP210x также распространено на платах разработки микроконтроллеров.
- Вы, вероятно, хотите, чтобы они были встроены в ядро, поэтому нажмите
у
или же пространство
дважды, чтобы убедиться, что они включены с помощью <*>
скорее, чем <M>
.
Затем сохраните и выйдите из menuconfig и перезапишите config-wsl.
- Вам, вероятно, не следует использовать следующие перечеркнутые точки, но они являются альтернативой предыдущим двум -
3. Измените файл config-wsl: нано Microsoft/config-wsl
(Или используйте редактор по вашему выбору).
Перейдите к строке 2409 (shift+_, затем 2409 в nano) и замените # CONFIG_USB_SERIAL_CH341 не установлен
с CONFIG_USB_SERIAL_CH341=y
- Вы можете сделать то же самое для CONFIG_USB_SERIAL_CP210X
- еще один обычный последовательный USB-адаптер.
Закройте текстовый редактор и сохраните (Ctrl + х
тогда у
тогда войти
с нано).
Соберите ядро, используя конфигурацию ядра WSL2: сделать KCONFIG_CONFIG=Microsoft/config-wsl
- Это может занять некоторое время
- Вы можете ускорить это с помощью аргумента -j, но обязательно укажите значение, например. -j4
Скопируйте скомпилированное ядро в ваш пользовательский каталог Windows: cp arch/x86/boot/bzImage /mnt/c/Users/<ваше-имя-пользователя>/wsl_kernel
Создайте файл в пользовательском каталоге Windows с именем .wslconfig и вставьте в него это:
[wsl2]
kernel = C:\Users\<ваше-имя-пользователя>\wsl_kernel
Выключите WSL с помощью wsl --shutdown
в командной строке Windows.
Откройте терминал WSL, и теперь вы сможете подключать последовательные USB-устройства, как описано выше. здесь.
И, надеюсь, все должно работать!
(Проверено на Win10 и Win11 с дистрибутивом Ubuntu WSL2)