Linux kernel 如何在系统启动时加载设备驱动程序?

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

我的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_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