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

8Bitdo SN30 Pro+ update - device id not found #25

Closed
mrt181 opened this issue Jan 19, 2020 · 12 comments
Closed

8Bitdo SN30 Pro+ update - device id not found #25

mrt181 opened this issue Jan 19, 2020 · 12 comments

Comments

@mrt181
Copy link

mrt181 commented Jan 19, 2020

Can´t update the controller to 3.01.

When I download the file directly
https://fwupd.org/downloads/da605483fbc6c7b2bfdddfdb5197c3b83e7609d4-8Bitdo-SN30_Pro+-3.01.cab
and open it with GNOME software I get this message:

Unable to update "SN30 Pro+":
device ID 4aa5d06234e4d30aec453144bbe944d89a614c7c was not found

$ fwupdmgr refresh                                              
Fetching metadata https://cdn.fwupd.org/downloads/firmware.xml.gz
Downloading…             [***************************************]
Fetching signature https://cdn.fwupd.org/downloads/firmware.xml.gz.asc

Successfully downloaded new metadata: 0 local devices supported
$ fwupdmgr update 
No updatable devices
$ fwupdmgr --version
client version: 1.3.6
compile-time dependency versions
        gusb:   0.2.11
        efivar: 34
daemon version: 1.3.6```

Note, the switch `--version` is only present since version 0.9.6. If you use an
earlier version, please use the package manager to find out the package
version. For example, `dpkg -l fwupd`.

This output is missing one ssd drive
```shell
$ fwupdmgr get-devices
HP EliteBook 1050 G1
│
├─Thunderbolt Controller:
│     Device ID:           6fd4a8a5fa3b97d110a3b13e5a61ec5534756690
│     Summary:             Unmatched performance for high-speed I/O
│     Current version:     35.00
│     Vendor:              HP, Inc. (TBT:0x00F0)
│     GUIDs:               0abe9964-e2bf-5059-8c47-a14aad943b16
│                          997da4b3-ed66-508f-afd6-29c8285c5451
│     Device Flags:        • Internal device
│                          • Updatable
│                          • Requires AC power
│                          • Device stages updates
│   
├─8BitDo SN30 Pro+:
│     Device ID:           73ef80b60058b4f18549921520bfd94eaf18710a
│     Summary:             A redesigned classic game controller
│     Current version:     1.02
│     Vendor:              8Bitdo (USB:0x2DC8)
│     Install Duration:    2 minutes
│     GUIDs:               043c7673-bd45-5e2e-b8b9-c22df2dfec2a
│                          b02f1319-c1c4-54f4-b7f2-5bb3552f6a9e
│                          64eb3e9c-e79c-50d0-984b-21a1641f37c5
│                          a9a82ee0-7fdc-5d80-bd73-6b39f7a4f061
│     Device Flags:        • Updatable
│                          • Requires a bootloader
│                          • Device will not re-appear after update completes
│   
├─System Firmware:
│     Device ID:           123fd4143619569d8ddb6ea47d1d3911eb5ef07a
│     Current version:     Q72 Ver. 01.08.00
│     Vendor:              HP
│     Update Error:        Firmware can not be updated in legacy mode, switch to UEFI mode
│     GUID:                230c8b18-8d9b-53ec-838b-6cfc0383493a
│     Device Flags:        • Internal device
│                          • Requires AC power
│                          • Needs a reboot after installation
│   
├─TS256GMTS400:
│     Device ID:           e421b2fc248391f6fe3e55ddbb3c9043be068bd0
│     Summary:             ATA Drive
│     Current version:     N1126KB
│     Vendor:              Intel Corporation
│     GUIDs:               fcdb38c6-e2a4-5cdf-8b73-9b2b84ad116f
│                          771fa184-26bd-541e-9e02-3bb6a635a620
│                          e3ec7c1e-dfc5-5e11-9610-10c49c1007e5
│     Device Flags:        • Internal device
│                          • Updatable
│                          • Requires AC power
│                          • Needs a reboot after installation
│                          • Device is usable for the duration of the update
│   
└─Touchpad:
      Device ID:           771fb77e7bbe357c1979d364d8b6354b6d0f03e0
      Current version:     1.7.2763040
      Bootloader Version:  8.0
      Vendor:              Synaptics (HIDRAW:0x06CB)
      GUIDs:               a716eeeb-c9e2-5b72-90fb-218dd0d75933
                           8a12a4a7-0c08-5978-92b7-59271c9dc982
                           e46412fa-15e1-57a0-b500-64c4e7fe5762
                           5e4ba50a-1593-5397-b328-57e2a98b127a
      Device Flags:        • Internal device
                           • Updatable
    

Please answer the following questions:

  • Operating system and version:
Distributor ID: Ubuntu
Description:    Ubuntu 19.10
Release:        19.10
Codename:       eoan
  • How did you install fwupd (ex: from source, pacman, apt-get, etc):
sudo snap install fwupd --classic
  • Have you tried rebooting? Yes
  • Are you using an NVMe disk? No
  • Is secure boot enabled (only for the UEFI plugin)? No
@superm1
Copy link
Member

superm1 commented Jan 19, 2020

Can you please run fwupdmgr get-devices with sudo instead? We'll be able to see a little more verbose information about how those GUIDs were built and compare.

@mrt181
Copy link
Author

mrt181 commented Jan 21, 2020

This is the output from running sudo fwupdmgr get-devices

├─8BitDo SN30 Pro+:
│     Device ID:           73ef80b60058b4f18549921520bfd94eaf18710a
│     Summary:             A redesigned classic game controller
│     Current version:     1.02
│     Vendor:              8Bitdo (USB:0x2DC8)
│     Install Duration:    2 minutes
│     GUIDs:               043c7673-bd45-5e2e-b8b9-c22df2dfec2a
│                          b02f1319-c1c4-54f4-b7f2-5bb3552f6a9e
│                          64eb3e9c-e79c-50d0-984b-21a1641f37c5 ← USB\VID_2DC8&PID_6002&REV_0001
│                          a9a82ee0-7fdc-5d80-bd73-6b39f7a4f061 ← USB\VID_2DC8&PID_6002
│     Device Flags:        • Updatable
│                          • Requires a bootloader
│                          • Device will not re-appear after update completes

@superm1
Copy link
Member

superm1 commented Jan 21, 2020

Well the GUID is the proper one; that's the one fwupd expects to use. The CAB file you're referencing however is using a different GUID:

    <!-- USB\VID_2DC8&PID_5750&REV_020 -->
    <firmware type="flashed">78acf201-a624-5c0b-a521-e204be14e3d5</firmware>
    <!-- USB\VID_2DC8&PID_5750 -->
    <firmware type="flashed">b02f1319-c1c4-54f4-b7f2-5bb3552f6a9e</firmware>

It's tied specifically to the bootloader, which seems like a mistake:
https://github.com/fwupd/fwupd/blob/master/plugins/ebitdo/ebitdo.quirk#L5

@mrt181
Copy link
Author

mrt181 commented Jan 21, 2020

Ok, so is that the reason why there is no updateble device found?

$ fwupdmgr refresh                      
Fetching metadata https://cdn.fwupd.org/downloads/firmware.xml.gz
Downloading…             [***************************************]
Fetching signature https://cdn.fwupd.org/downloads/firmware.xml.gz.asc

Successfully downloaded new metadata: 0 local devices supported

@superm1
Copy link
Member

superm1 commented Jan 21, 2020

Yes I think it's a metadata error. Let @hughsie confirm.

@hughsie
Copy link
Member

hughsie commented Jan 22, 2020

Agree, it shouldn't just list the bootloader. I'm away from home at the moment, so don't have any 8bitdo stuff handy.

@superm1
Copy link
Member

superm1 commented Jan 22, 2020

