建立使用 Fedora
9,版本太高,由于链接库的区别可能造成不可预料的错误。或者说配置相对复杂多了。本教程仅提供给刚接触内核的朋友,大牛们当路过就是,有发现什么错误还望指教。
① 修改顶层的Makefile
修改内容:
ARCH ?=
arm #架构一定要修改成arm,否则默认x86
CROSS_COMPILE ?=
arm-linux- #交叉编译工具选择arm-linux- (前提要建立好交叉编译环境,并且添加了环境变量)
,后面这些是顶层的Makefile中的部分内容,大家可看下实际是如何替换的
---------------------------------------------------------------------------------
AS =
$(CROSS_COMPILE)as ----> arm-linux-as 如不配置默认为as
LD =
$(CROSS_COMPILE)ld ----> arm-linux-ld 如不配置默认为ld
CC =
$(CROSS_COMPILE)gcc ----> arm-linux-gcc
如不配置默认为gcc
---------------------------------------------------------------------------------
后面的同理替换
② make mrproper #清除配置文件
③ make s3c2410_defconfig
#我们这里使用s3c2410_defconfig,即s3c2410的默认配置,内核里面有mini2440_defconfig,即mini2440的默认配置,编译没问题,但是在后面运行是执行reboot命令会出现问题,所以,建议使用s3c2410的默认配置。
④ make menuconfig
#需要手动进行配置,这步是很重要的一步,也是其他操作系统无法比拟的,我们可以在这个菜单界面下随意添加、删除模块,当然是针对于那些非关键模块。
配置内容:
选择 system Type
(可使用空格来切换 *代表静态编译成内核、M代表编译成模块(可在不重新编译内核的情况下将模块卸载掉)、不编译)
s3c2410 Machines 中保留SMDK2410/ A9M2410
s3c2440 Machines 中保留SMDK2440 和SMDK2440 with s3c2440 cpu
module
s3c2442 Machines 和 s3c2443 中的全部删除
⑤ 移植根文件系统模块
解压yaffs2.tar.gz
然后进入yaffs2目录中
运行 ./patch-ker.sh c 内核路径
⑥ 重新运行make menuconfig
进入File systems----->Miscellaneous
filesystems
添加yaffs2文件系统模块
⑦ 进入kernel Features 中选上EABI
⑧ 全部配置好后保存!!!
⑨ 运行 make zImage
⑩ 进入arch/arm/boot中找到zImage ,使用mkimage工具将zImage生成uImage
运行时会遇到的错误及解决方法,将在下期贴出。。。。。。。。。