Bugzilla – Bug 1217860
Reading USB SDR stick Realtek 2832U with RTL_433 fails on Raspi 4
Last modified: 2023-12-08 10:47:19 UTC
Created attachment 871182 [details] Output of RTL_433 ok/failing Reading 433 MHz signals with Realtek SDR stick RTL 2832 using the tool RTL_433 on a Raspi4 is working only the first time after insertion. Every further program start fails, driver/device does not respond normally. For rtl_433 outputs see attachment. Steps to reproduce: call program several times: #rtl_433 -v -s 1024k Normal behaviour: Output of one ore several devices transmitting on 433 MHz. In case of error program ends with "Reattaching kernel driver failed!" instead of "Reattached kernel driver", no output of device readings. Bug exists for all TW versions I tested sice November 22, 2023. Things tested too: openSUSE Leap 15.4 + 15.5 x86_64: program always works Ubuntu 22.04 LTS on Raspi4: program worked up to kernel linux-image-5.15.0-1041-raspi Versions of components might be affected: Tumbleweed: ----------- - 6.6.3-1-default #1 SMP PREEMPT_DYNAMIC Wed Nov 29 05:06:07 UTC 2023 (d766c57) aarch64 aarch64 aarch64 GNU/Linux - libusb-1_0-0-1.0.26-1.5.aarch64 - kernel-firmware-*-20231128-1.1.noarch - rtl_433-23.11-1.1.a arch64 Leap 15.5: ---------- - 5.14.21-150500.55.36-default #1 SMP PREEMPT_DYNAMIC Tue Oct 31 08:37:43 UTC 2023 (e7a2e23) x86_64 x86_64 x86_64 GNU/Linux - libusb-1_0-0-1.0.26-lp155.74.5.x86_64 - kernel-firmware-*-20231128-lp155.3.1.noarch - rtl_433 version 22.11 (2022-11-19) Ubuntu 22.04.3: ------------- - 5.15.0-1043-raspi #46-Ubuntu SMP PREEMPT Mon Nov 13 15:08:58 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux - rtl-433 21.12-1 arm64 - libusb-1.0-0:arm64 2:1.0.25-1ubuntu2 - linux-firmware 20220329.git681281e4-0ubuntu3.23 - rtl_433 version 21.12 (2021-12-14)
A downstream module problem.
Do you have the same behaviour when the kernel drivers aren't loaded ? It's generelly recommended to blacklist all the rtl* related kernel drivers when you don't need them ... /etc/modprobe.d/99-blacklist-rtlsdr.conf ---------------------------------------- # blacklist rtlsdr blacklist dvb_usb_rtl28xxu blacklist dvb_usb_v2 blacklist rtl_2830 blacklist rtl_2832 blacklist rtl2832_sdr blacklist r820t ----------------------------------------
I tried blacklisting with previous installations, not with Tumbleweed. Now I added these entries and rebooted. Only slight change: The program RTL_433 successfully runs TWO times not once before failing. Same result with Ubuntu 22.04 ...
The USB xHCI controller hardware (VIA VL805) used in the RPIs is known to be broken under certain conditions and needs some quirks from the kernel driver side to work properly: https://github.com/raspberrypi/linux/issues/3060 https://github.com/raspberrypi/bookworm-feedback/issues/83 https://www.rtl-sdr.com/raspberry-pi-4-usb-bug-experienced-with-rtl-sdrs-now-fixed-with-kernel-update/ https://github.com/raspberrypi/linux/pull/5642 Besides that you should always check if your setup always has enough power -> check your power supply.
Thanks to Martin for the links. Some of them I new and/or was involved. The problem is known for years but later it worked for certain 4.x kernels. Older RTL SDR devices are working, problem seems to focused on actual hardware. Power supply: I switched from official raspi supply (5.1 V / 3 A) to a 4A version but it made no difference.