如何在Ubuntu中启动时加载自定义模块?

Gon*_*alo 16 linux kernel module linux-kernel

我创建了一个名为Hello.ko的自定义简单模块我使用命令" insmod hello.ko " 安装模块,我用"dmesg"检查它并且它正常工作,但是当我重新启动系统时,我必须手动加载它.那么,如何自动加载我的自定义模块,以及在哪里放置hello.ko?加载模块后,我想显示消息Hello World,直到我按下Enter键.有谁能够帮我?

Bob*_*ohp 18

这种技术在Ubuntu 13.10上不起作用.所以经过一些试验和错误尝试后,我最终得到了这个:

将我的内核模块复制到drivers目录.

$ sudo cp mymodule.ko /lib/modules/$(uname -r)/kernel/drivers/
Run Code Online (Sandbox Code Playgroud)

将模块的简单名称添加到文件/ etc/modules中.您可以编辑该文件或只是附加到该文件,如下所示.

$ echo 'mymodule' | sudo tee -a /etc/modules
Run Code Online (Sandbox Code Playgroud)

更新模块依赖项列表.

$ sudo depmod
Run Code Online (Sandbox Code Playgroud)

重新启动电脑,瞧,它有效.

  • 伟大的!这对我也有用。但我不必将它放在 /kernel/drivers 目录中。我把它放在 /lib/module/$(uname -)/initrd 中。 (2认同)

Swi*_*ind 8

将模块添加到/ etc/modules文件中.

然后将模块放在/ lib/modules/kernelname目录中.

  • 引用此路径的可移植方式是/ lib/modules/\`uname -r \`/ (5认同)