Table of Contents
3.3.Userspace binary formats配置
1.解压内核源码
tar -jxvf linux-xxx.tar.bz2
或者
tar -zxvf linux-xxxx.tar.gz
2.清除之前的配置
clean - 清大部分生成的文件, 但是保留配置文件, 以及可以保证足够编译模块的信息。
mrproper - 清所有的生成文件, 以及配置文件, 以及各种备份文件
distclean - mrproper 效果 + gedit 备份文件+补丁文件, 这最彻底的清除。
第一次配置前需要清除垃圾,以防有别人配置过的垃圾
3.拷贝配置文件到顶层目录生成.config文件
make xxxx_defconfig
或者
cp arch/arm/configs/xxxx_defconfig .config
修改Makefile
ARCH=arm
COSS_COMPILE=arm-linux-
3. make menuconfig配置
3.1.三个检查
make menuconfig
System type->
1.检查是否支持当前ARM架构
2.检查是否支持当前处理器(EXYNOS4412)
3.检查是否支持当前开发板(tiny4412)
3.2.内核特征配置
---->Kernel Features
配置内核空间和用户的比例
配置 CPU 的处理器数量
配置 EABI 接口支持(很重要, ARM 芯片都要求选择)
什么是 EABI ?
EABI 全称 Embedded application binary interface, 即嵌入式应用二进制接口, 是描述可连接目标代码, 库目标代码, 可执行文件映像, 如何连接, 执行和调试, 以及目标代码生成过程, 和 c, c++语言接口的规范, 是编译连接工具的基础规范, 也是研究它们工作原理的基础。
3.3.Userspace binary formats配置
-> Userspace binary formats
配置系统支持 ELF 格式可执行文件
Symbol: BINFMT_ELF [=y]
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]
3.5.printk 打印时间戳
-> Kernel hacking
-> printk and dmesg options
3.6配置支持模块强制加载功能和卸载功能
Symbol: MODULES [=y]
4.编译
1、make -j4
2、修改uImage加载和入口地址LOADADRR ENTRYADDR两个值 使得ENTRYADDR = LOADADRR +0x40
vim ./scripts/Makefile.lib //修改Makfile.lib文件
参考文章:uboot引导linux内核过程 卡死Starting kernel ...(下载地址,加载地址,入口地址的修改)(uImage和zImage的区别)
3、LOADADDR=0X40008000 make uImage