Linux驱动程序和系统文件
因此,我一直在阅读Linux API(syscalls和libc)以及设备ioctl,通过Linux驱动程序和系统文件,linux,linux-kernel,linux-device-driver,ioctl,sysfs,Linux,Linux Kernel,Linux Device Driver,Ioctl,Sysfs,因此,我一直在阅读Linux API(syscalls和libc)以及设备ioctl,通过create(dev_name)和ioctl(device_file_handle)和sysfs文件系统调用ioctl。下面是我的问题: sysfs“应该”是只读的吗?在这里,各种内核参数都被公开以供读取?或者它们“应该”也是可写的 将来是否需要所有驱动程序在sysfs中公开接口 如果上面的答案是正确的,那么我们真的需要IOCTL调用了吗?因为我们需要做的只是改变sysfs中一些文件的值, e、 例如,要在
create(dev_name)
和ioctl(device_file_handle)
和sysfs
文件系统调用ioctl。下面是我的问题:
sysfs
中公开接口echo 1> /sysfs/D1/IOCTLS/DO_SOMETHING ( or something like that ... :) )
echo 1> /sysfs/libc/get_system_time
cat /sysfs/libc/results/system_time
这样做是个好主意吗请查看我对您的问题的在线回复: 1) 我们可以通过sysfs执行读写操作;同样,这取决于你的要求 2) 我不这么认为;sysfs和ioctl都有自己的优势,因此不能用相同的方式对两者进行比较 3) 这不是真的 4) sysfsapi(show和storeapi)已经公开给用户空间。您可以从用户空间调用这些API
5) 可能是,;但是我不确定。1->没有任何系统也可以为write实现。用户可以这样使用它。回显“Hello”>/sys/devices/***/sysfs\u条目 2->不,我认为大多数与平台相关的驱动程序都会打开sysfs接口 3->以上问题的答案为否。我们还需要IOCTL 4->我相信只有包含某些功能的有用API才会作为sysfs条目公开。例如,驱动程序后面的设备有100个寄存器。每个寄存器都不作为sysfs条目公开。但是,如果有3-4个特性涉及这些寄存器,那么这些特性将作为sysfs条目公开。这些条目不应导致错误数据出现任何错误/恐慌。这一责任在开发商身上 不知道 不知道