使用 shell 脚本或 systemd(fedora) 服务控制模块加载顺序?

使用 shell 脚本或 systemd(fedora) 服务控制模块加载顺序?

使用带有 systemd 的 Ubuntu 12.04(默认)。我有一个 Broadcom 4312 无线卡,需要“wl”驱动程序和使用“b44”“ssb”模块的 Broadcom NIC。现在的问题是,启动时无线网卡无法正常工作。为此,我必须删除所有相关模块,即。 wl、b44、ssb 等稍后,如果我 modprobe wl;modprobe b44 - 两个设备(无线和网卡)都工作正常。那么,如何修改内核模块加载顺序,使“wl”首先加载,然后加载“b44”?是否值得使用 /etc/modprobe.d/aliases.conf 为模块添加别名? 或者运行一个本质上运行的 shell 脚本启动结束时运行命令:

modprobe -r wl b44 ssb
wait 5 (to complete)
modprobe wl 
wait 2
modprobe b44 

我不知道编写 systemd 或自动启动脚本。如果脚本有效,那就是最好的选择。

答案1

来自我的朋友谷歌,他指出https://bbs.archlinux.org/viewtopic.php?id=148170:

/usr/lib/systemd/system/rc-local.service

[Unit]
Description=/etc/rc.local Compatibility
After=network.target

[Service]
Type=oneshot
ExecStart=-/etc/rc.local
#ExecStart=-/pathtoyour/script1
#ExecStart=-/pathtoyour/script2
TimeoutSec=0
StandardInput=tty
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

要启用,请运行

systemctl enable rc-local

运行它(如果启用它则不会自动完成)

systemctl start rc-local

您可以使用 ExecStart 行添加自己的脚本。您可以在 /etc/rc.local 或您自己的脚本中执行 modprobe-magic。

相关内容