如何将数据保存到设备文件?

时间:2018-11-09 06:31:39

标签: linux linux-device-driver device-driver ioctl

我目前正在构建一个内核模块,该模块在/ dev下创建一个设备,并且我想在该设备文件中存储一些数据。但是,每次我尝试写入设备文件时,都不会将任何内容保存到该特定文件中。

当前,我尝试使用device_write / device_read时没有运气,因为再次运行用户程序后,我写入的数据未保存在内核空间中。我也尝试过使用来自用户程序的ioctl调用,以及使用copy_from_user和copy_to_user,但这也不会保存任何数据。

1 个答案:

答案 0 :(得分:0)

仅通过在/ dev中创建设备节点并不意味着您拥有可以读取/写入的设备。它只是从用户空间与硬件对话的一种方式。如果要为某些块设备SD / USB创建驱动程序,则需要参考设备特定的框架。

如果您只是创建一个虚拟设备并想要实现读/写操作,则只需在探针和device_write中分配一些内核内存,将其复制到该内存中,然后在device_read中读取该内存的内容。