从Linux设备驱动程序打开设备文件
我有一个Linux设备驱动程序,需要操作另一个设备驱动程序。具体来说,我需要打开设备文件并不时调用从Linux设备驱动程序打开设备文件,linux,linux-kernel,linux-device-driver,Linux,Linux Kernel,Linux Device Driver,我有一个Linux设备驱动程序,需要操作另一个设备驱动程序。具体来说,我需要打开设备文件并不时调用ioctl 我已经读过关于sys\u open,sys\u ioctl等的书,但我不确定这是不是一条路。有没有更好的方法来做我想做的事 如果我继续使用sys\u open,sys\u ioctl等,如何确保我需要打开的设备的驱动程序在我自己的设备驱动程序之前已初始化?open+ioctl就足够了。您可以使用sysfs或procfs,它们都是简单的接口,但功能强大 为了确保模块加载,如果您不想从用户空
ioctl
我已经读过关于sys\u open,sys\u ioctl
等的书,但我不确定这是不是一条路。有没有更好的方法来做我想做的事
如果我继续使用
sys\u open
,sys\u ioctl
等,如何确保我需要打开的设备的驱动程序在我自己的设备驱动程序之前已初始化?open+ioctl就足够了。您可以使用sysfs或procfs,它们都是简单的接口,但功能强大
为了确保模块加载,如果您不想从用户空间程序加载,请使用“request_module”从您的模块加载模块,如下所述
int your_module_init (void)
{
request_module("<module_name>");
return 0;
}
int您的_模块_init(void)
{
请求_模块(“”);
返回0;
}
或者在modprobe的情况下,在模块之间创建相互依赖关系,这样驱动程序模块将首先加载。是否可以将
request\u模块
也用于编译到内核中的驱动程序?或者仅针对模块(顾名思义),request_模块在内部使用/sbin/modprobe加载模块。您只需更新modules.dep即可。签出过程条目/proc/sys/kernel/modprobe