wifi 驱动程序如何暴露给用户空间?

wifi 驱动程序如何暴露给用户空间?

我正在探索 wifi 管道如何在 Raspberry pi 3 上从驱动程序开始向上工作。

我已经确定了以下负责使用 wifi 芯片的驱动程序:

$ lsmod
...
brcmfmac              186403  0 
brcmutil                5661  1 brcmfmac
cfg80211              428871  1 brcmfmac

我的下一步是找到一个与任何驱动程序相关的设备文件,然后我将检查lsof哪个用户空间应用程序保存该文件。

一旦我发现没有与上述任何驱动程序相关的设备文件,该方法就失败了。使用下面的命令。

/dev $ find . ! -type d -exec sh -c "echo {};  udevadm info -a -n {} | grep DRIVERS" \;

我的问题是,是否还有其他选项可以在 Linux 中连接不通过设备文件的设备驱动程序?

答案1

Linux 中是否有其他不通过设备文件连接设备驱动程序的选项?

是的,网络设备在 /dev 中没有设备文件,或者使用读/写文件操作,因为它们不仅仅响应来自内核空间的调用 - 它们还响应网络流量,因此它们的一组操作不同。这与字符设备和块设备有联系,它们确实具有文件设备节点。

网络设备使用套接字和套接字缓冲区进行通信,主要使用的调用有socket()、bind()、listen()、accept()、read()、write()和close()。网上有大量关于它们的信息,(现在相当旧)Linux Device Drivers 3 (LDD3) 一书是很好的介绍,并且可以在线免费获取。

相关内容