I have a kernel I compiled using debian sources and following the
guide on the yaffs homepage (
http://yaffs.net/building-yaffs-linux ).
I am trying to mount images from the android emulator, which are
yaffs2, but when I mount them, I put in these commands:
modprobe mtd
modprobe mtdblock
modprobe nandsim first_id_byte=0xec second_id_byte=0xa1
third_id_byte=0x00 fourth_id_byte=0x15
nandwrite --autoplace --oob /dev/mtd0 out/target/product/generic/system.img
mount -o ro -t yaffs2 /dev/mtdblock0 /mnt/nand/
I get the output of:
[ 1407.434167] yaffs: dev is 32505856 name is "mtdblock0" ro
[ 1407.434170] yaffs: passed flags ""
[ 1407.434173] yaffs: yaffs: Attempting MTD mount of 31.0,"mtdblock0"
[ 1407.434175] yaffs: auto selecting yaffs1
[ 1407.434181] yaffs: NAND geometry problems: chunk size 512, type is
yaffs, inband_tags 1
so it does not mount. This is the yaffs entries from my kernel config:
# Linux/x86_64 3.2.46yaffs Kernel Configuration
CONFIG_YAFFS_FS=m
CONFIG_YAFFS_YAFFS1=y
# CONFIG_YAFFS_9BYTE_TAGS is not set
CONFIG_YAFFS_DOES_ECC=y
# CONFIG_YAFFS_ECC_WRONG_ORDER is not set
CONFIG_YAFFS_YAFFS2=y
CONFIG_YAFFS_AUTO_YAFFS2=y
# CONFIG_YAFFS_DISABLE_TAGS_ECC is not set
# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
# CONFIG_YAFFS_EMPTY_LOST_AND_FOUND is not set
CONFIG_YAFFS_DISABLE_BLOCK_REFRESHING=y
# CONFIG_YAFFS_DISABLE_BACKGROUND is not set
CONFIG_YAFFS_DISABLE_BAD_BLOCK_MARKING=y
CONFIG_YAFFS_XATTR=y
I have auto select yaffs2 enabled but it obviously is not. Also, I
manually tried to disable version 1 but the kernel won't compile since
config_yaffs_fs depends on yaffs1 config option...
Can anyone spot what I am doing wrong? Really could use some help!