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

Network install doesn't start with wireless keyboard/trackpad #574

Closed
jmhalder opened this issue Apr 27, 2024 · 5 comments
Closed

Network install doesn't start with wireless keyboard/trackpad #574

jmhalder opened this issue Apr 27, 2024 · 5 comments
Assignees

Comments

@jmhalder
Copy link

Describe the bug

I've seen others having the same issue. It works as expected with a HP wired keyboard, never shows the red splash screen when I have Logitech K400r plugged in.

Steps to reproduce the behaviour

Plug in and boot with a Logitech K400r (probably other K400 variants) with no boot device.

Device (s)

Raspberry Pi 5

Bootloader configuration.

#vcgencmd bootloader_version output
2024/04/20 11:53:30
version d1744d218076d7eee7c14763bbf3d3cf6278191a (release)
timestamp 1713610410
update-time 1714182005
capabilities 0x0000007f

#rpi-eeprom-config output
[all]
BOOT_UART=1
POWER_OFF_ON_HALT=0
BOOT_ORDER=0xf461
NET_INSTALL_ENABLED=1

System

No response

Bootloader logs

No response

USB boot

No response

NVMe boot

No response

Network (TFTP boot)

No response

@timg236 timg236 added the awaiting information No progress can be made until the requested information is provided label Apr 27, 2024
@timg236
Copy link
Collaborator

timg236 commented Apr 27, 2024

Please could you supply boot loader uart logs and full details of the Logitech ie Amazon (or similar) link to verify exact model etc

@HiassofT
Copy link

This sounds a bit like the issue I reported in the beta forum a while ago https://forums.raspberrypi.com/viewtopic.php?p=2186020#p2186020

Here's the report with logs (I haven't tested with newer bootloaders yet):

There seems to be some issue with HID detection / handling:

Using a Logitech K400 plus (also tested with the original K400 version) and it's unifying receiver the net install screen doesn't come up, only the "black" detail status screen.

On an RPi4 those Logitech keyboards work fine and I can initiate netinstall by pressing shift.

Using a plain wireed HP USB keyboard on RPi5 brings up the netinstall screen though and I could install LibreELEC just fine.

With the Logitech keyboard I see the bootloader registering a HID device in the UART log:

RPi: BOOTSYS release VERSION:1aeae380 DATE: 2024/01/24 TIME: 12:16:01
BOOTMODE: 0x06 partition 0 build-ts BUILD_TIMESTAMP=1706098561 serial e933002c boardrev d04170 stc 1622116
AON_RESET: 00000003 PM_RSTS 00001000
RP1_BOOT chip ID: 0x20001927
PM_RSTS: 0x00001000
part 00000000 reset_info 00000000
PMIC reset-event 00000000 rtc 00000001 alarm 00000000 enabled 0
uSD voltage 3.3V
Initialising SDRAM 'Micron' 32Gb x2 total-size: 64 Gbit 4267
DDR 4267 1 0 64 152
RP1_BOOT chip ID: 0x20001927

RP1_BOOT chip ID: 0x20001927
RP1_BOOT: fw size 25968
PCI2 init
PCI2 reset
PCIe scan 00001de4:00000001
RP1_CHIP_INFO 20001927

