我正在尝试编译自己的内核,但我在理解上遇到了一些问题。
我正在使用 kernel.org 上提供的最新内核。
我目前的问题是:我对需要哪些选项来确保该内核对于armv7(armhf)架构来说是正确的没有任何线索。有没有人有其他来源的列表或链接可以帮助我为arm7编译内核?是的,我之前搜索过这个,但没有找到任何我认为有用的东西。我在我希望运行它的相同架构上编译这个内核(如果这很重要的话)
答案1
如果您在运行的armv7hf机器上编译它,您将自动获得一个armv7hf内核。试试
file <kernel-binary>
这个会告诉你内核是什么类型。如果我没记错的话,硬负载(hf)是在“目标架构”子树中的某个位置选择的。
除此之外,您还可以选择在具有不同架构的主机上构建自己的工具链(交叉编译),并使用该工具链为此目标创建内核和应用程序。
当您想使用选项 2 时,您可能需要查看“buildroot”或其他嵌入式发行版。在 buildroot 下配置内核并构建它。请务必选择正确的编译器以及您要使用的正确的目标体系结构。构建过程之后,buildroot 过程的输出(在目录 output/ 或类似目录下)保存内核、ramimmage、以及当前创建的 kernel/abi 的编译器和所有二进制文件。
祝你好运 !
答案2
通常,主板/SoC 制造商会分发他们自己的 Linux 源代码树分支,其中包含必要的补丁(例如用于视频加速的补丁)。换句话说,您的普通内核不太可能在不进行修改的情况下在您的设备上启动。您可以访问制造商的 wiki/论坛网站,以获得内核源代码的链接以及解释如何从源代码编译自定义内核的简短说明。
例子:
http://odroid.com/dokuwiki/doku.php
http://wiki.solid-run.com/doku.php?id=products:imx6:software:development:kernel