Sop*_*rez 2 linux startup drivers modprobe
我已经成功安装了一些以太网卡(这里有完整的故事),根据文档,必须手动启动:
# modprobe e1000bp
Run Code Online (Sandbox Code Playgroud)
我希望在启动时执行此驱动程序启动。
实现这一目标的正确方法是什么?
我想将命令添加到/etc/rc.local,但对于 PPTP 或 OpenVPN 连接,还有另一种方法应该更干净,所以我想知道是否可以将相同的方法告知驱动程序启动。
在 Debian 和衍生产品(Ubuntu、Mint、elementary 等)上,/etc/modules(每行一个,您可以指定参数)中列出的模块在启动时加载。
在基于 systemd 的系统上,/etc/modules-load.d/*.conf(每行一个)中列出的模块在启动时加载。
但是,您通常不需要显式加载模块。对于大多数硬件,Linux 会自动检测硬件并加载相应的模块。Linux 通过存储在其中的数据库找到正确的模块,该数据库由模块源代码中的声明填充。这个答案解释了整个过程。/lib/modules/VERSION/modules.alias
将.ko您编译的文件放在某个地方(无论如何您都需要这样做才能找到它)并以 root 身份运行。这将更新数据库。之后,模块将在启动期间自动加载,当内核检测到硬件时(或者更确切地说,当模块加载过程开始时,因为硬件在启动时被早期检测到)。/lib/modules/VERSION/modprobedepmod -amodules.aliases
如果您的发行版提供的模块也支持您的硬件,但发行版的驱动程序有问题,那么我认为没有一种简单的方法可以强制使用其中一个模块。在这种情况下,您应该添加您编译到/etc/modules的模块,并通过在.blacklist MODULE_NAME/etc/modprobe.conf
| 归档时间: |
|
| 查看次数: |
11958 次 |
| 最近记录: |