Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 本地编辑及;构建linux内核嵌入式系统_C_Linux_Linux Kernel_Microcontroller - Fatal编程技术网

C 本地编辑及;构建linux内核嵌入式系统

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

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

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

我希望能够在任何嵌入式设备上设置内核。
欢迎提供更多信息或解释!由于这类事情似乎总是可以用多种方式来完成,这让我感到困惑

我认为前两个步骤与交叉编译没有多大关系。事实上,这归结为在您的系统上正确安装了一个针对您的平台的跨工具链

内核的
CROSS\u COMPILE
make变量除了将其设置为的字符串预先添加到任何工具链命令(例如用于编译的
gcc
)之外,不会做任何其他事情,因此如果您的交叉工具链安装在搜索路径中,则只需添加连字符即可将其设置为所需的字符串,例如,在您的情况下,
CROSS\u COMPILE=arm-linux-gnueabi-
。这将导致使用命令
armlinuxgnueabigcc
进行编译等等


对于其他嵌入式设备,您可能需要不同的跨工具链(取决于它们的体系结构),但一般过程实际上是一样的。

RPI站点上有一个会话