如何将无线电模块集成到 Linux 网络堆栈

如何将无线电模块集成到 Linux 网络堆栈

我想知道是否可以在 Linux 上的网络堆栈的链路层中添加无线电链路(点对点),以便程序可以使用 TCP/IP 进行通信。

假设与这些设备通信的唯一方法是通过 UART,并且已经完成了必要的无线电配对,是否有更简单的方法可以从用户空间执行此操作?这是一个高级图表,展示了在没有此功能的情况下如何进行通信。

在此输入图像描述

谢谢

答案1

购买力平价协议的开发是为了通过串行连接提供数据链路层。

在Linux中,PPP协议的实现是ppp包,几乎可以肯定它可以作为您使用的任何发行版的包提供。

您可以使用 PPP 守护程序pppd来通过 RF UART 在两个系统之间建立 TCP/IP 链接。


其他替代方案包括,但我认为不再有支持的包实现它,并且AX.25,专为分组无线电使用而设计。许多发行版确实包含 ax.25 软件包,但我对此没有任何经验,因此我无法评论它是否比使用 PPP 更合适或更不合适。


更新

正如 @stephenkitt 提到的,在 Linux 下设置 ax.25 相对容易,但事实证明,除了标准包之外,您可以使用 SLIP util-linux。假设两个系统上的 UART 均可用/dev/ttyS1,则您可以在两个设备上运行:

ldattach SLIP /dev/ttyS1

这将为您提供一个接口sl0,然后您可以像任何其他网络接口一样配置它:

ip addr add 10.9.8.10/24 dev sl0
ip link set sl0 up

相关内容