我正在尝试为Linux编写网络设备驱动程序。我拥有的设备具有可用的API,允许我通过存在于用户空间中的共享对象访问我需要的所有功能。Linux内核设备驱动程序需要访问用户空间中的共享对象
我想写一个网络驱动程序,这样我可以使设备显示为CAN接口。但是,为了与设备进行交互,我需要使用用户空间中存在的特定共享对象。
我需要一个网络设备驱动程序的原因是公开一个可以通过SocketCAN实用程序进行交互的CAN接口。
有没有一种方法可以在用户空间中编写网络设备驱动程序?或者什么是我设计解决方案的最佳方式?
铊;博士
需要写一个设备驱动程序,其用于仅可使用用户空间经由供给共享对象暴露所述API交互的装置。我需要将设备显示为网络接口,以便利用SocketCAN实用程序以及与Linux中的CAN接口进行通信的其他应用程序。
我在这里有什么选择?我能做什么?
谢谢!
首先,感谢你这么多的信息和输入。我担心我会因为问这样一个问题而被装瓶。根据我的理解,没有办法从用户空间创建CAN网络设备。它与内核中的任何其他net_device元素基本相同,其中一些标志被更改为CAN设备。我需要做的是创建一个类似于以太网卡或usb-ethernet适配器的net_device,问题是不是通过PCI或USB写入硬件寄存器,而是与设备通信的唯一方式是通过这个SO文件 – Thomas
将我的意见转移到答案上,为我所说的添加了一些内容。 –