|
苦于没有开发板,所以在网上随便搜索“arm 模拟”,便有了关于skyeye的一些介绍,得知它可以模拟一些常用的开发板,这对于没有钱买开发板的朋友可谓是经济实惠,但是想驾驭skyeye为你服务,却比较困难,在网上找了很多相关的资料,都不是很好,有些还是错误的。大概我花了两周的时间,终于可以模拟出三星的s3c2410,其中我分别用了两种文件系统,yaffs2,jffs2.好了,闲话不多说,直接开始吧。。。
软件配置:
1. VMware Workstation version: 5.5.3 build-34685
2. fedora 11 dvd.iso
3. linux kernel 2.6.14.1
4. busybox 1.4.1
5. skyeye-1.2.6
6. yaffs
7. cs8900网络驱动
8. mtd-utils-1.0.0
9. arm-linux-gcc-3.4.1.tar.bz2
第一步:安装好VMware Workstation后,新建一个虚拟机,选择linux架构,其余默认选择,新建完毕后,设置你的虚拟机,Virtual Machine Setting-->Hardware-->CD-ROW-->Use ISO Image,然后浏览选择想要安装的镜像(我的fc11),然后运行你的虚拟机,并选择安装镜像到你的硬盘,安装步骤这里就不详述。
第二步:好了,安装完你的linux系统后,他就是你宿主机了,首先安装你的工具链,我这里的一些工具都是在xp中下载好了,然后共享出来,在FC11中使用SMB将其mount过来。先把arm-linux-gcc-3.4.1.tar.bz2解压,然后将其执行路径放到bashrc中,vi ~/.bashrc找到PATH这一行,
添加后为:PATH=/usr/local/arm/3.4.1/bin:$PATH
好了,这样工具链就算OK了。
第三步:开始build kernel,我这里选择的2.6.14.1,先将其解压,然后默认的它是不支持yaffs2文件系统的,我们需要跟它打一个支持yaffs2的补丁,我这里将下载好的yaffs2拷贝过来,并将其解压,解压后的文件夹中有一个文件叫patch-ker.sh,然后根据他的用法执行就是了,执行完之后,你在去看你的kernel/fs下是不是多了一个yaffs2的文件夹,ok,到这里YAFFS2的补丁打完了。
第四步:我们是要build一个s3c2410的核心,所以我们直接方便的拷贝s3c2410的默认配置(cp arch/arm/configs/smdk2410_defconfig ./),注意需要先修改一下kernel下的Makefile,将ARCH ?= arm
CROSS ?= arm-linux-
然后在执行make menuconfig,另外还要配置一些关于yaffs2文件系统和MTD设备驱动的支持选项,
File systems-->Miscellaneous filesystems-->YAFFS2 file system support,关于这一大项的选择都选择编译到内核
一定要勾选上关于MTD驱动的一些选项,全勾选上也不为过,因为MTD是提供NANDFLASH的驱动介于硬件和文件系统之间。
注意:还有一个地方就是DEVFS的支持,在pseudo filesystems中,将其勾选上。不然到时候会找不到文件系统。
第五步: 在编译内核之前需要改变几个虚拟地址和关于mtd nandflash的分区信息。这是为是适应skyeye.
1. 修改
http://skyeye.wiki.sourceforge.net/Linux 修改内核文件
修改 include/asm-arm/arch-s3c2410/map.h
#define S3C2410_CS6 (0x30000000UL)
to
#define S3C2410_CS6 (0xC0000000UL)
修改 include/asm-arm/arch-s3c2410/memory.h
#define PHYS_OFFSET (0x30000000UL)
to
#define PHYS_OFFSET (0xC0000000UL)
不然skyeye就会找不到内核。
2. 添加一些分区信息。
待续。。。。 |
|