全部博文(1159)
分类: 嵌入式
2011-06-17 15:22:51
姓名:刘莹 班级:应用一班 学号:0906041036
嵌入式系统移植三部曲
一,bootloader的移植
二,linux内核的编译
三,根文件系统的移植
第一步:安装SkyEye
第二步:Bootloader的移植
1,建立交叉编译环境解压解压arm-linux-gcc-2.95.3.tar.bz2到/usr/local/arm/中
2,解压Bootloader:u-boot-1.1.4,开始bootloader的移植
3,编辑u-boot根目录中的Makefile文件
4,复制必要的文件,编辑ok2410.h头文件
5,编辑board/ok2410/Makefile文件
6,配置、编译u-boot
7,编辑skyeye.conf文件
8,执行skyeye1.2.6
9,开始移植nand
10,修改board/ok2410/Makefile
11,创建board/ok2410/nand_read.c文件
12,编辑include/configs/ok2410.h文件
13,编译u-boot,然后测试u-boot是否可以从nand启动
14,编辑include/configs/ok2410.h文件
15,编辑board/ok2410/ok2410.c文件
16,修改 common/cmd_nand.c文件
17,编译、测试
第三步:编译linux内核
1,建立交叉编译环境解压解压arm-linux-gcc-3.4.1.tar.bz2
2,解压linux-2.6.14.7.tar.bz2,开始移植linux内核
3,编辑Makefile文件
4,复制cs8900
5,修改drivers/net/arm/目录下的Kconfig文件
6,修改drivers/net/arm/目录下的Makefile文件,
7,编辑arch/arm/mach-s3c2410/mach-smdk2410.c文件
8,在include/asm-arm/arch-s3c2410/目录下创建smdk2410.h文件
9,设置Flash分区
10,配置内核
11,编译内核,创建uImage,将uImage复制到tftp服务器的根目录(/tftpboot/)
12,执行skyeye1.2.6,通过u-boot-1.1.4引导linux-2.6.14.7
13,搭建tftp服务器
14,创建uimag放置在TFTP服务器根目录
第三步:文件系统的移植
busybox,yaffs2根文件系统的建立,搭建nfs服务器
实验中的错误分析:
1,mknandflashdump u-boot.bin nand.dump 0命令找不到
将此命令放在U-boot文件夹下
2,[root@localhost u-boot-1.1.4]# skyeye1.2.6 出现TTTTT
*** Warning - bad CRC or NAND, using default environment
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
TFTP from server 10.0.0.1; our IP address is 10.0.0.110
Filename 'uImage'.
Load address: 0x31000000
Loading: checksum bad
T T T T T T T T T T
Retry count exceeded; starting again
此时是tftp服务器没有搭建,需要对tftp进行搭建,同时对其权限进行修改,
#chmod-R 755 /tftpboot;
3,在uboot命令行提示符下显示:如31000000 bad magic number
表示擦写nand flash或读nandflash的地址不一致
4,selinux提供的安全机制问题,导致下载不成,这时进行如下设置:
# getsebool -a|grep tftp
allow_tftp_anon_write --> off
allow_tftp_anon_write--> off
tftpd_disable_trans --> off
#setsebool -P allow_tftp_anon_write =1
#setsebool -P allow_tftp_anon_write=1
#setsebool -P tftpd_disable_trans=1
5,每次重启电脑后都要重新启动nfs
# service nfs start
# iptables -F
http://blog.chinaunix.net/space.php?uid=14735472&do=blog&id=110947