如何添加自定义内核风格?

如何添加自定义内核风格?

由于多种原因,我需要为标准的 x86 Ubuntu 16.04 系统构建自定义内核。以下这些说明,我通过以下调用成功构建了我需要的软件包套件:

fakeroot debian/rules binary-headers binary-generic binary-perarch skipdbg=false do_tool=true

但是,作为这项工作的下一步,我正在考虑做一些事情,例如减少不需要的驱动程序的数量,包括一些我目前使用 dh_dkms 包安装的补丁等。我觉得即使对于我自己的使用,如果这些更改可以在内部发布,最好不是使用标准的“通用”名称,而是使用特定于我公司半嵌入式用例的新风格/配置。

不过,我发现 Ubuntu 内核存储库(例如 git://kernel.ubuntu.com/ubuntu/ubuntu-disco.git)有点难以导航,并且它似乎与 Debian 的做法有很大不同,以至于他们关于内核构建的文档也不是很有用。

所以我的问题是:这个 repo 中定义的风格及其配置(或配置默认值)在哪里?它看起来可能在 中debian.master/control.d/vars.<flavourname>,但在那里添加新文件并没有使binary-<flavourname>构建目标可用,也没有改变任何行为方式fakeroot debian/rules editconfigs

谢谢。

答案1

最终发现并不太难。对于未来的旅行者,需要创建这些文件——首先以generic相同目录中的文件为基础:

  • debian.master/config/amd64/config.flavour.<flavour>
  • debian.master/control.d/<flavour>.inclusion-list
  • debian.master/control.d/vars.<flavour>

然后,以下两个文件需要进行细微的编辑,以指定仅构建 archamd64和新的风格名称(而不是generic lowlatency):

  • debian.master/etc/kernelconfig
  • debian.master/rules.d/amd64.mk

通过这些更改,您可以:

fakeroot debian/rules genconfigs
fakeroot debian/rules binary skipabi=true skipmodule=true skipretpoline=true skipdbg=true

您将获得一套带有x.y.z-<flavour>发布名称的工作内核包。

相关内容