linux - 我可以在 INSMOD 或 MODPROBE 期间将参数传递给驱动程序吗?

标签 linux linux-kernel linux-device-driver

我目前写了一个 USB 设备驱动程序,我在其中从 probe() 函数创建了一个 Kthread。通用的 kthread_create() 函数在最不忙的 CPU 上创建线程。

我想做的是在特定 CPU 上创建 kthread (kthread_create_on_cpu()),这样我就可以将单独的核心分配给处理输出设备的设备线程。
如何在加载模块/驱动程序时将 CPU 编号传递给模块。

要么我可以使用一个全局变量,该变量将在系统启动时设置一次并由驱动程序读取,或者在加载时将 CPU 编号传递给模块。

请建议使用和实现哪种方法更可行。

感谢和问候,
Mitesh G

最佳答案

您可以传递命令行参数。为此,您必须在模块中添加 module_parammodule_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/

相关文章:

linux:写入文件的数据是否保证对其他进程可见?

linux-kernel - 在 Linux 中如何禁止代码在堆中执行

linux - Linux 中的中断处理。中断共享

linux-kernel - 英特尔处理器 : "If CPUID.06H:EAX.[7] = 1" Meaning?

linux - 找出哪个进程正在使用共享内存

linux - exec 函数系列内部如何工作?

linux - 如何从 "#34 PREEMPT Mon Mar 25 14:24:26 SGT 2013"中检索 34

linux - 自旋锁原子上下文期间的抢占和休眠

ubuntu - 构建一个 i2c 设备 Controller

linux - dnsmasq - 每个 macaddress 的不同 tftp-root