我目前写了一个 USB 设备驱动程序,我在其中从 probe() 函数创建了一个 Kthread。通用的 kthread_create() 函数在最不忙的 CPU 上创建线程。
我想做的是在特定 CPU 上创建 kthread (kthread_create_on_cpu()),这样我就可以将单独的核心分配给处理输出设备的设备线程。
如何在加载模块/驱动程序时将 CPU 编号传递给模块。
要么我可以使用一个全局变量,该变量将在系统启动时设置一次并由驱动程序读取,或者在加载时将 CPU 编号传递给模块。
请建议使用和实现哪种方法更可行。
感谢和问候,
Mitesh G
最佳答案
您可以传递命令行参数。为此,您必须在模块中添加 module_param
或 module_param_array
。
当然可以根据您的要求在您的模块中添加这些行
int myintdata = 100;
module_param(myintdata, int, 0);
char mychardata = 'A';
module_param(mychardata, char, 0);
int myarray[2];
module_param_array(myarray, int, NULL, 0);
静态字符 *名称;
module_param(name, charp, 0);
//这里你必须提到 charp 作为数据类型
或module_param_string(name, string, len, perm);
for String
插入模块时
insmod module_name.ko myintdata=5 mychardata = 'X' name= "xyz"myarray =99,100
`
关于linux - 我可以在 INSMOD 或 MODPROBE 期间将参数传递给驱动程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23425998/