Back to Blog

AM5728 linux内核编译方法

#AM5728#内核#编译#linux
  • ARCH=arm 指定目标架构为 ARM,符合 AM5728 的 CPU 类型。
  • CROSS_COMPILE=arm-linux-gnueabihf- 告诉 make 使用前缀为 arm-linux-gnueabihf- 的交叉编译工具链(如 arm-linux-gnueabihf-gcc)。
  • zImage 为压缩后的内核镜像,适用于启动加载器(U‑Boot)加载。
  • -j 32 为并行编译选项,利用 32 个线程加速编译。实际线程数可根据主机 CPU 核数自行调整,过大可能导致资源竞争。

编译完成后,内核镜像位于 arch/arm/boot/zImage。此文件即为可直接用于 AM5728 开发板的内核映像。

2.1 替换 SD 卡中的内核镜像

如果系统采用 SD 卡启动(常见于开发板的快速迭代),有两种方式更新内核:

  1. 直接替换 /boot 目录下的文件

    • 将新生成的 zImage 拷贝到 SD 卡根文件系统的 boot 目录,保持文件名不变(通常为 zImageuImage),覆盖旧文件。
    • 例:cp arch/arm/boot/zImage /media/sdcard/boot/
  2. 重新制作 SD 启动卡

    • 将新镜像放入制作 SD 卡时使用的工作目录(如 sdcard_rootfs/boot/),随后使用 dd 或专用工具重新写入 SD 卡。
    • 这样可以确保启动分区表、文件系统一致性,适合大幅度修改文件结构的场景。

注意:若使用 U‑Boot 启动脚本指定了特定的内核文件名,请确保新文件名与脚本保持一致,否则启动会失败。

3. 编译内核模块

有时我们只需要编译内核配置中选中的可加载模块(*.ko),而不是整个内核映像。执行: