Bug 1217860 - Reading USB SDR stick Realtek 2832U with RTL_433 fails on Raspi 4
Summary: Reading USB SDR stick Realtek 2832U with RTL_433 fails on Raspi 4
Status: NEW
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Kernel:Drivers (show other bugs)
Version: Current
Hardware: aarch64 openSUSE Tumbleweed
: P4 - Low : Normal (vote)
Target Milestone: ---
Assignee: Martin Hauke
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-06 17:01 UTC by Schönberg
Modified: 2023-12-08 10:47 UTC (History)
2 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
Output of RTL_433 ok/failing (3.21 KB, text/plain)
2023-12-06 17:01 UTC, Schönberg
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Schönberg 2023-12-06 17:01:38 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)
Comment 1 Takashi Iwai 2023-12-07 08:40:16 UTC
A downstream module problem.
Comment 2 Martin Hauke 2023-12-07 09:51:37 UTC
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
----------------------------------------
Comment 3 Schönberg 2023-12-07 16:40:56 UTC
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 ...
Comment 4 Martin Hauke 2023-12-08 07:47:57 UTC
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.
Comment 5 Schönberg 2023-12-08 10:47:19 UTC
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.