Xbox controller "locks" to Linux

Not particularly Garuda problem, just thinking, is there some way to get rid of it?

Mainly, having Xbox controller on Garuda (wireless via Microsoft dongle), makes it so that if/when I switch to Windows. I have to manually remove the dongle from USB for a while or the controller does not connect to it at Windows side.

It isn't like a total killer, but annoying nonetheless...

I found someone writing about this, somewhere else, but the only thing they did was some config change, so Linux wouldn't detect the wireless dongle at all...

Btw. On gaming side, just tested Wayland on Plasma... With two 144Hz Freesync displays, it's heaven... I mean, I just cannot go back to X anymore... If there are a few bugs, I take them gladly! ;p

1 Like

Does it also happen when you switch from win to linux?
Does it happen on both cold and warm reboots?

From Win to Linux, no.
I think it depends, if your machine cuts the power to USB on reboots.
Mine is on monitor's USB, where power is always on.

Operating systems assign MAC addresses.

EDIT: Also, please check that your BIOS does a "Thorough" hardware detection routine upon boot/reboot--typically a "Fastboot" type of option. Turn off Hibernation in BIOS and Windows.


Way back in my Windows days, I sometimes used a small utility to refresh/rescan my USB bus. Unfortunately, that was far too long ago to remember the name.

In Linux I use a bash script and an alias for that.


Have you tried turning the monitor off when you shut down?

Might work, but frankly, it's easier and quicker just to unplug it for a while. I understand, this is mainly because of the way MS made their dongle and the way it connects...

After a long search, I finally found the thread that I had seen earlier:

Did you discount my post without even searching for "how to refresh USB device Windows".

Only the second post I searched I found the answer. Devcon is the name of the Windows utility.

Simply create a Windows shortcut to your device using Devcon on your taskbar/desktop. Click the icon, and the device is refreshed without needing to remove/reinsert.

This is not a Windows support site, thread closed.

1 Like

No, I didn't "discount your post", tbg...

It's kinda hard to test a solution, when one is not at his computer...
I will check your solution gladly and if it solves the problem, I'll be more than happy.

Thanks for the dissing me and closing the discussion.

So now nobody gets to know if the suggested solution truly worked?

I find that a little counterintuitive, but what would I know...

Anyway, I checked it out now that I'm back at my computer.
Utility is now called PnPUtil in newer OSes, and it comes already installed on Windows.

Refreshing the hub (refreshing the hub actually kicks an info to reboot the machine) or the device doesn't work, it's still Unknown USB Device (Invalid Device Descriptor). Until the device is power cycled.

Maybe now, someone with the same kind of problem, knows that it's still necessary to power cycle the dongle in this kind of situation.

And as this seems to be now the end of the road for this troubleshooting, you may close this thread as well :+1:

Sorry for my arrogance.

Maybe you could label a different section of forum to "User to User"-help or Community help?
So you don't have to solve problems, which you clearly don't want to do?

Wouldn't that solve "problems" like this? Of course, it would also be a waste of time, if everyone just says "Do your own troubleshooting". I have at least tried to dig information and a few times when I haven't found anything, then I'll come and post a question... But if I haven't answered to some solution inside, what, an hour or two? I get a lock and mockin'?

I'm sorry, I disagree.

I don't want to "waste" devs time, as many of the problems people have, are not about the OS-part itself. On my original thread, I clearly stated, that this most probably isn't Garuda's "fault".

Anyway, I hope I got my point clearly out there. And sorry, I'll be much more careful in the future...

"Did you discount my post without even searching for "how to refresh USB device Windows".

Only the second post I searched I found the answer. Devcon is the name of the Windows utility.

### Force Windows to Remove and Re-detect an NI USB Device - NI

My NI USB device will occasionally lose connection to the computer, and I have to disconnect and then reconnect it before it will work. Why does this happen, and how can I get Windows to re-detect the device, without having to physically disconnect...

Simply create a Windows shortcut to your device using Devcon on your taskbar/desktop. Click the icon, and the device is refreshed without needing to remove/reinsert.

This is not a Windows support site, thread closed."

Well it kind of seemed that way as you did not respond to my suggestion. Generally when soliciting help it is best to always acknowledge any suggestions given (even if doubtful it is worthwhile).

Well isn't that just typical of M$, they bought out the company that developed tons of useful Windows utilities and then ruined them. What is the point of the utility if you now need to reboot.

Even discussing Microsoft is enough to get me riled. I'm sorry my suggestion was no help to you, but obviously M$ has changed the program drastically from what it once was. My apologies if I offended you, but IMO Microsoft support questions have no place on our forum.

Good luck finding a solution, but perhaps a Windows support site would be a better place to raise questions such as this.

Problem surely is the way they (MS) made the connection with the wireless dongle to work.
What I remember reading about the drivers developers from Xbox One controllers forward, to Linux was that they had to reverse engineer everything from scratch and use some "creative" things to get it to work.

Anyway, I'll just keep ripping the dongle off for a while, at these situations.
I hoped there would be an easy way to "reset" it, but it doesn't seem that way :wink:

If something changes or solves this situation, I'll be posting my findings.

1 Like

Just founded a program to do this on Linux side.
Video about it here:

Github-page here: GitHub - jkulesza/usbreset

And it was straight on AUR.
Hope this helps someone, with the need to reset ANY usb-device!

You don't need to compile a program to do that, a simple bash script will get the job done in Linux.

That might very well be.
I really don't have any clue about that, though :wink:

Windows also has a bastardized "Restart" which can interfere with processes (even though it says it can't). You can access the menu to disable that "feature" by using Control Panel > Hardware and Sound > Power Options > System Settings and uncheck the "Fast Startup" box, thusly:

Windows loves to claim all of your hardware as its own. That's the price you pay when multi-booting OSs.

I must say that, after a 20-year absence, playing with all of the Windows obscured systems and subsystems is both fascinating but also extremely annoying. I can't wait to get it off this main machine.


Yes, that's a source of many problems on Windows. So I already have Fastboot unticked there.

Also, decided to try some new (well, new to me) multiplayer game (on Windows). Valorant. It installs their anti-cheat (Vanguard), which is always on, kernel level thingy... After installing it, I could not log out anymore... Black screen and hard lock...

Uninstalled it instantly xD

1 Like

Just bringing this one to "conclusion". I have NOT had the problems, with the controller connecting to Windows or Linux anymore. What has changed? I don't know, maybe the Linux-driver developer has found the way to implement the connection so, that it doesn't conflict with other connections or whatever.

The main point is, I start Windows/Linux, turn controller on, it connects on both. I reboot and start other OS than the first one, it still connects ok. Which is fantastic.

Now, when all (well, at least most) multiplayer games will support Linux... That is something I'm waiting. Most probably it would be "Goodbye Windows" for me...

1 Like

Nice, maybe they were able to iron out a kernel bug and it came down through an update. Glad to hear it's working properly now.