8. 关于模块参数

比较传递给 LKM 的参数和传递给绑定到基础内核的模块的参数是很有用的,尤其因为模块通常可以以这两种方式运行。

我们在上面已经看到,你可以通过指定类似下面的内容将参数传递给 LKMio=0x300insmod 命令中。 对于绑定到基础内核的模块,您可以通过内核启动参数将参数传递给它。 指定内核启动参数的一种常见方法是在 lilo 启动提示符下。 另一种方法是使用appendlilo 配置文件中的语句。

内核在您加载 LKM 时对其进行初始化。 它在启动时初始化绑定模块。

由于只有一个内核启动参数字符串,您需要在该字符串中找到某种方法来识别哪些参数传递给哪些模块。 规则是,如果有一个名为xyz的模块,那么一个名为xyz的内核启动参数是给该模块的。 内核启动参数的值是一个任意字符串,它只对该模块有意义。

这就是为什么您有时会看到一个 LKM,其唯一的参数是它自己的名字。 例如,您可以使用如下命令加载 Mitsumi CDROM 驱动程序

  insmod mcd mcd=0x340
将参数命名为mcd而不是,例如,io,但这这样做是为了与您绑定mcd到基础内核的情况保持一致,在这种情况下,您将使用字符选择 I/O 端口地址mcd=0x340在内核启动参数中。