linux内核移植

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

2、linux版本号:
linux 2.6 2—>主版本号 6---->次版本号:奇数代表测试版本 偶数代表稳定版本
本文使用内核版本为linux3.14

3、linux目录结构:
arch:体系结构相关代码
ipc:进程调度相关代码
mm:内存管理
Documentation:帮助文档
net:网络协议
lib:库
scripts:编译相关脚本工具
tools:编译相关工具
drivers:设备驱动
fs:文件系统实现

4、编译相关文件:
顶层Makefile 与 子目录下的Makefile
各级目录Kconfig

5、内核的使用流程
a、清除命令
一般在第一次编译时使用
make mrproper / make disclean
b、导入默认配置信息(在内核根目录中)
方法1:make exynos_deconfig
方法2:cp arch/arm/configs/exynos_deconfig .config
(这一步是根据arch/arm/configs下的默认配置文件进行初步配置)
c、详细配置
make menuconfig(图形化界面)
(这一步是实现驱动的剪裁等功能,需要自己勾选或除去。)
d、编译
make uImage —生成内核镜像 /arch/arm/boot/uImag
make dtbs —生成设备树文件 /arch/arm/boot/dtb/exynos4412-fs4412.dtb
make modules —把配置值选成M的代码编译生成模块文件。(.ko) 放在对应的源码目录下。(低级驱动开发中)
可以看出,内核编译主要包括两部分:一部分是内核配置;另一部分是内核编译;我们先从内核配置开始。
e、用fastboot导入
进入uboot交互界面
fastboot flash kernel ./zlmage

4.1.2内核的Kconfig分析
a – 我们解压内核后需要先修改内核顶层目录下的Makefile,配置好交叉编译工具
在这里插入图片描述

b – 然后导入默认配置(使用make exynis_defconfig 或者
cp arch/arm/configs/exynos_deconfig .config)
可以看到该命令会将 配置信息写入 .config 中,.config 是内核根目录下的隐藏文件,makefile 会根据它里面的内容进行编译。

c – 配置内核
使用 make menuconfig 命令进行内核配置(窗口太小打不开,窗口要19行 80列),可能会出现下面的报错:
使用 sudo apt-get install libncurses5-dev命令安装一下接可以了,安装以后再使用 make menuconfig,便可以看到下面的界面了。

在这里插入图片描述
如上图所示,这就是内核的配置界面。通过配置界面,可以选择芯片类型、选择需要支持的文件系统。去除不需要的选项等,这就称为“配置内核”。注意,也有其他形式的配置界面,比如“make config”命令启动字符配置界面,对于每个选项都会依次出现一行提示信息,组个回答;“make xconfig”命令启动 X-Windows 图形配置界面。
这个图里面就可以对配置文件进行一个修改了,如果当初直接拷贝原内核的配置文件,那么此时直接选择倒数第二行load an Alternate Configuration File,然后sava即可。
如果自己配置则选择上面的任意目录,进行选择哪些文件要编译,哪些不编译,一般需要选择的是设备驱动,选项是Device Drivers,选择完毕后同样保存save即可。

注意这两种方式都可以,看用户自己的选择。具体的每个选项的内容解析见一下博客:
添加链接描述

所有配置工具都是读取arch/$(ARCH)/Kconnfig 文件来生成配置界面,这个文件是所有配置文件的总入口,它会包含其他目录的Kconfig文件。配置界面如上图所示。

内核源码每个子目录中,都有一个Makefile文件和Kconfig文件。Makefile的作用下篇文章会讲述,Kconfig用于配置内核,它就是各种配置界面的源文件。内核的配置工具读取各个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置文件.config。

内核的配置界面以树状的菜单形式组织,主菜单下有若干子菜单,子菜单下又有子菜单或配置选项。每个子菜单或选项都有依赖关系,这些依赖关系用来确定它们是否显示。只有被依赖的父项已经被选中,子项才会显示。
————————————————
版权声明:本文为CSDN博主「Bruceoxl」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013162035/article/details/79200907

其他内核移植文章:
添加链接描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值