如何使 /sys/module/*/parameters 的更改持久化?

如何使 /sys/module/*/parameters 的更改持久化?

我最近遇到一个问题,启动后,我的键盘无法使用。我需要将其拔出并再次插入才能使用它。
问题是我的 USB 进入自动挂起状态,可以使用echo -1 >/sys/module/usbcore/parameters/autosuspend.

但现在经过一段时间的工作再次/sys/module/usbcore/parameters/autosuspend包含2,我怀疑这是由更新我的内核引起的。

有没有办法让这个参数不随着更新而改变?我读到了有关加载模块并在/etc/modprobe.dor中提供参数的信息/etc/module-load.d,但我找不到有关如何执行此操作的语法。

答案1

这不是由更新内核引起的——它只是由重新启动引起的。/sys不是磁盘上的“真实”文件系统 - 它可以直接访问内核接口,但作为虚拟文件系统公开。因此,当您对这些文件进行更改时,不会在任何地方写入任何永久保存的内容。 (我猜是“文件”。)

当您在某处阅读时,您可以在内核命令行上提供参数。在您上面解释的情况下,那就是usbcore.autosuspend=-1

我们有一个关于在 Fedora Linux 上设置内核命令行参数的文章在 Fedora 杂志上。短篇故事:

 grubby --update-kernel=ALL --args="usbcore.autosuspend=-1" 

然后它会在重新启动(以及所有后续内核升级)后持续存在。

答案2

你应该试试sudo dracut --force。这将重建 initramfs 并在启动时加载它。

编辑: dracut基本上重建 initramfs/initrd 以预加载块设备模块,将存档解压到 RAM 磁盘中,安装并将其用作初始根文件系统。

相关内容