Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing Driver: LEGO USB Tower #11848

Open
1 of 2 tasks
mesheets opened this issue Jul 27, 2024 · 10 comments
Open
1 of 2 tasks

Missing Driver: LEGO USB Tower #11848

mesheets opened this issue Jul 27, 2024 · 10 comments
Labels
kernel WSL kernel

Comments

@mesheets
Copy link

mesheets commented Jul 27, 2024

Windows Version

Microsoft Windows [Version 10.0.19044.5371]

WSL Version

2.4.10.0

Are you using WSL 1 or WSL 2?

  • WSL 2
  • WSL 1

Kernel Versions

5.15.167.4-1
6.6.36.6

Distro Version

openSUSE-Tumbleweed, Ubuntu

Other Software

LEGO USB Tower, for which a Linux driver already exists (CONFIG_USB_LEGOTOWER) but is not included in WSL

Repro Steps

  1. Connect a LEGO USB Tower device to a USB port on the computer ✔
  2. Follow the steps documented on the Connect USB Devices page ✔
  3. Run the lsusb command in the Linux distro instance to confirm that the device is connected to the Linux distro instance ✔
  4. Look under /dev for the device entry that should have been created, but no entry is created because the driver is missing ❌

Expected Behavior

For any WSL instance regardless of platform or processor, an entry for the device is supposed to be created under /dev (the exact path/name tends to vary depending on which distribution one might be using)

Actual Behavior

The entry under /dev for the device is never created because the driver is missing from WSL.

Because the driver is missing, the LEGO USB Tower device cannot be used.

Diagnostic Logs

WslLogs-2024-07-27_17-04-04.zip

 

Identified Fixes Needed

Context:

  1. This issue was originally submitted for kernel v5 but updated and edited for kernel v6 now that v6 has been released
  2. These identified fixes have been successfully tested but need to be applied here to the WSL2 kernel codebase configuration, especially considering the target educational audience.

Synopsis

In looking at the source code for the WSL2 kernel repository here on GitHub, the driver would appear to be missing because the corresponding CONFIG_USB_LEGOTOWER is not set to be built as a module (CONFIG_USB_LEGOTOWER=m).

Important Background Information

At the top of the wsl-config files for both x86 and ARM, there is a note stating that those files are autogenerated, but I have been unable to find any documentation indicating what the source of those autogenerated files might be.

Despite the "autogenerated" note, I went ahead and started to create a pull request, but I have been unable to actually submit a pull request due to a message that reads as follows:

An owner of this repository has limited the ability to open a pull request to users that are collaborators on this repository.

Changes

Only 2 changed lines: A diff of what might otherwise appear to be the needed configuration change is available via various formats at the links below.

Copy link

Logs are required for review from WSL team

If this a feature request, please reply with '/feature'. If this is a question, reply with '/question'.
Otherwise please attach logs by following the instructions below, your issue will not be reviewed unless they are added. These logs will help us understand what is going on in your machine.

How to collect WSL logs

Download and execute collect-wsl-logs.ps1 in an administrative powershell prompt:

Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/WSL/master/diagnostics/collect-wsl-logs.ps1" -OutFile collect-wsl-logs.ps1
Set-ExecutionPolicy Bypass -Scope Process -Force
.\collect-wsl-logs.ps1

The script will output the path of the log file once done.

If this is a networking issue, please use collect-networking-logs.ps1, following the instructions here

Once completed please upload the output files to this Github issue.

Click here for more info on logging
If you choose to email these logs instead of attaching to the bug, please send them to wsl-gh-logs@microsoft.com with the number of the github issue in the subject, and in the message a link to your comment in the github issue and reply with '/emailed-logs'.

@mesheets
Copy link
Author

Copy link

Diagnostic information
Issue was edited and new log file was found: https://github.com/user-attachments/files/16401475/WslLogs-2024-07-27_17-04-04.zip
appxpackage.txt not found

Copy link

Diagnostic information
appxpackage.txt not found

@mesheets
Copy link
Author

Appxpackage.txt isn't found because that was on a install of Windows where Microsoft Store capabilities are disabled, but as the root problem of the issue is already known (CONFIG_USB_LEGOTOWER is not enabled), that appxpackage.txt file probably isn't needed for this anyway.

@craigloewen-msft craigloewen-msft added the kernel WSL kernel label Jul 30, 2024
@mesheets
Copy link
Author

mesheets commented Aug 1, 2024

I would also note that this LEGO USB tower device isn't just a "toy"; it was included in a number of LEGO Education sets designed for school and/or student use (e.g. 9786-1, 9791-1, 9794-1, 9794-2, 9794-3).

image

@mesheets
Copy link
Author

mesheets commented Aug 7, 2024

Should this perhaps also have the "kconfig" tag?

@mesheets
Copy link
Author

mesheets commented Feb 7, 2025

In trying out the v6 kernel releases posted to the Microsoft/WSL2-Linux-Kernel project (including the current-latest 6.6.36.6), USBIP does not work "out of the box" (c.f. #11795), which is needed to be able to use the USB IR tower under WSL.

For USBIP to work after shutting down / restarting WSL2, it seems a file /etc/modules-load.d/vhci_hcd.conf—having as its sole contents vhci_hcd—needs to be created beyond just running sudo modprobe vhci_hcd as noted in #11795.

@mesheets
Copy link
Author

mesheets commented Feb 8, 2025

I have updated the details in the first post to reflect kernel v6.6.36.6 and WSL 2.4.10.0, which were not available at the time of the original post.

@mesheets
Copy link
Author

@craigloewen-msft : This should perhaps have the "kconfig" label?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kernel WSL kernel
Projects
None yet
Development

No branches or pull requests

2 participants