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

mik*_*vis 3 compiling kernel linux-headers

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

fakeroot debian/rules binary-headers binary-generic binary-perarch skipdbg=false do_tool=true
Run Code Online (Sandbox Code Playgroud)

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

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

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

谢谢。

mik*_*vis 5

最后发现并不太难。对于未来的旅行者,需要创建这些文件\xe2\x80\x94,首先将它们基于generic同一目录中的文件:

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

然后,以下两个文件需要进行少量编辑,以指定仅构建amd64arch 和新风味名称(而不是generic lowlatency):

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

通过这些更改,您可以:

\n\n
fakeroot debian/rules genconfigs\nfakeroot debian/rules binary skipabi=true skipmodule=true skipretpoline=true skipdbg=true\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n