模块被忽略

Tom*_*cer 1 bbswitch drivers

/etc/modules includes

bbswitch load_state=0
Run Code Online (Sandbox Code Playgroud)

每次bbswitch都没有加载,我必须手动:

sudo modprobe bbswitch
Run Code Online (Sandbox Code Playgroud)

然后运行bbswitch命令切换显卡。

为什么不尊重load_state=0

Tho*_*mas 5

在不知道您使用的是什么发行版的情况下,以下内容至少适用于 Ubuntu 16.04 和 18.04,因为 Ubuntusystemd从 16.04 开始使用。

旧的模块加载器脚本/etc/init.d/kmod允许将模块选项放入/etc/modules. systemd确实用自己的服务替换了这个脚本systemd-modules-load.service。新方法不允许将模块选项放入/etc/modules并且只接受每行的模块名称。
如果你调用/etc/init.d/kmod它不会执行脚本而是调用systemd服务systemd-modules-load.service。此外,最好习惯systemd一下,因为旧的 sys-v init 脚本不太可能卷土重来,而是完全被替换。

但是,如果要bbswitch使用一组选项加载模块,则必须执行以下步骤。

在启动时加载模块。

root@localhost:~# echo "bbswitch" >> /etc/modules
Run Code Online (Sandbox Code Playgroud)

将您的选项放入一个/etc/modprobe.d文件中,每次加载模块时都会执行该文件。所以这应该更好地定义模块参数。因此,创建文件/etc/modprobe.d/bbswitch.conf并按如下方式放入行中。

root@localhost:~# cat /etc/modprobe.d/bbswitch.conf
options bbswitch load_state=0
Run Code Online (Sandbox Code Playgroud)