RTL-SDR
RTL-SDR 是一套工具,它使得基于 Realtek RTL2832U 芯片组的 DVB-T USB 加密狗能够作为廉价的软件无线电使用,因为该芯片允许将原始 I/Q 采样数据从调谐器直接传输到主机设备。
请参阅 RTL-SDR wiki 以获取精确的技术规格。
安装
最新的稳定 RTL-SDR 版本可以从 rtl-sdr 安装。
前沿版本在 rtl-sdr-gitAUR 上。
/usr/lib/modprobe.d/rtlsdr.conf
中看到。要将加密狗与原始 DVB-T 驱动程序一起使用,需要手动加载它们,请参阅 DVB-T#驱动程序。udev 规则安装在 /usr/lib/udev/rules.d/10-rtl-sdr.rules
,并设置适当的权限,以便非 root 用户可以访问该设备。
rngd 默认声明 rtlsdr 设备 - 在 /etc/conf.d/rngd
中使用 RNGD_OPTS="--exclude rtlsdr"
排除其使用
使用
执行一个简单的测试,并确保加密狗工作正常且没有丢失样本
$ rtl_test
原始样本可以直接捕获到文件(或 fifo),例如调谐到 123.4MHz 并捕获 1.8M 样本/秒
$ rtl_sdr capture.bin -s 1.8e6 -f 123.4e6
调谐到您最喜欢的广播电台,并通过管道传输到 sox 以获得音频
$ rtl_fm -f 102.7e6 -M wbfm -s 200000 -r 48000 - | aplay -r 48000 -f S16_LE
在无头服务器上使用
要在 ssh
上使用 RTL SDR 设备,请将您登录的用户添加到 rtlsdr
用户组。
现在,注销并重新登录到一个新的 ssh
会话。可以使用以下命令列出您的用户所属的组
# groups
如果 rtlsdr
组显示出来,则当前用户现在应该能够使用任何通过 ssh
使用 RTL SDR USB 设备的应用程序。
请注意,如果您通过 TTY 或 GUI 登录管理器登录到您的系统,则不必成为 rtlsdr
组的成员。在这种情况下,/usr/lib/udev/rules.d/10-rtl-sdr.rules
配置文件中的 TAG+="uaccess"
部分负责授予您对 RTL SDR USB 设备的访问权限。有关此的更多详细信息,请参见 archlinux/packaging/packages/rtl-sdr#1。
应用
一些使用 RTL-SDR 的流行应用
- gqrx - 一款流行的 SDR 接收器,带有用于 Linux 的瀑布图 GUI
- urh - 用于无线协议调查的完整套件,原生支持许多常见的 SDR
- dump1090-gitAUR - 一款轻量级的 ModeS (1090Mhz) 解码器
- multimon-ng - 一款用于各种数字模式的解码器
- rtl_433 - 协议感知接收器,用于多种 设备。支持自动数据包拦截和协议分析器,用于逆向工程。
- rng-tools - 随机数生成器相关实用程序
- sdrpp-gitAUR - 具有许多功能的 SDR 接收器应用程序。
故障排除
当使用某些调谐器(如通用/无品牌“DVB”设备)时,即使在低增益水平下,信号也可能很容易过载。这是官方 rtl-sdr 软件包 2.0.1 版本开始出现的问题,该版本从 fork 切换到官方 Osmocom 仓库。要解决此问题,必须将软件包 降级 到 0.8.0-6 版本,或者使用 rtl-sdr-librtlsdr-gitAUR 软件包,该软件包指向没有此问题的 fork 仓库。任何使用 rtl-sdr 软件包中库的应用程序都必须针对备用软件包重新构建。