Skip to content

WSL2 - setup issues with udev rules #91

@leevhoang

Description

@leevhoang

Description

I had issues setting up the udev rules and compiling/flashing/running a sample Rust embedded program on my WSL2 setup and I figured that filing an issue would help shed some light on the things I went through. The solution I found is at the bottom of this message.

Technical information

OS: Windows 11
WSL: WSL2
Board: BBC Microbit v2

Steps I followed

Here are the steps I went through initially to set up a development environment on WSL2:

  1. I followed the instructions in the MB2 Discovery book under Chapter 3 and the Linux section to get the initial libraries set up and copy the rules file into /etc/udev/rules.d. The rules file was called 69-microbit.rules.

  2. When I followed the steps under Verify the Installation, I got an error on using the probe-rs list command that said it could not find any debug probes. (No debug probes were found)

  3. I followed the instructions from this Microsoft page to install usbipd and attach the MB2 to my computer using a Powershell terminal started as admin. This fixed the probe-rs list issue from Step 2, but not the cargo embed issue in Step 4.

  4. I cloned the blinky-rs repository and tried to build/run the code using the command

cargo embed --release

but ran into a new error about a missing probe-rs rule (the same issue happened with cargo embed --target thumbv7em-none-eabihf):

 WARN probe_rs::probe::list::linux: Make sure you have reloaded udev rules after setting everything up
 WARN probe_rs::probe::list::linux: Read more under https://probe.rs/docs/getting-started/probe-setup/
 WARN probe_rs::probe::list::linux: There seems no probe-rs rule to be installed.
 WARN probe_rs::probe::list::linux: Read more under https://probe.rs/docs/getting-started/probe-setup/
 WARN probe_rs::probe::list::linux: If you manage your rules differently, put an empty rule file with 'probe-rs' in the name in /etc/udev/rules.d.
       Error Failed to open the debug probe.

             Caused by:
                 0: The debug probe could not be created.
                 1: The selected USB device could not be opened.

This was despite the fact I copied the rules file from Step 1 into the correct directory (/etc/udev/rules.d).
I tried running the commands

sudo udevadm control --reload
sudo udevadm trigger
adduser <my username> plugdev (It turns out I am already in plugdev)

and neither command fixed the issue.

  1. With some help, I reinstalled Rust and the necessary libraries as /root and managed to fix the issue from Step 4, but I learned that installing as /root could break things, so I decided to remove my Rust setup and reinstall without /root permissions. However, I still ran into the issue described in Step 4 until I tried the solution below.

Solution

I ultimately solved the error from Step 4 by copying the rules file from this probe.rs page and placing it inside the /etc/udev/rules.d folder. The file is called 69-probe-rs.rules.

Suggestions

  • For WSL2 users, it would be nice to mention that the rules file from this probe.rs page may be needed to fix issues with compiling/flashing/running Rust embedded programs on an MB2 board.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions