Conversation
| </description> | ||
| <provides> | ||
| <!-- USB\VID_2dC8&PID_5750 --> | ||
| <firmware type="flashed">b02f1319-c1c4-54f4-b7f2-5bb3552f6a9e</firmware> |
There was a problem hiding this comment.
isnt there a bootloader guid here too?
There was a problem hiding this comment.
That's exactly bootloader. I'm not sure about another, let me check
There was a problem hiding this comment.
Are you talking about 78acf201-a624-5c0b-a521-e204be14e3d5? How should I define it? TBH, I've just cloned the M30 metadata more or less https://github.com/hughsie/8bitdo-firmware/blob/master/releases/M30/1.13/m30.metainfo.xml
There was a problem hiding this comment.
Richard, any update?
There was a problem hiding this comment.
Don't you need to add a runtime GUID here as well? Otherwise fwupd isn't going to know the device is a NS30 just from the bootloader.
There was a problem hiding this comment.
According to #25 (comment) the bootloader GUID should not be listed in this file, only the runtime GUID.
There was a problem hiding this comment.
Hello dear gentlemen. Sorry for the long silence, but the device has gone from my hands for a while. Unfortunately, sudo fwupdmgr get-devices --show-all-devices doesn't show the gamepad unless it's in bootload mode. I don't know why, but this is the state..
|
Besides the fact, that |
|
I'd really like someone from 8bitdo to be doing this work. If anyone wants to volunteer to manage the updates on the LVFS I can write to them and ask if this is acceptable. |
|
What do you mean by "manage the updates"? Do you mean create pull requests like this one on behalf of 8bitdo whenever there is a new firmware release? If so, I'm willing to do that. |
|
It's more the "Upload to the LVFS" bit I'm trying to avoid doing. |
|
I'm willing to do that as well. |
| <!-- USB\VID_2DC8&PID_5750&REV_0200 --> | ||
| <firmware type="flashed">78acf201-a624-5c0b-a521-e204be14e3d5</firmware> | ||
| <!-- USB\VID_2dC8&PID_5750 --> | ||
| <firmware type="flashed">b02f1319-c1c4-54f4-b7f2-5bb3552f6a9e</firmware> |
There was a problem hiding this comment.
Do not use the bootloader UUID—use the UUID when the device is in Android (D-input) mode. See #25 (comment) for details.
There was a problem hiding this comment.
Richard, this device isn't shown up in the sudo fwupdmgr get-devices --show-all-devices output in any mode except bootloader. If you would be so nice and point, how to do it, I'll make it for sure
There was a problem hiding this comment.
I wonder if the SN30 GP is affected by fwupd/fwupd#1681. Do you see the same "failed to add USB device" error when you plug it in in D-input mode? If so there's not much that can be done until that bug is fixed.
There was a problem hiding this comment.
Also, you will need to add an entry for the SN30 GP to https://github.com/fwupd/fwupd/blob/master/plugins/ebitdo/ebitdo.quirk.
There was a problem hiding this comment.
I'm not sure if it's the same thing since I don't see errors in fwupd daemon logs
[ 4.175718] [0005d04c] libusb: debug [handle_events] poll() returned 0
[ 4.175753] [0005d04c] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 4.175767] [0005d04c] libusb: debug [handle_events] poll() 2 fds with timeout in 2000ms
[ 4.568808] [0005d04b] libusb: debug [linux_get_device_address] getting address for device: 1-4 detached: 0
[ 4.568874] [0005d04b] libusb: debug [linux_get_device_address] scan 1-4
[ 4.569056] [0005d04b] libusb: debug [linux_get_device_address] bus=1 dev=101
[ 4.569075] [0005d04b] libusb: debug [udev_hotplug_event] udev hotplug event. action: add.
[ 4.569090] [0005d04b] libusb: debug [linux_enumerate_device] busnum 1 devaddr 101 session_id 357
[ 4.569116] [0005d04b] libusb: debug [linux_enumerate_device] allocating new device for 1/101 (session 357)
[ 4.569262] [0005d04b] libusb: debug [linux_get_parent_info] Dev 0x7f8fd0001f70 (1-4) has parent 0x558c6f5d9e10 (usb1) port 4
[ 4.569348] [0005d04c] libusb: debug [handle_events] poll() returned 1
[ 4.569363] [0005d04c] libusb: debug [handle_events] caught a fish on the event pipe
[ 4.569374] [0005d04c] libusb: debug [handle_events] hotplug message received
[ 4.569434] [0005d04c] libusb: debug [libusb_get_device_descriptor]
[ 4.569458] [0005d04c] libusb: debug [libusb_get_device_descriptor]
[ 4.569542] [0005d04c] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 4.569561] [0005d04c] libusb: debug [handle_events] poll() 2 fds with timeout in 2000ms
[ 4.697010] [0005d04b] libusb: debug [linux_get_device_address] getting address for device: 1-4 detached: 0
[ 4.697033] [0005d04b] libusb: debug [linux_get_device_address] scan 1-4
[ 4.697078] [0005d04b] libusb: debug [linux_get_device_address] bus=1 dev=101
[ 4.697083] [0005d04b] libusb: debug [udev_hotplug_event] udev hotplug event. action: bind.
[ 4.697087] [0005d04b] libusb: error [udev_hotplug_event] ignoring udev action bind
and udevadm monitor
KERNEL[124935.506347] add /devices/pci0000:00/0000:00:14.0/usb1/1-2 (usb)
KERNEL[124935.507703] add /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0 (usb)
KERNEL[124935.508565] add /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2DC8:9012.004E (hid)
KERNEL[124935.509389] add /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2DC8:9012.004E/input/input132 (input)
KERNEL[124935.510360] add /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2DC8:9012.004E/input/input132/event12 (input)
KERNEL[124935.510475] add /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2DC8:9012.004E/input/input132/js0 (input)
KERNEL[124935.510556] add /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2DC8:9012.004E/hidraw/hidraw0 (hidraw)
KERNEL[124935.510667] bind /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2DC8:9012.004E (hid)
KERNEL[124935.510768] bind /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0 (usb)
KERNEL[124935.510885] bind /devices/pci0000:00/0000:00:14.0/usb1/1-2 (usb)
UDEV [124935.528311] add /devices/pci0000:00/0000:00:14.0/usb1/1-2 (usb)
UDEV [124935.533377] add /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0 (usb)
UDEV [124935.537849] add /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2DC8:9012.004E (hid)
UDEV [124935.542876] add /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2DC8:9012.004E/input/input132 (input)
UDEV [124935.552331] add /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2DC8:9012.004E/input/input132/js0 (input)
UDEV [124935.565715] add /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2DC8:9012.004E/hidraw/hidraw0 (hidraw)
UDEV [124935.634552] add /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2DC8:9012.004E/input/input132/event12 (input)
UDEV [124935.635912] bind /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2DC8:9012.004E (hid)
UDEV [124935.637470] bind /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0 (usb)
UDEV [124935.642574] bind /devices/pci0000:00/0000:00:14.0/usb1/1-2 (usb)
Here's an example of working M30 logs
[ 9.906413] [0005d17a] libusb: debug [linux_get_device_address] getting address for device: 1-4 detached: 0
[ 9.906476] [0005d17a] libusb: debug [linux_get_device_address] scan 1-4
[ 9.906627] [0005d17a] libusb: debug [linux_get_device_address] bus=1 dev=102
[ 9.906653] [0005d17a] libusb: debug [udev_hotplug_event] udev hotplug event. action: add.
[ 9.906673] [0005d17a] libusb: debug [linux_enumerate_device] busnum 1 devaddr 102 session_id 358
[ 9.906697] [0005d17a] libusb: debug [linux_enumerate_device] allocating new device for 1/102 (session 358)
[ 9.906813] [0005d17a] libusb: debug [linux_get_parent_info] Dev 0x7fe144001f70 (1-4) has parent 0x55ba1c0b7e10 (usb1) port 4
[ 9.906888] [0005d17b] libusb: debug [handle_events] poll() returned 1
[ 9.906918] [0005d17b] libusb: debug [handle_events] caught a fish on the event pipe
[ 9.906931] [0005d17b] libusb: debug [handle_events] hotplug message received
[ 9.907001] [0005d17b] libusb: debug [libusb_get_device_descriptor]
[ 9.907026] [0005d17b] libusb: debug [libusb_get_device_descriptor]
[ 9.907127] [0005d17b] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 9.907157] [0005d17b] libusb: debug [handle_events] poll() 2 fds with timeout in 2000ms
[ 9.923753] [0005d178] libusb: debug [libusb_open] open 1.102
[ 9.924139] [0005d178] libusb: debug [usbi_add_pollfd] add fd 18 events 4
[ 9.924495] [0005d178] libusb: debug [libusb_alloc_transfer] transfer 0x55ba1c158110
[ 9.924498] [0005d17b] libusb: debug [handle_events] poll() returned 1
[ 9.924837] [0005d17b] libusb: debug [handle_events] caught a fish on the event pipe
[ 9.924855] [0005d17b] libusb: debug [handle_events] someone updated the poll fds
[ 9.924866] [0005d17b] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 9.924874] [0005d17b] libusb: debug [handle_events] poll fds modified, reallocating
[ 9.924889] [0005d17b] libusb: debug [handle_events] poll() 3 fds with timeout in 2000ms
[ 9.924793] [0005d178] libusb: debug [libusb_submit_transfer] transfer 0x55ba1c158110
[ 9.930298] [0005d178] libusb: debug [add_to_flying_list] arm timerfd for timeout in 1000ms (first in line)
[ 9.930604] [0005d178] libusb: debug [libusb_handle_events_timeout_completed] another thread is doing event handling
[ 9.930728] [0005d17b] libusb: debug [handle_events] poll() returned 1
[ 9.930922] [0005d17b] libusb: debug [reap_for_handle] urb type=2 status=0 transferred=4
[ 9.930939] [0005d17b] libusb: debug [handle_control_completion] handling completion status 0
[ 9.930948] [0005d17b] libusb: debug [disarm_timerfd]
[ 9.930957] [0005d17b] libusb: debug [usbi_handle_transfer_completion] transfer 0x55ba1c158110 has callback 0x7fe15cdb9590
[ 9.930965] [0005d17b] libusb: debug [sync_transfer_cb] actual_length=4
[ 9.930980] [0005d17b] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 9.930988] [0005d17b] libusb: debug [handle_events] poll() 3 fds with timeout in 2000ms
[ 9.931185] [0005d178] libusb: debug [libusb_free_transfer] transfer 0x55ba1c158110
[ 9.931368] [0005d178] libusb: debug [libusb_alloc_transfer] transfer 0x55ba1c1581f0
[ 9.931537] [0005d178] libusb: debug [libusb_submit_transfer] transfer 0x55ba1c1581f0
[ 9.931709] [0005d178] libusb: debug [add_to_flying_list] arm timerfd for timeout in 1000ms (first in line)
[ 9.931906] [0005d178] libusb: debug [libusb_handle_events_timeout_completed] another thread is doing event handling
[ 9.932066] [0005d17b] libusb: debug [handle_events] poll() returned 1
[ 9.932518] [0005d17b] libusb: debug [reap_for_handle] urb type=2 status=0 transferred=38
[ 9.932530] [0005d17b] libusb: debug [handle_control_completion] handling completion status 0
[ 9.932538] [0005d17b] libusb: debug [disarm_timerfd]
[ 9.932548] [0005d17b] libusb: debug [usbi_handle_transfer_completion] transfer 0x55ba1c1581f0 has callback 0x7fe15cdb9590
[ 9.932556] [0005d17b] libusb: debug [sync_transfer_cb] actual_length=38
[ 9.932570] [0005d17b] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 9.932577] [0005d17b] libusb: debug [handle_events] poll() 3 fds with timeout in 2000ms
[ 9.933647] [0005d178] libusb: debug [libusb_free_transfer] transfer 0x55ba1c1581f0
[ 9.933973] [0005d178] libusb: debug [libusb_detach_kernel_driver] interface 0
[ 9.973066] [0005d178] libusb: debug [libusb_claim_interface] interface 0
[ 9.973282] [0005d178] libusb: debug [libusb_alloc_transfer] transfer 0x55ba1c1581f0
[ 9.973440] [0005d178] libusb: debug [libusb_submit_transfer] transfer 0x55ba1c1581f0
[ 9.973455] [0005d178] libusb: debug [add_to_flying_list] arm timerfd for timeout in 5000ms (first in line)
[ 9.973750] [0005d178] libusb: debug [submit_bulk_transfer] need 1 urbs for new transfer with length 64
[ 9.975535] [0005d17b] libusb: debug [handle_events] poll() returned 1
[ 9.975570] [0005d17b] libusb: debug [reap_for_handle] urb type=1 status=0 transferred=64
[ 9.975580] [0005d17b] libusb: debug [handle_bulk_completion] handling completion status 0 of bulk urb 1/1
[ 9.975585] [0005d17b] libusb: debug [handle_bulk_completion] last URB in transfer --> complete!
[ 9.975590] [0005d17b] libusb: debug [disarm_timerfd]
[ 9.975596] [0005d17b] libusb: debug [usbi_handle_transfer_completion] transfer 0x55ba1c1581f0 has callback 0x7fe15d6c56c0
[ 9.975613] [0005d17b] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 9.975617] [0005d17b] libusb: debug [handle_events] poll() 3 fds with timeout in 2000ms
[ 9.976189] [0005d178] libusb: debug [libusb_free_transfer] transfer 0x55ba1c1581f0
[ 9.976565] [0005d178] libusb: debug [libusb_alloc_transfer] transfer 0x55ba1c1581f0
[ 9.976829] [0005d178] libusb: debug [libusb_submit_transfer] transfer 0x55ba1c1581f0
[ 9.976854] [0005d178] libusb: debug [add_to_flying_list] arm timerfd for timeout in 5000ms (first in line)
[ 9.977055] [0005d178] libusb: debug [submit_bulk_transfer] need 1 urbs for new transfer with length 64
[ 9.979457] [0005d17b] libusb: debug [handle_events] poll() returned 1
[ 9.979474] [0005d17b] libusb: debug [reap_for_handle] urb type=1 status=0 transferred=9
[ 9.979479] [0005d17b] libusb: debug [handle_bulk_completion] handling completion status 0 of bulk urb 1/1
[ 9.979484] [0005d17b] libusb: debug [handle_bulk_completion] last URB in transfer --> complete!
[ 9.979489] [0005d17b] libusb: debug [disarm_timerfd]
[ 9.979495] [0005d17b] libusb: debug [usbi_handle_transfer_completion] transfer 0x55ba1c1581f0 has callback 0x7fe15d6c56c0
[ 9.979517] [0005d17b] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 9.979524] [0005d17b] libusb: debug [handle_events] poll() 3 fds with timeout in 2000ms
[ 9.979539] [0005d178] libusb: debug [libusb_free_transfer] transfer 0x55ba1c1581f0
[ 9.984610] [0005d178] libusb: debug [libusb_close]
[ 9.984667] [0005d17b] libusb: debug [handle_events] poll() returned 1
[ 9.984676] [0005d17b] libusb: debug [handle_events] caught a fish on the event pipe
[ 9.984680] [0005d17b] libusb: debug [handle_events] someone is closing a device
[ 9.984688] [0005d17b] libusb: debug [libusb_try_lock_events] someone else is closing a device
[ 9.984693] [0005d17b] libusb: debug [libusb_event_handler_active] someone else is closing a device
[ 9.984697] [0005d17b] libusb: debug [libusb_handle_events_timeout_completed] another thread is doing event handling
[ 9.984692] [0005d178] libusb: debug [usbi_remove_pollfd] remove fd 18
[ 9.984735] [0005d17b] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 9.984740] [0005d17b] libusb: debug [handle_events] poll fds modified, reallocating
[ 9.984746] [0005d17b] libusb: debug [handle_events] poll() 2 fds with timeout in 2000ms
[ 9.990451] [0005d17a] libusb: debug [linux_get_device_address] getting address for device: 1-4 detached: 0
[ 9.990473] [0005d17a] libusb: debug [linux_get_device_address] scan 1-4
[ 9.990520] [0005d17a] libusb: debug [linux_get_device_address] bus=1 dev=102
[ 9.990524] [0005d17a] libusb: debug [udev_hotplug_event] udev hotplug event. action: bind.
[ 9.990527] [0005d17a] libusb: error [udev_hotplug_event] ignoring udev action bind
KERNEL[125020.773073] add /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb)
KERNEL[125020.774604] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0 (usb)
KERNEL[125020.777648] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:2DC8:5006.004F (hid)
KERNEL[125020.777903] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:2DC8:5006.004F/input/input133 (input)
KERNEL[125020.778841] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:2DC8:5006.004F/input/input133/event12 (input)
KERNEL[125020.778978] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:2DC8:5006.004F/input/input133/js0 (input)
KERNEL[125020.779109] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:2DC8:5006.004F/hidraw/hidraw0 (hidraw)
KERNEL[125020.779292] bind /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:2DC8:5006.004F (hid)
KERNEL[125020.779461] bind /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0 (usb)
KERNEL[125020.779621] bind /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb)
UDEV [125020.804636] add /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb)
UDEV [125020.814978] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0 (usb)
UDEV [125020.820076] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:2DC8:5006.004F (hid)
UDEV [125020.824312] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:2DC8:5006.004F/input/input133 (input)
UDEV [125020.830874] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:2DC8:5006.004F/input/input133/js0 (input)
UDEV [125020.845809] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:2DC8:5006.004F/hidraw/hidraw0 (hidraw)
UDEV [125020.924746] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:2DC8:5006.004F/input/input133/event12 (input)
UDEV [125020.927695] bind /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:2DC8:5006.004F (hid)
UDEV [125020.928745] bind /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0 (usb)
UDEV [125020.932875] bind /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb)
There was a problem hiding this comment.
Have you tried building fwupd with an entry for the SN30 GP in ebitdo.quirk?
Also, your logs only show libusb messages. Please enable verbose logging (VerboseDomains=*) to get fwupd log messages.
|
I believe you will also have to add an entry for the SN30 GP to https://github.com/fwupd/fwupd/blob/master/plugins/ebitdo/ebitdo.quirk before this will work. |
Hello, I've added a firmware for a gamepad