配置完内核以后,接下来就是弄根文件系统了.
根文件的制作可以参考伟大的福林兄的博客: http://blog.csdn.net/fulinus/article/details/9005258
根文件制作完成后,就是最复杂困难的制作YAFFS2文件系统的工具了. 在yaffs2源码utils 目录下make一下会出现mkyaffsimage和mkyaffs2image两个文件,这两个文件就是制作
YAFFS2文件系统的工具. mkyaffsimage 支持64M NANDFLASH, mkyaffs2image支持128M 及 以上 NANDFLASH. 但是源码下make出来的是没经过修改了. 不能支持.目前使用
的是友善之臂提供的mkyaffs2image工具..想了解怎么修改和相关内核可以参考一下博客:
http://blog.csdn.net/liukun321/article/category/857081
http://blog.chinaunix.net/uid-20543672-id-94384.html
我在utils目录下make的时候出现了 u8 这个东东没有定义的错误.. 具体的作法就是跑到 yportenv.h 文件下把定义u8 上面的 #if define .... 什么的去掉就好(具体是什么我忘记了)
虽然这里无关重要.但是这是我移植过程中遇到的问题,所以要说下.
将用友善之臂提供的mkyaffs2image,cp到 linux 的 /bin目录和 /usr/sbin 目录下, 就可以使用mkyaffs2image 命令了, 然后就是 mkyaffs2image rootfs/ rootfs.bin, rootfs.bin文件
就是我们要烧录的文件系统了.至此文件系统制作完毕.可以高高兴兴拿去烧了哟....
接下来就是烧写了...
这里我把我的uboot环境变量贴出来:
bbl=nand erase 0 50000;tftp 30008000 u-boot-$cpu.bin;nand write 30008000 0 50000
bkr=tftp 30008000 linuxrom-s3c2440.bin;nand erase 100000 300000;nand write 30008000 100000 300000
bootargs=noinitrd root=/dev/mtdblock4 rootfstype=yaffs2 init=/linuxrc console=ttyS0,115200
bootcmd_yaffs2=nand read 30008000 100000 300000;nand read 30800000 1a00000 800000;bootm 30008000
bootcmd=run bootcmd_yaffs2
内核分区:
Creating 5 MTD partitions on "NAND":
0x000000000000-0x000000100000 : "mtdblock0 u-boot 1MB"
0x000000100000-0x000000600000 : "mtdblock1 kernel 5MB"
0x000000600000-0x000001000000 : "mtdblock2 ramdisk 10MB"
0x000001000000-0x000001a00000 : "mtdblock3 cramfs 10MB"
0x000001a00000-0x000002e00000 : "mtdblock4 yaffs2 20MB"
下载文件系统的命令要跟分区对应....
不然会出现问题.具体出现的问题,以下在列出.
这里只写烧写yaffs2文件系统的命令.. tftp 30800000 rootfs,bin; nand erase 1a00000 $filesize; nand write.yaffs2 30800000 1a00000 $filesize (filesize是rootfs.bin的大小)
如果按以上步骤你能看到以下信息:
s3c-rtc s3c2410-rtc: setting system clock to 2011-04-20 17:14:42 UTC (1303319682)
yaffs: dev is 32505860 name is "mtdblock4" rw
yaffs: passed flags ""
VFS: Mounted root (yaffs2 filesystem) on device 31:4.
Freeing init memory: 144K
usb 1-1: new full speed USB device number 2 using s3c2410-ohci
usb 1-1: New USB device found, idVendor=05e3, idProduct=0606
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1: Product: USB Hub 2.0
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
dm9000 dm9000.0: eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
Copyright (C) 2013 Yanshifu<yanshifu@gmail.com>
root login:
那么恭喜你...你成功了.如果不是的话,那你就有可能和我犯了一些一样的错误了.. 见下篇...