linux内核移植步骤

Table of Contents

1.解压内核源码

2.清除之前的配置

3.拷贝配置文件到顶层目录生成.config文件

3. make menuconfig配置

3.1.三个检查

3.2.内核特征配置

3.3.Userspace binary formats配置

3.4.File systems 文件系统配置

3.5.printk 打印时间戳

3.6配置支持模块强制加载功能和卸载功能

4.编译


 

1.解压内核源码

   tar -jxvf linux-xxx.tar.bz2
   或者
   tar -zxvf linux-xxxx.tar.gz

2.清除之前的配置

clean - 清大部分生成的文件, 但是保留配置文件, 以及可以保证足够编译模块的信息。
mrproper - 清所有的生成文件, 以及配置文件, 以及各种备份文件
distclean - mrproper 效果 + gedit 备份文件+补丁文件, 这最彻底的清除。

第一次配置前需要清除垃圾,以防有别人配置过的垃圾

linux内核移植步骤_第1张图片

 

3.拷贝配置文件到顶层目录生成.config文件

  make xxxx_defconfig
  或者
  cp arch/arm/configs/xxxx_defconfig .config

linux内核移植步骤_第2张图片

修改Makefile
 ARCH=arm
COSS_COMPILE=arm-linux-

3. make menuconfig配置

3.1.三个检查

   make menuconfig


   System type->
    1.检查是否支持当前ARM架构
                2.检查是否支持当前处理器(EXYNOS4412)
    3.检查是否支持当前开发板(tiny4412)

linux内核移植步骤_第3张图片

linux内核移植步骤_第4张图片

linux内核移植步骤_第5张图片

3.2.内核特征配置

---->Kernel Features

配置内核空间和用户的比例

linux内核移植步骤_第6张图片

配置 CPU 的处理器数量

 

linux内核移植步骤_第7张图片

配置 EABI 接口支持(很重要, ARM 芯片都要求选择)
什么是 EABI ?
EABI 全称 Embedded application binary interface, 即嵌入式应用二进制接口, 是描述可连接目标代码, 库目标代码, 可执行文件映像, 如何连接, 执行和调试, 以及目标代码生成过程, 和 c, c++语言接口的规范, 是编译连接工具的基础规范, 也是研究它们工作原理的基础。
 

linux内核移植步骤_第8张图片

 

3.3.Userspace binary formats配置

-> Userspace binary formats
配置系统支持 ELF 格式可执行文件

Symbol: BINFMT_ELF [=y]


linux内核移植步骤_第9张图片

 

3.4.File systems 文件系统配置

-> File systems
Symbol: EXT3_FS [=y]
Symbol: EXT4_FS [=y]
Symbol: MSDOS_FS [=y]
Symbol: VFAT_FS [=y]
Symbol: NFS_FS [=y] 网络文件系统 以便在线调试

语言支持配置

Symbol: NLS_CODEPAGE_936 [=y] 中文支持
Symbol: NLS_UTF8 [=y]
 

linux内核移植步骤_第10张图片

linux内核移植步骤_第11张图片

 

3.5.printk 打印时间戳

-> Kernel hacking

-> printk and dmesg options

linux内核移植步骤_第12张图片

 

3.6配置支持模块强制加载功能和卸载功能

Symbol: MODULES [=y]


linux内核移植步骤_第13张图片

linux内核移植步骤_第14张图片

 

4.编译

1、make -j4

 

 

2、修改uImage加载和入口地址LOADADRR ENTRYADDR两个值   使得ENTRYADDR = LOADADRR +0x40

vim ./scripts/Makefile.lib  //修改Makfile.lib文件

 

参考文章:uboot引导linux内核过程 卡死Starting kernel ...(下载地址,加载地址,入口地址的修改)(uImage和zImage的区别)

 

linux内核移植步骤_第15张图片

 

 

3、LOADADDR=0X40008000 make uImage

 

linux内核移植步骤_第16张图片

 

linux内核移植步骤_第17张图片

 

 

 

 

 

 

 

你可能感兴趣的:(linux驱动开发)