据我所知,Debian在构建包时使用了几种强化选项。但是,如何找出哪些编译标志用于Debian中的Linux内核和特定的体系结构?
我经常从上游主线源(kernel.org)构建自己的内核包,并且我希望应用与Debian在内核构建中使用的相同或至少类似的强化。目标体系结构是arm (或Debian术语中的armhf ),我在x86-64上进行交叉编译(如果这有任何区别的话)。
发布于 2017-04-09 15:13:35
获取内核的Debian源代码包,并在内核源根目录中获取.config文件。或者,如果您有一个正在运行的系统,您可以在运行时使用cat /proc/config或zcat /proc/config.gz (如果内核支持的话)获得它的配置。或者,使用/boot/config-x
一旦您有了配置(这将告诉内核Makefile要构建哪些组件和构建哪些模块),将其放在您正在构建的内核源代码的根目录中,将其命名为".config“,然后在该目录中运行make old config。然后运行make menuconfig以在必要时进行调整
您可以使用apt-get source linux-source或从Debian或FTP存储库手动下载.deb文件(检查/etc/apt/Sourcees.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 {} \;
https://stackoverflow.com/questions/39006118
复制相似问题