将参数传递给内核模块

bof*_*fin 4 linux parameter-passing kernel-module linux-kernel

我有一些使用名为foo.ko. 这必须insmod来自Linux内核。

有没有办法在 insmod 期间将参数传递给内核模块,例如:

insmod foo.ko <parameter>
Run Code Online (Sandbox Code Playgroud)

?

小智 5

您可以通过这种方式在加载时设置任何需要的参数:

insmod param_name=param_value
Run Code Online (Sandbox Code Playgroud)

并以这种方式在您的源代码中设置它:

module_param(param_name, param_type, permission);
Run Code Online (Sandbox Code Playgroud)

支持的参数类型:

int -> integer value
charp -> character pointer
....
Run Code Online (Sandbox Code Playgroud)

权限就像一个面具S_IRUGO,你可能需要检查moduleparam.h