搭建JZ2440最小系统(二)linux内核准备及编译
1. 内核下载地址
linux内核网站,可以拿到最新的和最近的稳定版本内核: https://www.kernel.org/
通过网站下载压缩包后解压或者使用git下载到本地: git clone https://git.kernel.org/
2. 准备编译
配置工具链:
下载后的压缩包放到linux上进行解压,或者使用git下载完成后进入linux主目录
由于编译后准备使用在JZ2440的开发板上,因此需要将交叉编译工具连的信息写到makefile中,将主目录下Makefile的以下两项修改
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabi-
高版本的liunx内核可能没有CROSS_COMPILE,自行添加上就好。
加载编译配置:
因为要位JZ2440使用,因此在config文件夹下找寻最相似的文件进行配置
根目录下执行: make s3c2410_defconfig
这会将基本配置项写道根目录下的.config文件中,这个文件也就是执行make的时候加载的配置项,同时可以执行make menuconfig对加载后的配置进行手工修改
进行编译:
由于使用uboot做启动,因此编译的时候需要编译出uImage文件,在4.20版本下uImage的加载地址需要自己指定,这个需要配套结合uBoot的设定进行修改,我在UBoot中设定的内核加载地址是0x30108000,因此执行以下命令进行编译
make uImage LOADADDR=0x30108000
等待编译完成即可在arch/arm/boot下找到生成的uImage了
编后语:
这里只是基本的编译流程,这么编出来的包是肯定不能使用的,例如需要针对分区地址进行设计,内核大小进行剪裁,文件系统支持,uboot配套分区地址,等等。
这些内容稍后在一一记录,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了