我在运行Kali Linux Arm64的Raspberry Pi 3上连接了SDR加密狗。 SDR本身就是这种特殊的model

麻烦的是,每当我远程连接到rtl_tcp服务器时,它都会退出:

rtl_tcp -a 192.168.200.132
Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
Tuned to 100000000 Hz.
listening...
Use the device argument 'rtl_tcp=192.168.200.132:1234' in OsmoSDR (gr-osmosdr) source
to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...).
client accepted! 192.168.200.102 64098
Allocating 15 zero-copy buffers
Bus error

使用rtl_test -t进行测试很好:
rtl_test -t
Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
[R82XX] PLL not locked!
Sampling at 2048000 S/s.
No E4000 tuner found, aborting.

但是使用采样率进行测试会导致相同的不良行为。
rtl_test -s 2048000
Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
[R82XX] PLL not locked!
Sampling at 2048000 S/s.

Info: This tool will continuously read from the device, and report if
samples get lost. If you observe no further output, everything is fine.

Reading samples in async mode...
Allocating 15 zero-copy buffers
Bus error

如何避免这种情况发生,并让RTL-SDR正常运行?

我尝试过的事情

不变:
  • 我在Kali的存储库中使用了RTL-SDR,并使用git.osmocom.org/rtl-sdr.git存储库从源代码进行了编译-
  • 不变
  • 将交换文件的大小增加到2 GB —不变

  • 一些更改:

    rtl_test中强制同步模式不会产生此错误。
    rtl_test -s 2048000 -S
    Found 1 device(s):
      0:  Realtek, RTL2838UHIDIR, SN: 00000001
    
    Using device 0: Generic RTL2832U OEM
    Found Rafael Micro R820T tuner
    Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
    [R82XX] PLL not locked!
    Sampling at 2048000 S/s.
    
    Info: This tool will continuously read from the device, and report if
    samples get lost. If you observe no further output, everything is fine.
    
    Reading samples in sync mode...
    (Samples are being lost but not reported.)
    

    b中引入rtl_tcp标志可以让我设置缓冲区的数量,这似乎并没有太大作用:
    rtl_tcp -a 192.168.200.132 -b 1
    Found 1 device(s):
      0:  Realtek, RTL2838UHIDIR, SN: 00000001
    
    Using device 0: Generic RTL2832U OEM
    Found Rafael Micro R820T tuner
    [R82XX] PLL not locked!
    Tuned to 100000000 Hz.
    listening...
    Use the device argument 'rtl_tcp=192.168.200.132:1234' in OsmoSDR (gr-osmosdr) source
    to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...).
    client accepted!
    Allocating 1 zero-copy buffers
    Bus error
    

    最佳答案

    我不知道是否可以完全回答问题,但是在调试USB3设备时遇到了类似的错误。出现此问题似乎不是因为不支持USB3(它是一个USB3适配器),而是因为卡驱动程序无法分配足够的背板带宽来动态分配特定的USB管道。

    我对RPi不太熟悉-您是否正在尝试通过USB以太网/ Wifi加密狗将捕获路由出去?除了USB3,我想知道这是否是类似的动态带宽分配问题。

    -与零拷贝缓冲区代码有关的问题早有报道:https://www.mail-archive.com/[email protected]/msg01204.html从描述中以不同的方式表现出来,并且还采用了解决方法。

    关于software-defined-radio - 运行rtl_tcp或rtl_test时,rtl-sdr与“Bus error”一起崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54657089/

    10-11 03:18