当没有初始化函数时,内核模块会加载吗?
Will the Kernel module load when there is no initialization function?
第一次写驱动代码。我检查了许多资源,这些资源指出内核模块的初始化函数是 init_module() 或使用 MODULE_INIT() 宏指定的任何其他函数。并且在加载内核模块时调用此初始化函数。
但是我找不到任何关于当可加载内核模块中不存在初始化函数并尝试加载时会发生什么的信息。
如果内核模块是in-tree,没有初始化函数会是什么场景??
---提前致谢..
在例程do_init_module
中,测试是否提供了init例程。如果不是,它只是跳过调用。参见 https://elixir.bootlin.com/linux/v3.10.108/source/kernel/module.c#L3092
if (mod->init != NULL)
ret = do_one_initcall(mod->init);
第一次写驱动代码。我检查了许多资源,这些资源指出内核模块的初始化函数是 init_module() 或使用 MODULE_INIT() 宏指定的任何其他函数。并且在加载内核模块时调用此初始化函数。
但是我找不到任何关于当可加载内核模块中不存在初始化函数并尝试加载时会发生什么的信息。
如果内核模块是in-tree,没有初始化函数会是什么场景??
---提前致谢..
在例程do_init_module
中,测试是否提供了init例程。如果不是,它只是跳过调用。参见 https://elixir.bootlin.com/linux/v3.10.108/source/kernel/module.c#L3092
if (mod->init != NULL)
ret = do_one_initcall(mod->init);