Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Linux设备驱动程序打开设备文件_Linux_Linux Kernel_Linux Device Driver - Fatal编程技术网

从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,它们都是简单的接口,但功能强大 为了确保模块加载,如果您不想从用户空

我有一个Linux设备驱动程序,需要操作另一个设备驱动程序。具体来说,我需要打开设备文件并不时调用
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