步骤:
1、下载yaffs2源码(http://www.aleph1.co.uk/gitweb?p=yaffs2/.git;a=summary)
2、解压
#tar xvf yaffs2-912be3d.tar.gz
#cd yaffs2-912be3d
2、给linux内核打补丁
#./patch-ker.sh c m /home/workspace/share/sourceinsight/linux/linux-2.6.38.5
3、配置内核增加对yaffs2的支持
File systems --->
[*] Miscellaneous filesystems --->
<*> YAFFS2 file system support
-*- 512 byte / page devices
[ ] Use older-style on-NAND data format with pageStatus byte
[ ] Lets Yaffs do its own ECC
-*- 2048 byte (or larger) / page devices
[*] Autoselect yaffs2 format
[ ] Disable lazy loading
[ ] Turn off wide tnodes
[ ] Force chunk erase check
[*] Cache short names in RAM
4、编译烧进目标板
5、制作根文件夹
#mkdir my_rootfs
#cd my_rootfs
#mkdir root dev etc boot tmp var sys proc lib mnt home
#mkdir etc/init.d etc/rc.d etc/sysconfig
#mkdir usr/sbin usr/bin usr/lib usr/modules
#mknod -m 600 dev/console c 204 64 (非常重要,busybox是虚拟串口平台)
#mknod -m 600 dev/null c 1 3
#mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp
#mkdir var/lib var/lock var/run var/tmp
#chmod 1777 tmp
#chmod 1777 var/tmp
5、下载busybox (http://www.busybox.net/downloads/)
6、解压进入工作目录
#tar jxvf busybox-1.13.3.tar.bz2
#cd busybox-1.13.3
#make menuconfig7、busybox配置
Busybox settings-->
Build Options-->
[*]Build BusyBox as a static binary (no shared libs)
Busybox Library Tuning-->
Command line editing-->
[*]Fancy shell prompts
Linux Module Utilities --->
(/lib/modules) Default directory containing modules
(modules.dep) Default name of modules.dep
[ ] Simplified modutils
[*] insmod
[*] rmmod
[*] lsmod
[*] modprobe
保存,退出。
8、编译和安装Busybox
#vi Makefile
CROSS_COMPILE ?=arm-none-linux-gnueabi- //大约在164行
ARCH ?=arm
修改 保存退出
#make CONFIG_PREFIX=/home/workspace/share/rootfs/my_rootfs install
9、编写一个相关文件
#cd my_rootfs
#vi etc/inittab
console::sysinit:/etc/init.d/rcS
s3c2410_serial0::askfirst:-/bin/sh
tty1::askfirst:-/bin/sh
tty2::askfirst:-/bin/sh
tty3::askfirst:-/bin/sh
tty4::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
#vi etc/init.d/rcS
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S //运行的级别
prevlevel=N
umask 022 //文件夹的掩码
export PATH runlevel prevlevel
echo"--------- mount all--------"
mount -a //挂载/etc/fstab/文件指定的所有的文件系统
echo /sbin/mdev>/proc/sys/kernel/hotplug
mdev -s
echo "*************************"
echo "**********************lensens ARM**************"
echo "Kernel version:linux-2.6.38.5"
echo "Date:2011,6,21"
echo "***********************"
/bin/hostname lensens
保存退出
#chmod +x etc/init.d/rcS(重要)
#vi etc/fstab
#device mount-point type option dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
none /tmp ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0
mdev /dev ramfs defaults 0 0
保存退出
#vi etc/profile
#Ash profile
#vim:syntax=sh
#No core file by defaults
#ulimit -S -c 0>/dev/null 2>&1
USER="id -un"
LOGNAME=$USER
PS1='[/u@/h=W]#'
PATH=$PATH
HOSTNAME='/bin/hostname'
export USER LOGNAME PS1 PATH
10、 制作根文件系统映像文件
使用mkyaffs2image-128(友善提供)
#mkyaffs2image my_rootfs rootfs.img
11、下载到目标板,运行可看到这一行就OK
Please press Enter to activate this console.