gpt4 book ai didi

linux-kernel - 如何为 "unknown"嵌入式 ARM 系统生成内核头文件?

转载 作者:行者123 更新时间:2023-12-01 10:49:40 32 4
gpt4 key购买 nike

我有一个(旧的)嵌入式系统,我想为其编译程序。我没有工具链,所以我想创建一个。

嵌入式系统有一个“ARM926EJ-S rev 5 (v5l)”CPU,“cat/proc/version”说它运行“Linux version 2.6.20.7”和GCC 4.0.2。

我听说我必须在构建过程中包含内核头文件。我从 kernel.org 下载 Linux 内核版本 2.6.20,提取所有文件并运行“make headers_install ARCH=arm INSTALL_HDR_PATH=~/headers”。这是正确的方法还是我需要特定内核的头文件?

最佳答案

解压内核。
make mrpropermake ARCH=${arch} headers_check
例如 make ARCH=arm headers_checkmake ARCH=${CLFS_ARCH} INSTALL_HDR_PATH=dest headers_install
这是从内核获取头文件的步骤。

内核头文件的目的是-->C 库和编译后的程序需要与内核交互
即对于可用系统调用及其编号、常量定义、数据结构等。
因此,编译 C 库需要内核头文件,许多应用程序也需要它们。
do I need the header files of the specific kernel?kernel-to-userspace ABI向后兼容

--> 1) 使用内核通过工具链生成的二进制文件 headers older
than the running kernel will work without problem
,但是 won't
be able
使用 new system calls, data structures,等等。

-->2) 使用内核头文件通过工具链生成的二进制文件 newer如果他们不使用正在运行的内核可能会工作
最近的功能,否则他们will break .

--->3) 使用 latest内核头文件是 not necessary , 除非访问
需要新的内核功能

所以在你的情况下内核版本是 "Linux version 2.6.20.7"
您可以使用 Linux 内核版本的内核头文件 2.6.202.6.21来自 kernel.org。

在这种情况下不会造成任何问题。

关于linux-kernel - 如何为 "unknown"嵌入式 ARM 系统生成内核头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21740619/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com