我想在Linux中实现一个具有以太网堆栈的驱动程序,但是硬件上的数据将是一个串行端口。基本上,我想将我的串口注册为以太网驱动程序。有没有人知道这是否可能? 我希望能够将IPv6和/或UDP数据包从串行端口推出,并以类似的方式通过串行端口接收数据包并将其传递到以太网堆栈。
我不想使用串口转以太网转换器(将串口转换为以太网端口的外部硬件)的解决方案,但在我的电脑本身就有。
我在串口尝试了PPP,效果很好。我也被告知我可以使用PPP进行FTP,HTTP等。参考这个 - http://www.faqs.org/docs/Linux-HOWTO/Serial-Laplink-HOWTO.html
我曾尝试使用串行驱动程序从RealTek以太网驱动程序中破解代码但无法取得很大成功。相反,我不知道要么实际做任何有意义的事情。任何建议,指导或教程都会有所帮助。
由于 阿迪亚
答案 0 :(得分:0)
你需要回到关于网络的基础知识,我理解你的问题是:“我有一个串口,我想使用的是以太网链接”。抱歉粉碎你的梦想,但你没有真正的硬件这样做,我会详细说明。
串行连接是一种物理连接,需要3根线(至少)tx,rx和地。在逻辑方面,您有一个IC,它将二进制数据转换为由离散电压范围表示的信号。
以太网是第2层协议,第1层由用于传输信号的技术(同轴电缆,向上传输,光纤等)提供。正如您现在所看到的,您需要一组不同的硬件来转换逻辑以太网帧成为数字流,实际上这就是呼叫成帧。
由于以太网是一种易于使用的协议,因此它已成为许多网络运营商的首选协议,当然最大的一个是PPPoE,您可以通过以太网链路进行PPP会话。当然,这不适用于你的例子,因为你正在尝试相反的事情。
如果您只是在学习并且在世界上有所有时间,您可以尝试通过串行线路编写自己的以太网成帧器。这意味着您需要在驱动程序中实现IEEE802.3,然后您需要序列化数据以将其作为串行线上的位流推送。当然要注意以下缺点:
恕我直言,您可以在设备驱动程序的网络领域中获取更多令人兴奋的项目。例如,您可以尝试购买NIC并从头开始为其开发设备驱动程序,您可以优化某些区域。最后,请记住,大多数以太网实现现在都是在硬件中完成的,因此您不必做任何事情,只需在MAC上填写几个寄存器即可!
答案 1 :(得分:0)