Linux kernel 如何在系统启动时加载设备驱动程序?
我的hello world设备:Linux kernel 如何在系统启动时加载设备驱动程序?,linux-kernel,linux-device-driver,Linux Kernel,Linux Device Driver,我的hello world设备: #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { printk(KERN_ALERT "hello world\n"); return 0; } static void hello_exit(void) { printk(KERN_ALER
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void) {
printk(KERN_ALERT "hello world\n");
return 0;
}
static void hello_exit(void) {
printk(KERN_ALERT "goodbye world\n");
}
module_init(hello_init);
module_exit(hello_exit);
#包括
#包括
模块许可证(“双BSD/GPL”);
静态int hello_init(void){
printk(KERN_警报“hello world\n”);
返回0;
}
静态void hello_退出(void){
printk(KERN_ALERT“再见世界”\n);
}
模块_init(hello_init);
模块退出(你好退出);
如何使驱动程序在启动期间自动加载
我可以使用
insmod
手动成功加载它,但我希望它在重新启动后自动加载。我需要使用Kbuild
并在make menuconfig
中选择它,还是用其他方法进行选择?在/lib/modules/
中安装模块
如果在Debian/Ubuntu系统上,则将模块名称添加到
/etc/modules
,如果在RH/Fedora/CentOS系统上,则将模块名称添加到/etc/modules.conf
,如果在基于systemd的系统上,则存在/lib/systemd/system/systemd modules load.service
哪个
有关该systemd服务使用的目录列表,请参阅
您只需添加一个.conf文件,其中包含要在引导时加载的模块的名称。模块必须正确安装在
/lib/modules
下,并可使用modprobe
cat:/etc/modules:无此类文件或目录
(Fedora 20,64位)ls:无法访问/etc/modules.conf:无此类文件或目录
奇怪!你能试着创造一个吗。或者我会删除这个答案,试着创建/etc/modules.conf并在那里添加你的模块名。
[...] reads files from the above directories
which contain kernel modules to load during
boot in a static list