Laura Abbott 发布的文章

在调试或试验内核时,向内核命令行添加选项是一项常见任务。即将发布的 Fedora 30 版本改为使用 Bootloader 规范(BLS)。根据你修改内核命令行选项的方式,你的工作流可能会更改。继续阅读获取更多信息。

要确定你的系统是使用 BLS 还是旧的规范,请查看文件:

/etc/default/grub

如果你看到:

GRUB_ENABLE_BLSCFG=true

看到这个,你运行的是 BLS,你可能需要更改设置内核命令行参数的方式。

如果你只想修改单个内核条目(例如,暂时解决显示问题),可以使用 grubby 命令:

$ grubby --update-kernel /boot/vmlinuz-5.0.1-300.fc30.x86_64 --args="amdgpu.dc=0"

要删除内核参数,可以传递 --remove-args 参数给 grubby

$ grubby --update-kernel /boot/vmlinuz-5.0.1-300.fc30.x86_64 --remove-args="amdgpu.dc=0"

如果有应该添加到每个内核命令行的选项(例如,你希望禁用 rdrand 指令生成随机数),则可以运行 grubby 命令:

$ grubby --update-kernel=ALL --args="nordrand"

这将更新所有内核条目的命令行,并保存作为将来条目的命令行选项。

如果你想要从所有内核中删除该选项,则可以再次使用 --remove-args--update-kernel=ALL

$ grubby --update-kernel=ALL --remove-args="nordrand"

via: https://fedoramagazine.org/setting-kernel-command-line-arguments-with-fedora-30/

作者:Laura Abbott 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

每个 Fedora 系统都运行着一个内核。许多代码片段组合在一起使之成为现实。

每个 Fedora 内核都起始于一个来自于上游社区的基线版本——通常称之为 vanilla 内核。上游内核就是标准。(Fedora 的)目标是包含尽可能多的上游代码,这样使得 bug 修复和 API 更新更加容易,同时也会有更多的人审查代码。理想情况下,Fedora 能够直接获取 kernel.org 的内核,然后发送给所有用户。

现实情况是,使用 vanilla 内核并不能完全满足 Fedora。Vanilla 内核可能并不支持一些 Fedora 用户希望拥有的功能。用户接收的 [Fedora 内核] 是在 vanilla 内核之上打了很多补丁的内核。这些补丁被认为“ 不在树上 out of tree ”。许多这些位于补丁树之外的补丁都不会存在太久。如果某补丁能够修复一个问题,那么该补丁可能会被合并到 Fedora 树,以便用户能够更快地收到修复。当内核变基到一个新版本时,在新版本中的补丁都将被清除。

一些补丁会在 Fedora 内核树上存在很长时间。一个很好的例子是,安全启动补丁就是这类补丁。这些补丁提供了 Fedora 希望支持的功能,即使上游社区还没有接受它们。保持这些补丁更新是需要付出很多努力的,所以 Fedora 尝试减少不被上游内核维护者接受的补丁数量。

通常来说,想要在 Fedora 内核中获得一个补丁的最佳方法是先给 Linux 内核邮件列表(LKML) 发送补丁,然后请求将该补丁包含到 Fedora 中。如果某个维护者接受了补丁,就意味着 Fedora 内核树中将来很有可能会包含该补丁。一些来自于 GitHub 等地方的还没有提交给 LKML 的补丁是不可能进入内核树的。首先向 LKML 发送补丁是非常重要的,它能确保 Fedora 内核树中携带的补丁是功能正常的。如果没有社区审查,Fedora 最终携带的补丁将会充满 bug 并会导致问题。

Fedora 内核中包含的代码来自许多地方。一切都需要提供最佳的体验。


via: https://fedoramagazine.org/makes-fedora-kernel/

作者:Laura Abbott 译者:ChrisLeeGit 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出