如何用Debian用于强化的相同编译标志编译主线Linux内核?

时间:2016-08-17 20:55:24

标签: linux build compilation kernel

据我了解,Debian在构建软件包时使用了几种加固选项。但是如何找出在Debian和特定架构中使用哪些编译标志用于Linux内核

我经常从上游主线源(kernel.org)构建我自己的内核包,我想应用与Debian用于其内核构建相同或至少类似的强化。目标架构是arm(或Debian术语中的armhf),我在x86-64上进行交叉编译(如果这有任何区别)。

1 个答案:

答案 0 :(得分:0)

获取内核的Debian源包并获取其内核源根目录中的.config文件。或者,如果您有一个正在运行的系统,如果内核支持,通常可以使用cat /proc/configzcat /proc/config.gz在运行时获取其配置。或者,使用/ boot / config-x-y-z

一旦你有了配置(这告诉内核Makefile要在内核中构建哪些组件以及要构建哪些模块)将它放在你正在构建的内核源的根目录中,将其命名为“.config”然后运行该目录中的make old config。然后运行make menuconfig以在必要时进行调整

您可以使用apt-get source linux-source获取内核源代码包,也可以从Debian HTTP或FTP存储库手动下载.deb文件(查看/etc/apt/sources.list中的内容)

如果你得到原始.deb文件,有一些工具可以将.deb转换为tar球然后你可以提取,或.deb实际上可能已经是一个tgz格式文件(我不记得了)你可以使用tar xvzf linux-image-x-y-z.deb

如果使用apt-get sourceapt-get完成后,您将在工作目录中找到tarball。可以使用tar

以相同的方式提取这些内容

这将为您提供配置选项。要获得编译时标志,您应该使用相同的提取的.deb源包或tarball,并查看平面文本文件,以在执行构建的文件中查找CFLAGSLDFLAGS。试试find . -type f -exec grep -Hn CFLAGS {} \;