] (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的内核了!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