分类: LINUX
2011-04-15 10:16:13
/*************************************************************************************************************************************
开发板:TQ2440
编译环境:Scientific Linux 6.0 、 交叉编译工具4.3.3
参考文档:Linux移植step by step
**************************************************************************************************************************************/
Linux系统移植:
目的: |
得到一个内核后变成自己想要的内核 |
第一阶段:
1、获取源码 |
解压 |
2、在系统中添加对平台(ARM)的支持: |
toplevel Makefile 改交叉编译器路径 |
3、改平台输入时: |
arch/arm/mach-s3c2440/mach-smdk2440.c |
4、改机器码,与U-Boot配合才能启动: |
arch/arm/tools/mach-types |
5、改镜像的存放地: |
arch/arm/boot-->Makefile |
默认镜像存在arch/arm/boot |
6、做自己的配置单: |
#make menuconfig |
加载2410的配置单 |
修改System type |
修改版本信息: |
general setup |
使支持交叉编译器 |
kernel features |
7、保存.config |
并复制一个配置单的备份 |
8、编译镜像: |
#make distclean |
#make zImage |
9、启动内核看console信息
第二阶段:
1、移植NandFlash驱动: |
(驱动内核已做好,只修改几个地方) |
arch/arm/plat-s3c24xx/common-smdk.c |
改分区信息 |
改读写匹配时间 |
Drivers/mtd/nand/s3c2410.c |
去掉ECC校验(内核与U-Boot校验不同) |
#make menuconfig |
添加NandFlash支持 |
2、完善串口驱动(内核只支持两个串口,可把红外接口修改为串口)(可选操作)
红外改串口: |
arch/arm/mach-smdk2440.c |
drivers/serial/s3c2410.c和samsung.c |
配置菜单 |
3、移植文件系统
1、获得 |
yaffs文件系统源码和yaffs文件系统补丁 |
解压 |
2、内核中添加yaffs支持 |
打补丁 |
改配置单Device Drivers、File system |
3、编译BusyBox: |
目的是生成文件系统所需要的一些目录和文件 |
3.1、解压BusyBox源码 |
进入源码目录添加编译器路径 |
改Makefile |
3.2、改BusyBox配置单 |
#make menuconfig |
保存配置单 |
3.3、编译安装BusyBox |
#make; make install |
生成文件系统部分源码在_install |
4、构建文件系统: |
目的是构建一个比较完整的文件系统 |
4.1、构建框架 |
主目录: root_2.6.30.4 |
子目录: 复制:BusyBox生成的_install目录下的目录 新建:#mkdir dev etc home lib mnt opt proc root sddisk sys tmp udisk var web usr/lib usr/share |
4.2、添加文件 |
dev设备目录/etc配置文件目录/home用户目录/lib库目录 /mnt移动设备挂载目录/opt与QT等相关/proc虚拟文件系统和目录 /root超级用户目录/sys可能mdev建目录/tmp临时文件目录 /var临时文件目录/usr/bin串口有关 |
5、编译文件系统镜像: |
#mkyaffs2image root_2.6.30.4 root_2.6.30.4.bin |
得到文件系统镜像 |
第三阶段: