This is about running 8BitDo's Firmware Update tool for Windows in Wine. It can be used for updating newer 8BitDo devices that may not be supported by fwupd on Linux.
This tool needs Segoe UI Symbol font, on Arch this font is provided by ttf-ms-win10-auto package. For other distributions there is install script.
You will have to let Wine access device's HID interface for updating firmware, something like this should work for 8BitDo Ultimate Bluetooth Controller
sudo nano /etc/udev/rules.d/71-8bitdo-boot.rules
# 8BitDo Ultimate Bluetooth Controller's boot HID interface
SUBSYSTEM=="hidraw", ATTRS{idProduct}=="3208", ATTRS{idVendor}=="2dc8", TAG+="uaccess"
# 8BitDo Ultimate BT receiver's HID interface
SUBSYSTEM=="hidraw", ATTRS{idProduct}=="3109", ATTRS{idVendor}=="2dc8", TAG+="uaccess"
You might need to change product IDs depending on your device (lsusb
prints vendor and product IDs)
sudo udevadm control --reload-rules && sudo udevadm trigger
Disable SDL mode in winebus because it prevents firmware updater from accessing the device, can be done through Wine registry.
wine regedit
add DWORD value of 0 named "Enable SDL" at HKLM\System\CurrentControlSet\Services\winebus
Can be re-enabled after updating firmware (set the "Enable SDL" value to 1 or just remove it).
Shutdown wine server to save and apply registry changes: wineserver -k
Updating the controller works only in manual mode (press LB+RB and connect the controller through USB cable, then select appropriate device)
USB wireless dongle should be detected by the tool when controller is not connected.
Interesting, seems like it is a different kind of tool than what is discussed here. Nice that it helps, though.
I guess this is something that could be looked into. Maybe there is some combination that would trigger the bootloader mode (for example, holding some key(s) while connecting the keyboard)? Otherwise one would have to figure out what the tool does to update the keyboard and try to replicate the behaviour.