【发布时间】:2016-07-13 19:10:00
【问题描述】:
IBM 有一个 TPM 2.0 模拟器,它通过套接字进行通信。我必须在特定端口连接到本地主机,然后通过该连接发送我的命令。
不过,我希望能够像使用硬件 TPM 一样使用它。所以我想我会写一个内核模块,在/dev/tpm0下为此提供一个字符设备驱动程序。
它基本上是一个代理,它将接收到的所有命令发送到模拟器并转发答案。
我需要sockets 来完成这项任务,并且已经使用我编写的用户模式应用程序成功连接到模拟器。
不过,当将它传输到我编写的驱动程序时,make 文件抱怨说找不到 sys/socket.h。
通过我已经听说的研究,有些库只能在用户模式下使用,我认为sys/socket.h 就是其中之一。
那么它的内核替换是什么?我阅读了很多文章,解释了如何在内核模块中配置服务器,但没有在客户端上。
【问题讨论】:
-
无需编写内核模块。您可以使用
socat命令,例如here 所述。 -
@hek2mgl 你能详细说明一下吗?
标签: c linux sockets linux-kernel kernel-module