据我了解,Debian在构建软件包时使用了几种加固选项。但是如何找出在Debian和特定架构中使用哪些编译标志用于Linux内核?
我经常从上游主线源(kernel.org)构建我自己的内核包,我想应用与Debian用于其内核构建相同或至少类似的强化。目标架构是arm(或Debian术语中的armhf),我在x86-64上进行交叉编译(如果这有任何区别)。
答案 0 :(得分:0)
获取内核的Debian源包并获取其内核源根目录中的.config文件。或者,如果您有一个正在运行的系统,如果内核支持,通常可以使用cat /proc/config
或zcat /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 source
,apt-get
完成后,您将在工作目录中找到tarball。可以使用tar
这将为您提供配置选项。要获得编译时标志,您应该使用相同的提取的.deb源包或tarball,并查看平面文本文件,以在执行构建的文件中查找CFLAGS
和LDFLAGS
。试试find . -type f -exec grep -Hn CFLAGS {} \;