linux系统移植---内核移植(3)

linux内核移植

参考:https://blog.csdn.net/qq_27516841/article/details/80565622

内核开源下载网站:www.kernel.org

一、前言

1、linux内核五大功能:
 进程管理(cpu)
 内存管理(内存)
 设备管理(驱动)
 网络管理(网络协议tcp/ip)
 文件系统(vfs)

2、linux版本号:
 linux 2.6 2—>主版本号 6---->次版本号:奇数代表测试版本 偶数代表稳定版本。

3、内核源代码目录:
arch:与体系结构相关的目录,对于每种架构的CPU,arch下都有一个目录与之对应arch/arm
 block: 块设备的通用代码(字符设备 块设备 网络设备)
 Documentation: 当前内核的版本信息,有很强的参考价值
 drivers: 设备的驱动程序
 firmware: 设备驱动,固件,闭源设备的代码,设备没有公开,没有datesheet
 fs:file system: 内核和文件系统相关的源代码
 include: 头文件
 init: 内核的初始化代码
 ipc: 进程间通信的代码,(管道,共享内存,消息队列,信号,信号量)
 kernel: 内核管理的核心代码,与硬件先关的核心代码在arch/arm/kernel
 mm: 与硬件无关的内存管理代码,与硬件相关的内存管理代码在arch/arm/mm
 lib: 库文件
 net: 和网络协议先关的原代码
 sound: 声卡驱动原代码
 scripts: 内核相关的脚本代码

arch/arm(移植最关心的部分)
 boot: 存放编译好的内核镜像文件
 vmlinux: 内核源代码根目录下的ELF格式的内核文件
 Image: 在boot下,未压缩的内核镜像文件,经过arm-linux-obkcopy处理后只包含内核数据的内核镜像
 zImage: 在boot下,压缩的内核镜像文件,压缩比50%
 (由于Image 的加载时间会比 (zImage加载时间+解压缩时间 )还要长,所以建议使用zImage。自解压:zImage在真正运行之前,需要进行自解压,代码在 arch/arm/boot/compressed 目录中)
 configs: 内核提供的默认的配置文件
 include: 与架构相关的头文件
 lib: 与架构相关的库文件
 kernel: 架构相关的内核管理文件
 mm: 与架构相关的内存管理文件
 tools: 工具
 mach-s5pv210:mach-*.c: 开发板文件(每个开发板都会有对应的开发板文件。)

4、内核编译过程
先介绍内核的使用流程,后面再做详细分析:
a、清除命令
 一般在第一次编译时使用
 make mrproper
b、导入默认配置信息(在内核根目录中)
 方法1:make exynos4_defconfig(这是三星默认的配置,文件在configs目录下)
 方法2:cp arch/arm/configs/exynos4_defconfig .config
 (修改友善之臂tiny4412配置:cp tiny4412_android_defconfig .config)
c、详细配置
 make menuconfig

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值