【问题标题】:Network device driver [closed]网络设备驱动程序[关闭]
【发布时间】:2013-04-10 06:02:16
【问题描述】:

我想为基于网络的设备编写 Linux 设备驱动程序。该网络设备只是输入输出控制,并且该设备通过以太网电缆通过以太网端口连接。我该如何编写驱动程序?如何在设备和内核之间传输数据?

【问题讨论】:

  • 谷歌搜索“如何编写以太网设备驱动程序”

标签: network-programming linux-kernel linux-device-driver


【解决方案1】:

如果设备只是通过以太网连接到 Linux 机器,那么您根本不需要编写内核驱动程序 - 用户空间守护程序可以通过 AF_PACKET 套接字地址系列完全访问以太网。有关详细信息,请参阅 packet(7) 手册页。

【讨论】:

  • 感谢您的回复。但我想通过应用程序写入驱动程序访问。
  • 无论您想从以太网驱动程序访问什么,都可以通过套接字调用访问。只强调“套接字编程”。
  • 尝试在内核中为此类硬件编写驱动程序是在尝试将方形钉插入圆孔中。但如果您坚持,您可以启动一个使用AF_PACKET 套接字与硬件对话的内核线程。
  • @jhonnash - 你能否指出他在创建套接字时应该指定的 ipaddress 和端口号是什么?
  • @AbhishekSagar - 这取决于您想通过广播方法为单个客户端服务器或 1 个服务器和多个客户端编写应用程序。根据您的通信模式,您必须选择 IP 地址。
【解决方案2】:

您可以选择 TCP 或 UDP 连接通信。

对于 TCP,您必须选择基于流的传输 但是 UDP 不是一种可靠的通信方式,它比 TCP 更快。

我建议使用 Beginning Linux Programming,它既有理论性又有实践性的反思。

干杯!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-07
    • 2013-03-26
    • 2021-01-18
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多