Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6536847
  • 博文数量: 1159
  • 博客积分: 12444
  • 博客等级: 上将
  • 技术积分: 12570
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-13 21:34
文章分类

全部博文(1159)

文章存档

2016年(126)

2015年(350)

2014年(56)

2013年(91)

2012年(182)

2011年(193)

2010年(138)

2009年(23)

分类: 嵌入式

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



阅读(1464) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~