写一个简单的Linux2.6内核模块

您的内核必须已经启用这些选项进行了编译:

	Loadable module support  --->

  [*] Enable loadable module support
  [*]   Module unloading
  [ ]   Module versioning support (EXPERIMENTAL)
  [*]   Automatic kernel module loading

如果按照第一篇教程中的说明编译内核,那么就已经正确地设置了这些选项。否则,修改这些选项,重新编译内核,并引导到新内核。

 

引导模块时,可以向它传递参数。要使用模块参数加载模块,这样写:

	insmod module.ko [param1=value param2=value ...]

为了使用这些参数的值,要在模块中声明变量来保存它们,并在所有函数之外的某个地方使用宏

MODULE_PARM(variable, type)

MODULE_PARM_DESC(variable, description)

来接收它们。

type

参数应该是一个格式为

[min[-max]]{b,h,i,l,s}

字符串,其中 min 和 max 是数组的长度限度。如果两者都忽略了,则默认为 1。最后一个字符是类型说明符:

	b       byte
h       short
i       int
l       long
s       string

可以在 MODULE_PARM_DESC 的 description 域中添加任何需要的说明符。