] (kernel_init+0x0/0x284) from [] (do_exit+0x0/0x710)
Code: e24dd00c e2505000 e1a07001 e1a06002 (0a000019)
---[ end trace 119d4c116316149b ]---
Kernel panic - not syncing: Attempted to kill init!
可以看到内核是启动起来了!但是还文件系统等还没完全启动,所以还需要进行修改!
4:添加内核对yaffs2的支持
上面可以看到,没有对yaffs2文件系统的支持,现在就添加yaffs2的支持
4.1解压yaffs2文件包
# tar -xzvf yaffs2.tar.gz
# ls
2.6.24.at91.2-exp.patch.gz 2.6.24-at91.patch.gz linux-2.6.24 linux-2.6.24.tar.bz2 yaffs2 yaffs2.tar.gz
# cd linux-2.6.24/fs
# mkdir yaffs
# pwd
/workdir/atmel/at91sam9260/kernel/linux-2.6.24/fs/yaffs
# cp ../../../yaffs/*.h .
# cp ../../../yaffs/*.c .
# ls
devextras.h yaffs_fs.c yaffs_mtdif1.h yaffs_nandemul2k.h yaffs_qsort.c yportenv.h
moduleconfig.h yaffs_getblockinfo.h yaffs_mtdif2.c yaffs_nand.h yaffs_qsort.h
yaffs_checkptrw.c yaffs_guts.c yaffs_mtdif2.h yaffs_packedtags1.c yaffs_tagscompat.c
yaffs_checkptrw.h yaffs_guts.h yaffs_mtdif.c yaffs_packedtags1.h yaffs_tagscompat.h
yaffs_ecc.c yaffsinterface.h yaffs_mtdif.h yaffs_packedtags2.c yaffs_tagsvalidity.c
yaffs_ecc.h yaffs_mtdif1.c yaffs_nand.c yaffs_packedtags2.h yaffs_tagsvalidity.h
# cp ../../../yaffs2/Makefile.kernel .
# ls
devextras.h yaffs_ecc.h yaffs_mtdif1.c yaffs_nand.c yaffs_packedtags2.h yaffs_tagsvalidity.h
Makefile.kernel yaffs_fs.c yaffs_mtdif1.h yaffs_nandemul2k.h yaffs_qsort.c yportenv.h
moduleconfig.h yaffs_getblockinfo.h yaffs_mtdif2.c yaffs_nand.h yaffs_qsort.h
yaffs_checkptrw.c yaffs_guts.c yaffs_mtdif2.h yaffs_packedtags1.c yaffs_tagscompat.c
yaffs_checkptrw.h yaffs_guts.h yaffs_mtdif.c yaffs_packedtags1.h yaffs_tagscompat.h
yaffs_ecc.c yaffsinterface.h yaffs_mtdif.h yaffs_packedtags2.c yaffs_tagsvalidity.c
# mv Makefile.kernel Makefile
# ls
devextras.h yaffs_ecc.h yaffs_mtdif1.c yaffs_nand.c yaffs_packedtags2.h yaffs_tagsvalidity.h
Makefile yaffs_fs.c yaffs_mtdif1.h yaffs_nandemul2k.h yaffs_qsort.c yportenv.h
moduleconfig.h yaffs_getblockinfo.h yaffs_mtdif2.c yaffs_nand.h yaffs_qsort.h
yaffs_checkptrw.c yaffs_guts.c yaffs_mtdif2.h yaffs_packedtags1.c yaffs_tagscompat.c
yaffs_checkptrw.h yaffs_guts.h yaffs_mtdif.c yaffs_packedtags1.h yaffs_tagscompat.h
yaffs_ecc.c yaffsinterface.h yaffs_mtdif.h yaffs_packedtags2.c yaffs_tagsvalidity.c
# pwd
/workdir/atmel/at91sam9260/kernel/linux-2.6.24/fs/yaffs2
# cp ../../../yaffs2/Kconfig .
# cd ..
# pwd
/workdir/atmel/at91sam9260/kernel/linux-2.6.24/fs
119行开始:
obj-$(CONFIG_OCFS2_FS) += ocfs2/
obj-$(CONFIG_GFS2_FS) += gfs2/
obj-$(CONFIG_YAFFS_FS) += yaffs/
# vim Kconfig
修改2119行:
endif # NETWORK_FILESYSTEMS
source "fs/yaffs2/Kconfig"
if BLOCK
menu "Partition Types"
# make distclean
# make at91sam9260ek_defconfig
# make menuconfig
修改配置,去选择支持yaffs!
Device Drivers --> Memory Technology Device(MTD) support
File Systems --> YAFFS2 file system support
Autoselect yaffs2 format
Disable lazy loading
Turn off wide tnodes
Kernel Features --> Use the ARM EABI to compile the kernel
Allow ole ABI binaries to run with this kernel
# make uImage
# pwd
/workdir/atmel/at91sam9260/kernel/yaffs2/utils
# ls
Makefile mkyaffs2image.c mkyaffsimage.c
# make
# ls
Makefile mkyaffs2image.c mkyaffsimage mkyaffsimage.o yaffs_ecc.o yaffs_packedtags2.o yaffs_tagsvalidity.o
mkyaffs2image mkyaffs2image.o mkyaffsimage.c yaffs_ecc.c yaffs_packedtags2.c yaffs_tagsvalidity.c
然后将这个"mkyaffs2image"目录添加到环境变量里面去!
# cd ../../../../
# ls
AT91Bootstrap crosstool filesyetem kernel setenv-9260 Source Insight Workdir u-boot
然后就得到支持yaffs2的内核了!