由于多种原因,我需要为标准的 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>
发布名称的工作内核包。