我目前正在构建一个内核模块,该模块在/dev/下创建一个设备,我想在设备文件中存储一些数据。但是,每次我尝试写入设备文件时,都不会将任何内容保存到该特定文件中。
目前,我尝试使用device_write/device_read,但没有成功,因为我正在写的数据在再次运行用户程序后没有保存在内核空间中。我还尝试过使用用户程序中的ioctl调用,以及使用copy_from_user和copy_to_user,但这也不会保存任何数据。
在/dev/中创建一个设备节点并不意味着你有一个可以读/写的设备。它只是一个从用户空间与硬件对话的句柄。如果你正在为一些块设备SD/USB创建驱动程序,你需要参考设备特定的框架。
如果你只是在创建一个虚拟设备,并想实现读/写,你可以在probe和device_write中分配一些内核内存,复制到该内存,在device_read中读取内存的内容。