Acurite USB failure on Raspberry Pi OS Trixie

67 views
Skip to first unread message

Craig (craiger)

unread,
Feb 25, 2026, 7:01:48 PM (2 days ago) Feb 25
to weewx-user
Hi weewx folks!

Per title, connecting an Acurite USB station to a Raspberry P5 running Raspberry Pi OS Trixie results in failure,

[33809.965648] usb 1-2: Product: Chaney Instrument
[33809.977730] usbhid 1-2:1.0: can't add hid device: -22
[33809.977742] usbhid 1-2:1.0: probe with driver usbhid failed with error -22


On Raspberry Pi OS Bookworm, it works as expected

[    2.558137] usbcore: registered new interface driver usbhid
[    2.560725] usbhid: USB HID core driver


I know this isn't exactly a weewx thing, but I thought I'd mention it in the event somebody has a workaround, otherwise, the best plan is to stay on an old/unsupported OS because the debian developers appeared to have done something I'm sure they thought was clever in libusb/udev for Trixie.

best,
-edfardos


Jimi Lawson

unread,
Feb 25, 2026, 7:36:19 PM (2 days ago) Feb 25
to weewx...@googlegroups.com
Bookworm is still supported,  until until 2028 IIRC.

Craig (craiger)

unread,
Feb 25, 2026, 7:53:05 PM (2 days ago) Feb 25
to weewx-user
A little closer inspection, this kernel patch should fix it, so either apply... or, just wait for a backport.  In any event, acurite isn't going to work on a Pi5 which requires the broken kernel (6.12) right now.


diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index aac0051a2cf6..758eb21430cd 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -985,6 +985,7 @@ static int usbhid_parse(struct hid_device *hid)
  struct usb_device *dev = interface_to_usbdev (intf);
  struct hid_descriptor *hdesc;
  struct hid_class_descriptor *hcdesc;
+ __u8 fixed_opt_descriptors_size;
  u32 quirks = 0;
  unsigned int rsize = 0;
  char *rdesc;
@@ -1015,7 +1016,21 @@ static int usbhid_parse(struct hid_device *hid)
        (hdesc->bNumDescriptors - 1) * sizeof(*hcdesc)) {
  dbg_hid("hid descriptor invalid, bLen=%hhu bNum=%hhu\n",
  hdesc->bLength, hdesc->bNumDescriptors);
- return -EINVAL;
+
+ /*
+  * Some devices may expose a wrong number of descriptors compared
+  * to the provided length.
+  * However, we ignore the optional hid class descriptors entirely
+  * so we can safely recompute the proper field.
+  */
+ if (hdesc->bLength >= sizeof(*hdesc)) {
+ fixed_opt_descriptors_size = hdesc->bLength - sizeof(*hdesc);
+
+ hid_warn(intf, "fixing wrong optional hid class descriptors count\n");
+ hdesc->bNumDescriptors = fixed_opt_descriptors_size / sizeof(*hcdesc) + 1;
+ } else {
+ return -EINVAL;
+ }
  }
 
  hid->version = le16_to_cpu(hdesc->bcdHID);
--
2.51.1

---


Vince Skahan

unread,
Feb 25, 2026, 8:23:41 PM (2 days ago) Feb 25
to weewx-user
Wow. I haven’t needed to compile a kernel for maybe a decade.

Did you write that or find it (where?). Has it been reported to the kernel folks and/or debian or raspios folks ? Any idea how long it takes to recompile on a pi5 ?

 Great find.

Craig (craiger)

unread,
Feb 25, 2026, 8:31:56 PM (2 days ago) Feb 25
to weewx-user
It's upstream now, but here's the thread,

rpi-update might have the newer kernel, i see the patch in linux master.

Unfortunately the patch is in the monolithic kernel, so we can't just whip out a new kernel object.

Craig (craiger)

unread,
Feb 26, 2026, 10:20:39 AM (16 hours ago) Feb 26
to weewx-user
Confirming, rpi-update *should* incorporate the fix as it is present in kernel 6.12.73

Unfortunately I don't have the testicular fortitude to apply the rpi-update kernel to my production Pi5 at home, just yet.  

Can somebody run rpi-update on their Pi5  (confirm installation of 6.12.73 kernel), and try the Acurite?

thanks,
-edfardos

Craig (craiger)

unread,
Feb 26, 2026, 4:13:48 PM (10 hours ago) Feb 26
to weewx-user
Confirming Acurite USBHID device appears and enumerates properly with 6.12.73 kernel.

sudo rpi-update 
<reboot>

uname -a
Linux raspberrypi 6.12.73-v8-16k+ #1947 SMP PREEMPT Thu Feb 19 12:33:11 GMT 2026 aarch64 GNU/Linux

lsusb
Bus 001 Device 002: ID 24c0:0003 Chaney Instrument Model 01036 weather center

dmesg
[    4.095533] usbhid 1-2:1.0: fixing wrong optional hid class descriptors count
[    4.118501] hid-generic 0003:24C0:0003.0006: input,hidraw5: USB HID v1.11 Device [Chaney Instrument] on usb-xhci-hcd.0-2/input0


I don't know how much other wreckage the newer kernel cause, but if you only use your Pi5 for Weewx, you're probably in business here.

fyi,
-edfardos

Craig (craiger)

unread,
Feb 26, 2026, 8:06:42 PM (6 hours ago) Feb 26
to weewx-user
I may have spoke too soon.  While usbhid recognizes and enumerates the acurite device with the 6.12.73 kernel, it disappears as soon as weewx starts.

plugin acurite
/dev/hidraw0 appears
systemctl start weewx
/dev/hidraw0 vanishes until you replug the acurite usb cable


I've got nothing at this point, back to bookworm.




Vince Skahan

unread,
Feb 26, 2026, 8:25:30 PM (6 hours ago) Feb 26
to weewx-user
Can you simply roll back the kernel only and freeze to that version ?
Reply all
Reply to author
Forward
0 new messages