2016-03-25 58 views
0

IBM有一個TPM 2.0模擬器,它通過套接字進行通信。我必須連接到特定端口的locahost,然後通過該連接發送我的命令。替換爲linux內核模塊中的sys/socket.h?

雖然我希望能夠像使用硬件TPM一樣使用它。所以我想我會編寫一個內核模塊,在/dev/tpm0下提供一個字符設備驅動程序。

它基本上是一個代理,它將收到的所有命令發送給模擬器​​並傳遞答案。

我需要socket這個任務,並已成功連接到模擬器與我寫的用戶模式應用程序。

但是,在將此文件傳輸到我寫的驅動程序時,make文件抱怨,找不到sys/socket.h

通過研究,我已經聽說,有些庫只能用於用戶模式,我認爲sys/socket.h就是其中之一。

那麼內核替代它是什麼?我讀了很多文章解釋如何在內核模塊中配置服務器,但客戶端上沒有任何內容。

+0

無需編寫內核模塊。例如,您可以使用'socat'命令,如[這裏](http://serverfault.com/a/384756/166536)所述。 – hek2mgl

+0

@ hek2mgl你能詳細解釋一下嗎? – Minix

回答

0

這應有助於:

樣品TCP服務器在內核上運行:

https://gist.github.com/llj098/752417

+0

我也發現了這個。但它使用舊的'struct msghdr'接口。我認爲'msg_iov'成員在內核> 3.19中不再使用。 – Minix