我过去曾两次在一个覆盆子pi上以自动方式交叉编译内核。 这种事情有时会让人痛苦......但幸运的是,有一些循序渐进的教程。
所以我想知道是否有必须采取的一般步骤,并且在所有嵌入式系统(rpi,beaglebone,atmega控制器等等)上都是相同的,以便成功交叉编译内核和让一切顺利吗?
我的猜测:
1)下载内核源代码
2)生成一个.config文件(这似乎是必要的)
3)进入蓝屏进行额外的调整 例如:make ARCH = arm CROSS_COMPILE = / usr / bin / arm-linux-gnueabi- menuconfig
4)编译内核: make ARCH = arm CROSS_COMPILE = / usr / bin / arm-linux-gnueabi-
5)把它放在SD卡或其他任何东西上
对于嵌入式系统上的任何交叉编译,这是一个正确的通用方案吗? 抱歉我的无知,正如我上面提到的,我自己学会了。
我希望能够在任何嵌入式设备上设置内核。 任何更多的信息或解释将非常受欢迎!因为看起来这种事情总是可以用多种方式完成,这让我感到困惑。
答案 0 :(得分:0)
我说你的前两个步骤与交叉编译有很大关系。实际上,只需要将交叉工具链定位到正确安装在系统上的平台。
除了将设置的字符串添加到任何工具链命令(例如CROSS_COMPILE
进行编译)之外,内核的gcc
make变量不做任何事情,所以如果你的< em> cross toolchain 安装在您的搜索路径中,只需将其设置为添加了连字符的所需target triplet就足够了,例如在您的情况下CROSS_COMPILE=arm-linux-gnueabi-
。这将导致使用命令arm-linux-gnueabi-gcc
进行编译等。
对于其他嵌入式设备,您可能需要不同的交叉工具链(取决于其架构),但一般过程确实保持不变。