C 本地编辑及;构建linux内核嵌入式系统
在过去,我曾两次在一个树莓pi上以自动教导的方式交叉编译过一个内核。 这种事情有时会让人感到痛苦。。。但幸运的是,这里有一些循序渐进的教程 所以我想知道,为了成功地交叉编译内核并使一切正常工作,是否必须采取一些通用步骤,并且在所有嵌入式系统(rpi、beaglebone、atmega控制器等)上都是相同的 我猜: 1) 下载内核源代码 2) 生成一个.config文件(这似乎是必要的) 3) 进入蓝色屏幕进行额外调整 例如:make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi-menuconfig 4) 编译内核: 使ARCH=arm交叉编译=/usr/bin/arm-linux-gnueabi- 5) 把它放在SD卡或其他任何东西上 对于嵌入式系统上的任何交叉编译,这是正确的通用方案吗? 对不起,我的无知,正如我上面提到的,这是我自己学会的 我希望能够在任何嵌入式设备上设置内核。C 本地编辑及;构建linux内核嵌入式系统,c,linux,linux-kernel,microcontroller,C,Linux,Linux Kernel,Microcontroller,在过去,我曾两次在一个树莓pi上以自动教导的方式交叉编译过一个内核。 这种事情有时会让人感到痛苦。。。但幸运的是,这里有一些循序渐进的教程 所以我想知道,为了成功地交叉编译内核并使一切正常工作,是否必须采取一些通用步骤,并且在所有嵌入式系统(rpi、beaglebone、atmega控制器等)上都是相同的 我猜: 1) 下载内核源代码 2) 生成一个.config文件(这似乎是必要的) 3) 进入蓝色屏幕进行额外调整 例如:make ARCH=arm CROSS_COMPILE=/usr/bin
欢迎提供更多信息或解释!由于这类事情似乎总是可以用多种方式来完成,这让我感到困惑 我认为前两个步骤与交叉编译没有多大关系。事实上,这归结为在您的系统上正确安装了一个针对您的平台的跨工具链 内核的
CROSS\u COMPILE
make变量除了将其设置为的字符串预先添加到任何工具链命令(例如用于编译的gcc
)之外,不会做任何其他事情,因此如果您的交叉工具链安装在搜索路径中,则只需添加连字符即可将其设置为所需的字符串,例如,在您的情况下,CROSS\u COMPILE=arm-linux-gnueabi-
。这将导致使用命令armlinuxgnueabigcc
进行编译等等
对于其他嵌入式设备,您可能需要不同的跨工具链(取决于它们的体系结构),但一般过程实际上是一样的。RPI站点上有一个会话