RPi: BOOTLOADER release VERSION:1aeae380 DATE: 2024/01/24 TIME: 12:16:01
BOOTMODE: 0x06 partition 0 build-ts BUILD_TIMESTAMP=1706098561 serial e933002c boardrev d04170 stc 4589732
AON_RESET: 00000003 PM_RSTS 00001000
M.2 PCIe HAT not detected.
usb_pd_init status 3
USB_PD CONFIG 0 41
XHCI-STOP
xHC0 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
USBSTS 11
xHC0 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
xHC0 ports 3 slots 64 intrs 4
XHCI-STOP
xHC1 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
USBSTS 1
xHC1 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
xHC1 ports 3 slots 64 intrs 4
USB-PD: src-cap PDO object1 0x0a0191f4
Current 5000 mA
Voltage 5000 mV
USB-PD: src-cap PDO object2 0x0002d12c
Current 3000 mA
Voltage 9000 mV
USB-PD: src-cap PDO object3 0x0003c0e1
Current 2250 mA
Voltage 12000 mV
USB-PD: src-cap PDO object4 0x0004b0b4
Current 1800 mA
Voltage 15000 mV
Boot mode: SD (01) order f4
USB2[2] 000206e1 connected
USB2 root HUB port 2 init
DEV [01:00] 2.00 000000:02 class 0 VID 046d PID c52b
HID [01:00] 2.00 000000:02 register HID
SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
SD HOST: 200000000 CTL0: 0x00800f00 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
EMMC
SD retry 1 oc 0
SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
SD retry 2 oc 0
SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
SDV1
SD CMD: 0x371a0010 (55) 0x0 0x1fff0001
Failed to open device: 'sdcard' (cmd 371a0010 status 1fff0001)
Retry SD 1
SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
SD HOST: 200000000 CTL0: 0x00800f00 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
EMMC
SD retry 1 oc 0
SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
SD retry 2 oc 0
SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
SDV1
SD CMD: 0x371a0010 (55) 0x0 0x1fff0001
Failed to open device: 'sdcard' (cmd 371a0010 status 1fff0001)
Boot mode: USB-MSD (04) order f
XHCI-STOP
xHC0 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
USBSTS 18
XHCI-STOP
xHC1 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
USBSTS 0
XHCI-STOP
xHC0 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
USBSTS 19
xHC0 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
xHC0 ports 3 slots 64 intrs 4
XHCI-STOP
xHC1 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
USBSTS 1
xHC1 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
xHC1 ports 3 slots 64 intrs 4
USB2[2] 000206e1 connected
USB2[2] 00200603 connected enabled
USB2 root HUB port 2 init
DEV [01:00] 2.00 000000:02 class 0 VID 046d PID c52b
HID [01:00] 2.00 000000:02 register HID
USB MSD stopped. Timeout: 25 seconds
Boot mode: RESTART (0f) order 0
Restart 0 max -1
Boot mode: SD (01) order f4
...

According to lsusb the logitech unifying receiver has 3 HID endpoints (keyboard, mouse and "unknown"):

Bus 001 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0        32
  idVendor           0x046d Logitech, Inc.
  idProduct          0xc52b Unifying Receiver
  bcdDevice           24.11
  iManufacturer           1 Logitech
  iProduct                2 USB Receiver
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0054
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          4 RQR24.11_B0036
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower               98mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      59
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               8
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     148
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               2
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      98
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               2
Device Status:     0x0000
  (Bus Powered)

@jmhalder
Copy link
Author

jmhalder commented Apr 27, 2024

lsusb shows the exact same information for me, including the same PID/VID for the root device(Which would make that it's the same "unified receiver" for the K400r and K400+. The only exception is the iConfiguration:
iConfiguration 4 RQR12.11_B0032
I don't have 1mm jst connectors, and don't have anything to plug into the uart port during boot. The "normal" GPIO pins 14/15 for uart on the Pi 4 don't seem to give any output on the Pi 5.

Under the BOOT_UART setting description, the documentation makes no mention of using the jst uart port. Maybe it should make that distinction.

Since opening this issue, I've set NET_INSTALL_KEYBOARD_WAIT=4000
This had no effect.

https://www.amazon.com/Logitech-Wireless-Keyboard-Touchpad-Transceiver/dp/B008QS7TRK
This would be the exact device, but this is probably happening with any wireless Logitech keyboard using the unified receiver.

@timg236 timg236 removed the awaiting information No progress can be made until the requested information is provided label Apr 27, 2024
@timg236
Copy link
Collaborator

timg236 commented Apr 29, 2024

That looks familiar I found one in my attic :)

@peterharperuk
Copy link
Collaborator

Yes, I can reproduce this. Works on Pi4 but not Pi5

@peterharperuk peterharperuk self-assigned this Apr 30, 2024
timg236 added a commit to timg236/rpi-eeprom that referenced this issue May 13, 2024
* Add preliminary support for booting NVMe devices behind PCIe switches.
  See: raspberrypi/firmware#1833
* Fix MAX_RESTARTS parameter
  See: raspberrypi#576
* arm_dt: Support HAT EEPROM dtparams
* Fix reporting of the partition number via DT
  See: raspberrypi#575
* Resolve HID counting bug which caused Network Install to fail on some keyboards
  See: Fixes raspberrypi#574
* Pull PCIE DET_WAKE high by default on CM5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants