I have a few USB devices that have newer firmware available, but I don't have a Windows PC handy to update the firmware.
First I checked fwupdmgr to see if I could update the devices directly in Linux, but it said there weren't any firmware updates available.
Next I tried updating the firmware in Windows 10 and 11 VMs using Virtualbox 7. I set up USB passthrough, and the devices appear to work fine within Windows. In fact, for some of the devices (e.g. multiple Logitech mice) I installed the vendor software which recognized the devices and allowed me to make changes to them (but not update firmware).
I also made sure I'm a member of the vboxusers group, and I see that VirtualBox's udev rules are intact at /etc/udev/rules.d/60-vboxdrv.rules. And I've tried setting the USB controller to different versions in the VM settings (USB 3.0, 2.0, 1.1).
I've also read through this page and tried everything listed there: https://forums.virtualbox.org/viewtopic.php?t=82639
Lastly, I tried Gnome Boxes and virt-manager in case this issue was unique to VirtualBox, but neither of those worked either.
I've seen some people mention they were able to update firmware using Virtualbox on macOS, e.g.:
- https://www.reddit.com/r/xbox/comments/od0qzv/comment/h4dl6mc/
- https://www.reddit.com/r/macgaming/comments/u4eunt/solution_how_to_update_xbox_controller_firmware/
So I'm wondering if perhaps there's something unique to how Linux USB devices connect to VMs that makes firmware updates impossible.
My question is similar to this one, but that user is asking if it's safe to update firmware, not if it's possible.