Linux模块加载流程及如何让系统开机自动加载模块

Linux模块加载

Linux系统加载哪些内核模块,和配置文件有关系。

  1. 模块保存在/lib/modules/下。
  2. 使用/etc/modules-load.d/来配置系统启动时加载哪些模块。
  3. 使用/etc/modprobe.d/下配置模块加载时的一些参数,

也可以利用blacklist来屏蔽模块的自动加载。例如,在安装NVIDIA显卡驱动时,需要屏蔽开源的nouveau驱动,就可以将其加入blacklist

如何添加一个自己编译的模块

  1. 将编译好的.ko模块放到目录/lib/modules/`uname -r`/
  2. 注意特别重要的一步:在命令行输入命令depmod,此命令是用来更新模块启动配置表的,没有depmod这个命令,就无法使用modprobe命令来启动模块。
  3. *.modules文件加可执行权限,我这里这就执行:chmod 755 helloworld.modules

开机自动加载

配置启动时加载哪些内核模块,一般位于/etc/modules-load.d/

比如,对于virtual box虚拟机:

$ cat /etc/modules-load.d/virtualbox.conf
vboxdrv
vboxnetflt
vboxnetadp
vboxpci

目录允许多个配置文件存在并同时生效。例如,anything.conf文件里面就记录了deepin-anything需要加载的模块vfs_monitor

$ cat /usr/lib/modules-load.d/anything.conf
vfs_monitor
  • 10
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统启动流程大致可以分为以下几个步骤: 1. BIOS/UEFI:当计算机开机时,首先执行的是BIOS/UEFI固件程序。它会对硬件进行初始化,检测硬件是否正常,然后读取启动设备的MBR(Master Boot Record)或GPT(GUID Partition Table)分区表。 2. Bootloader:MBR/GPT分区表中存储了引导程序的位置信息。BIOS/UEFI会将控制权交给引导程序,例如GRUB2。引导程序会提供一个菜单,让用户选择要启动的操作系统。 3. Kernel:当用户选择要启动Linux系统时,引导程序会加载内核文件(vmlinuz)。内核负责初始化硬件设备,加载驱动程序,创建进程,管理内存和文件系统等。内核启动后,会挂载根文件系统,通常是ext4文件系统。 4. Initrd/initramfs:在内核启动之前,还需要加载一些必要的驱动程序和文件系统模块。这些驱动程序和模块可以被打包成一个initrd(initial ramdisk)或initramfs(initial RAM filesystem),并通过引导程序加载到内存中。initrd/initramfs中包含了一些必要的工具程序,例如udev,用于自动识别硬件设备。 5. Init:内核启动之后,会执行init程序,它是Linux系统中的第一个进程。init会读取/etc/inittab和/etc/init.d目录中的配置文件和脚本,然后按照配置文件中的要求启动相应的服务。通常情况下,Linux系统中有多个运行级别,每个级别对应不同的服务和进程。 6. 用户登录:当系统启动完成后,会进入登录界面。用户需要输入用户名和密码,然后系统会验证用户身份,如果验证通过,就会进入图形界面或命令行界面。 这些步骤构成了Linux系统的启动流程,不同的发行版可能有细微的差别,但基本流程是相似的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值