Can you tear that out of stable at least while away from home? I think that should go back to embargo and we can re-promote the right thing.

@superm1 superm1 transferred this issue from fwupd/fwupd Jan 22, 2020
@hughsie
Copy link
Member

hughsie commented Jan 22, 2020

I don't think it's in stable, it was downloaded locally.

@superm1
Copy link
Member

superm1 commented Jan 22, 2020

Ah so this is mistake in #24

@rhansen
Copy link
Contributor

rhansen commented Feb 10, 2020

If I understand correctly, the device cannot be updated unless it is manually put in bootloader mode (L+R+Start). If we remove the bootloader GUID, won't it become impossible to update?

@rhansen
Copy link
Contributor

rhansen commented Feb 10, 2020

Also see fwupd/fwupd#1681.

@superm1
Copy link
Member

superm1 commented Feb 11, 2020

If I understand correctly, the device cannot be updated unless it is manually put in bootloader mode (L+R+Start). If we remove the bootloader GUID, won't it become impossible to update?

No, there should be a special concept of a counterpart GUID.
https://github.com/fwupd/fwupd/blob/master/plugins/ebitdo/fu-ebitdo-device.c#L555

That counterpart GUID is added to the device when performing the update, so that you don't need to match the bootloader GUID on the XML. It's important that the flow is:

  1. Detect controller, attempt to update
  2. fwupd puts it into waiting for update mode
  3. Put controller in right mode
  4. fwupd adds bootloader GUID to that device in update mode.
  5. perform the update

If you match the bootloader GUID then it will try to apply the firmware to all devices that use that bootloader.

rhansen added a commit to rhansen/8bitdo-firmware that referenced this issue Feb 12, 2020
The b02f1319-c1c4-54f4-b7f2-5bb3552f6a9e GUID is for the bootloader
(USB\VID_2DC8&PID_5750), which should not be used. See:
fwupd#25 (comment)

The new GUID was generated by running:
`appstream-util generate-guid 'USB\VID_2DC8&PID_5006'`
rhansen added a commit to rhansen/8bitdo-firmware that referenced this issue Feb 12, 2020
rhansen added a commit to rhansen/8bitdo-firmware that referenced this issue Feb 12, 2020
rhansen added a commit to rhansen/8bitdo-firmware that referenced this issue Feb 12, 2020
2DC8:5750 is the bootloader's USB ID, not the device's regular ID. See:
fwupd#25 (comment)
rhansen added a commit to rhansen/8bitdo-firmware that referenced this issue Feb 12, 2020
2DC8:5750 is the bootloader's USB ID, not the device's regular ID. See:
fwupd#25 (comment)

Fixes fwupd#25.
rhansen added a commit to rhansen/8bitdo-firmware that referenced this issue Apr 12, 2020
The b02f1319-c1c4-54f4-b7f2-5bb3552f6a9e GUID is for the bootloader
(USB\VID_2DC8&PID_5750), which should not be used. See:
fwupd#25 (comment)

The new GUID was generated by running:
`appstream-util generate-guid 'USB\VID_2DC8&PID_5006'`
rhansen added a commit to rhansen/8bitdo-firmware that referenced this issue Apr 12, 2020
rhansen added a commit to rhansen/8bitdo-firmware that referenced this issue Apr 12, 2020
rhansen added a commit to rhansen/8bitdo-firmware that referenced this issue Apr 12, 2020
2DC8:5750 is the bootloader's USB ID, not the device's regular ID. See:
fwupd#25 (comment)

Fixes fwupd#25.
hughsie pushed a commit that referenced this issue Apr 14, 2020
The b02f1319-c1c4-54f4-b7f2-5bb3552f6a9e GUID is for the bootloader
(USB\VID_2DC8&PID_5750), which should not be used. See:
#25 (comment)

The new GUID was generated by running:
`appstream-util generate-guid 'USB\VID_2DC8&PID_5006'`
hughsie pushed a commit that referenced this issue Apr 14, 2020
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

4 participants