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

Can't update firmware in SN30 Pro+ #6

Open
mfraser opened this issue Mar 2, 2022 · 3 comments
Open

Can't update firmware in SN30 Pro+ #6

mfraser opened this issue Mar 2, 2022 · 3 comments

Comments

@mfraser
Copy link

mfraser commented Mar 2, 2022

lsusb
2dc8:6002 8BitDo 8BitDo SN30 Pro+

With the device in Android mode I see this:
sudo fwupdtool get-devices -v
09:10:53:0766 FuDevice using 8968a3bef0b7bbcda914f444d4c5ebcda641032f for usb:01:00:07
09:10:53:0771 FuDevice removing vendor prefix of '8BitDo' from '8BitDo SN30 Pro+'
09:10:58:0779 FuEngine failed to add device usb:01:00:07: failed to retrieve from device on ep 0x81: transfer timed out

When I put the controller into firmware update mode I see this:
sudo fwupdtool get-devices -v
09:14:05:0285 XbSilo ignoring for OR statement: indexed string '6faa2765-8bc2-51d3-bf6b-ffd6312c24d2' was unfound
09:14:05:0290 FuDevice using 8968a3bef0b7bbcda914f444d4c5ebcda641032f for usb:01:00:07
09:14:05:0296 FuDevice removing vendor prefix of '8BitDo' from '8Bitdo'
09:14:05:0307 FuDevice changing verfmt for 8968a3bef0b7bbcda914f444d4c5ebcda641032f: bcd->pair
09:14:05:0307 FuDevice changing version for 8968a3bef0b7bbcda914f444d4c5ebcda641032f: 2.0->3.02
09:14:05:0315 FuPlugin emit added from ebitdo: 8968a3bef0b7bbcda914f444d4c5ebcda641032f
09:14:05:0319 XbSilo ignoring for OR statement: indexed string '78acf201-a624-5c0b-a521-e204be14e3d5' was unfound
09:14:05:0319 FuPlugin fu_plugin_device_registered(dell_dock)
09:14:05:0319 FuPlugin fu_plugin_device_registered(pci_bcr)
09:14:05:0319 FuPlugin fu_plugin_device_registered(thunderbolt)
09:14:05:0319 FuPlugin fu_plugin_device_registered(tpm)
09:14:05:0319 FuPlugin fu_plugin_device_registered(usi_dock)
09:14:05:0319 FuPlugin fu_plugin_device_registered(msr)
09:14:05:0319 FuPlugin fu_plugin_device_registered(uefi_capsule)
09:14:05:0319 FuDeviceList ::added 8968a3bef0b7bbcda914f444d4c5ebcda641032f
09:14:05:0319 FuMain ADDED:
FuEbitdoDevice:
DeviceId: 8968a3bef0b7bbcda914f444d4c5ebcda641032f
Name:
Guid: 78acf201-a624-5c0b-a521-e204be14e3d5 ← USB\VID_2DC8&PID_5750&REV_0200
Guid: b02f1319-c1c4-54f4-b7f2-5bb3552f6a9e ← USB\VID_2DC8&PID_5750
Serial: BootMod
Summary: A redesigned classic game controller
Plugin: ebitdo
Protocol: com.8bitdo
Flags: updatable|registered|is-bootloader|add-counterpart-guids
Vendor: 8BitDo
VendorId: USB:0x2DC8
Version: 3.02
VersionFormat: pair
VersionRaw: 0x0000012e
Icon: input-gaming
InstallDuration: 120
Created: 2022-03-02
PhysicalId: usb:01:00:07
CustomFlags: is-bootloader
PossiblePlugin: ebitdo
ParentPhysicalIds: usb:01:00,usb:01
InternalFlags: replug-match-guid|is-open
UsbDeviceClass: interface-desc

Still can't get fwupdate to actually update the firmware

fwupdmgr get-devices
To Be Filled By O.E.M.

├─
│ Device ID: 8968a3bef0b7bbcda914f444d4c5ebcda641032f
│ Summary: A redesigned classic game controller
│ Current version: 3.02
│ Vendor: 8BitDo (USB:0x2DC8)
│ Install Duration: 2 minutes
│ GUIDs: 78acf201-a624-5c0b-a521-e204be14e3d5
│ b02f1319-c1c4-54f4-b7f2-5bb3552f6a9e
│ Device Flags: • Updatable
│ • Is in bootloader mode

If I do sudo fwupdtool get-updates:
Devices with no available firmware updates:

That is a blank line.

fwupdmgr --version
client version: 1.7.4
compile-time dependency versions
gusb: 0.3.5

daemon version: 1.7.4

@mfraser
Copy link
Author

mfraser commented Mar 2, 2022

The GUIDs for the controller are different to the ones in the .cab files:

GUIDs: 78acf201-a624-5c0b-a521-e204be14e3d5
│ b02f1319-c1c4-54f4-b7f2-5bb3552f6a9e

GUIDs: 64eb3e9c-e79c-50d0-984b-21a1641f37c5
│ a9a82ee0-7fdc-5d80-bd73-6b39f7a4f061

@hughsie
Copy link
Member

hughsie commented Mar 2, 2022

Ahh, so you can't use fwupdtool to update the 8bitdo gamepads; you need to use fwupdmgr. The reason is that the daemon needs to see the runtime mode change into the bootloader mode so that it knows what firmware to deploy. The firmware update mode has a USB VID/PID that is shared between a lot of different controller types.

@mfraser
Copy link
Author

mfraser commented Mar 2, 2022

I've tried fwupdmr with the same result.

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

No branches or pull requests

2 participants