guide.deepin.org/docs/deepin进阶教程/3.系统初始化/3.8.udev系统.md
xzl 7df2468bb7 docs: update docs
更新文档,添加系统启动相关的文档

Log:
2023-02-27 15:12:51 +08:00

44 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 3.8. udev系统
udev是一个用于管理设备节点的守护进程它会根据设备的属性来创建设备节点udev的配置文件位于/etc/udev/目录下
从 Linux 内核 2.6 版开始udev 系统 提供了自动硬件发现和初始化机制。(参见 udev(7)).在内核发现每个设备的基础上udev 系统使用从 sysfs 文件系统 (参见 第 1.2.12 节 “procfs 和 sysfs”)的信息启动一个用户进程,使用 modprobe(8) 程序 (参见 第 3.8.1 节 “内核模块初始化”)加载支持它所要求的内核模块, 创建相应的设备节点。
::: tip
由于某些理由,"/lib/modules/kernel-version/modules.dep"没有被 depmod(8) 正常生成,模块可能不会被 udev 系统按期望的方式加载。执行"depmod -a" 来修复它。
"/etc/fstab"里面的挂载规则,设备节点不必需是静态的。你能够使用 UUID 来挂载设备,来代替"/dev/sda"之类的设备名. 参见 第 9.6.3 节 “使用 UUID 访问分区”.
:::
由于 udev 系统是一个正在变化的事物,我在其它文档进行了详细描述,在这里只提供了最少的信息。
## 3.8.1. 内核模块初始化
通过 modprobe(8) 程序添加和删除内核模块,使我们能够从用户进程来配置正在运行的 Linux 内核。udev 系统(参见 第 3.8 节 “udev 系统”)自动化它的调用来帮助内核模块初始化。
下面的非硬件模块和特殊的硬件驱动模块,需要被预先加载,把它们在"/etc/modules"文件里列出 (参见 modules(5)).
- TUN/TAP 模块提供虚拟的 Point-to-Point 网络设备 (TUN) 和虚拟的 Ethernet 以太网网络设备 (TAP),
- netfilter 模块提供 netfilter 防火墙能力(iptables(8), 第 5.6 节 “Netfilter 网络过滤框架”),
- watchdog timer 驱动模块。
modprobe(8) 程序的配置文件是按 modprobe.conf(5)的说明放在"/etc/modprobes.d/" 目录下,(如果你想避免自动加载某些内核模块,考虑把它们作为黑名单放在"/etc/modprobes.d/blacklist" 文件里.)
"/lib/modules/version/modules.dep" 文件由 depmod(8) 程序生成,它描述了 modprobe(8) 程序使用的模块依赖性.
::: warning 注意
如果你在启动时出现模块加载问题,或者 modprobe(8)时出现模块加载问题, "depmod -a" 可以通过重构"modules.dep"来解决这些问题。
:::
modinfo(8) 程序显示 Linux 内核模块信息。
lsmod(8) 程序以好看的格式展示"/proc/modules"的内容,显示当前内核加载了哪些模块。
::: tip
你能够精确识别你系统上的硬件。 参见第 9.5.3 节 “硬件识别”.
你可以在启动时配置硬件来激活期望的硬件特征。参见 第 9.5.4 节 “硬件配置”.
你可以重新编译内核来增加你的特殊设备的支持。参见 第 9.10 节 “内核”.
:::