BastilleResearch/nrf-research-firmware

"Operation timed out" when flashing Logitech C-U0007 dongle

Opened this issue · 3 comments

ge0rg commented

Hi,

both the attempt to install the research firmware and to flash back the original firmware time out in the last-but-one-step:

<snip>
[2019-08-21 10:56:40.796]  20:00:01:09:03:8A:00:80:FD:05:26:4A:22:E0:FF:22:04:FF:AE:04:F1:57:7F:7F:5A:83:00:41:E5:E4:EE:FE
[2019-08-21 10:56:40.796]  Mark firmware update as completed
Traceback (most recent call last):
  File "./prog/usb-flasher/logitech-usb-restore.py", line 55, in <module>
    response = dongle.send_command(0x21, 0x09, 0x0200, 0x0000, "\x20\x00\x00\x01\x02" + "\x00"*27)
  File "/home/georg/rt/MouseJack/nrf-research-firmware/prog/usb-flasher/unifying.py", line 180, in send_command
    response = self.dongle.read(ep, 32, timeout=timeout)
  File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 988, in read
    self.__get_timeout(timeout))
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 851, in intr_read
    timeout)
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 936, in __read
    _check(retval)
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 595, in _check
    raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 110] Operation timed out

Increasing the timeout value to 10s didn't yield an improvement.

The dongle remains in USB bootloader mode, and cannot be flashed by the Windows Unifying tool (it is shown as "USB receiver (DFU)" and the firmware update fails):

[1101540.588127] usb 3-1: New USB device found, idVendor=046d, idProduct=aaaa, bcdDevice= 1.04
[1101540.588132] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[1101540.588134] usb 3-1: Product: USB BootLoader
[1101540.588136] usb 3-1: Manufacturer: Logitech

Initially, it was detected as:

[1100937.565845] usb 3-1: New USB device found, idVendor=046d, idProduct=c52b, bcdDevice=12.09
[1100937.565850] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[1100937.565852] usb 3-1: Product: USB Receiver
[1100937.565855] usb 3-1: Manufacturer: Logitech
ge0rg commented

Update: this might be related to the bootloader version, as fwupdmgr also fails to flash it:

Unifying Receiver
  DeviceId:             71413822e87deae707da948bd4b7e537af463c19
  Guid:                 279ed287-3607-549e-bacc-f873bb9838c4
  Guid:                 aa50f902-6989-5b40-ad1a-29955b5f1450 <- USB\VID_046D&PID_AAAA&REV_0104
  Guid:                 9d131a0c-a606-580f-8eda-80587250b8d6 <- USB\VID_046D&PID_AAAA
  Summary:              A miniaturised USB wireless receiver (bootloader)
  Plugin:               unifying
  Flags:                updatable|supported|registered|is-bootloader
  Vendor:               Logitech
  VendorId:             USB:0x046D
  Version:              RQR00.00_B0000
  VersionBootloader:    BOT01.04_B0016
  VersionFormat:        plain
  Icon:                 preferences-desktop-keyboard
  InstallDuration:      7
  Created:              2019-08-22

and:

No releases found for device: Not compatible with bootloader version: failed predicate [BOT01.0[0-3]_* regex BOT01.04_B0016]
FFY00 commented

You have a signed bootloader, you can't flash custom firmware.

About the timeout issue in fwupd it should be fixed in fwupd/fwupd#1337.

Same

Hi,

both the attempt to install the research firmware and to flash back the original firmware time out in the last-but-one-step:

<snip>
[2019-08-21 10:56:40.796]  20:00:01:09:03:8A:00:80:FD:05:26:4A:22:E0:FF:22:04:FF:AE:04:F1:57:7F:7F:5A:83:00:41:E5:E4:EE:FE
[2019-08-21 10:56:40.796]  Mark firmware update as completed
Traceback (most recent call last):
  File "./prog/usb-flasher/logitech-usb-restore.py", line 55, in <module>
    response = dongle.send_command(0x21, 0x09, 0x0200, 0x0000, "\x20\x00\x00\x01\x02" + "\x00"*27)
  File "/home/georg/rt/MouseJack/nrf-research-firmware/prog/usb-flasher/unifying.py", line 180, in send_command
    response = self.dongle.read(ep, 32, timeout=timeout)
  File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 988, in read
    self.__get_timeout(timeout))
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 851, in intr_read
    timeout)
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 936, in __read
    _check(retval)
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 595, in _check
    raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 110] Operation timed out

Increasing the timeout value to 10s didn't yield an improvement.

The dongle remains in USB bootloader mode, and cannot be flashed by the Windows Unifying tool (it is shown as "USB receiver (DFU)" and the firmware update fails):

[1101540.588127] usb 3-1: New USB device found, idVendor=046d, idProduct=aaaa, bcdDevice= 1.04
[1101540.588132] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[1101540.588134] usb 3-1: Product: USB BootLoader
[1101540.588136] usb 3-1: Manufacturer: Logitech

Initially, it was detected as:

[1100937.565845] usb 3-1: New USB device found, idVendor=046d, idProduct=c52b, bcdDevice=12.09
[1100937.565850] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[1100937.565852] usb 3-1: Product: USB Receiver
[1100937.565855] usb 3-1: Manufacturer: Logitech

The same error happens when i try flashing my reciever on my Raspberry Pi 4.
Flashing the same reciever on my desktop works fine.
Device ID: 1915:0102 (Nordic Semiconductor ASA Research Firmware)