编写第一个内核模块:交叉编译实战
1. 交叉编译系统设置
在进行内核模块的交叉编译之前,需要满足以下先决条件:
- 目标系统内核源码树 :需要在主机系统(通常是 x86_64 桌面系统)的工作空间中安装目标系统的内核源码树。以树莓派为例,可参考官方文档:https://www.raspberrypi.org/documentation/linux/kernel/building.md 。
- 交叉工具链 :由于主机系统通常是 x86_64,而目标系统是 ARM - 32,所以需要一个 x86_64 到 ARM32 的交叉工具链。这里假设已经安装了 x86_64 到 ARM 的交叉工具链,且工具链前缀为 arm - linux - gnueabihf - 。可以通过以下命令检查工具链是否安装以及其二进制文件是否已添加到路径中:
$ arm - linux - gnueabihf - gcc
arm - linux - gnueabihf - gcc: fatal error: no input files
compilation terminated.
也可以使用 arm - linux - gnueabihf - gcc --version 命令查看编译器版本。
2. 第一次尝试:设置“特殊”环境变量
交叉编译内核模块看似简单,只需正确设置“特殊”的 ARCH 和
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



