本地编译&构建linux内核嵌入式系统

时间:2015-07-29 18:57:05

标签: c linux linux-kernel microcontroller

我过去曾两次在一个覆盆子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卡或其他任何东西上

对于嵌入式系统上的任何交叉编译,这是一个正确的通用方案吗? 抱歉我的无知,正如我上面提到的,我自己学会了。

我希望能够在任何嵌入式设备上设置内核。 任何更多的信息或解释将非常受欢迎!因为看起来这种事情总是可以用多种方式完成,这让我感到困惑。

1 个答案:

答案 0 :(得分:0)

我说你的前两个步骤与交叉编译有很大关系。实际上,只需要将交叉工具链定位到正确安装在系统上的平台。

除了将设置的字符串添加到任何工具链命令(例如CROSS_COMPILE进行编译)之外,内核的gcc make变量不做任何事情,所以如果你的< em> cross toolchain 安装在您的搜索路径中,只需将其设置为添加了连字符的所需target triplet就足够了,例如在您的情况下CROSS_COMPILE=arm-linux-gnueabi-。这将导致使用命令arm-linux-gnueabi-gcc进行编译等。

对于其他嵌入式设备,您可能需要不同的交叉工具链(取决于其架构),但一般过程确实保持不变。