Hello Marco Firstly I suggest you use tha yaffs2 code base even if you are using the yaffs1 formatting (ie. using yaffs1 backward compatibility). Assuming you're using a Linux PC, it is pretty straight formward to build and run the tests. Get tarball from http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2/ cd to yaffs2/direct make To make and run a Linux kernel module. This was done under Ubuntu. You will need to have the appropriate kernel building packages installed.It looks like you might be missing those. The insmod is on yaffs2.ko, not yaffs.o charles@linux-dual-head:/opt/y/ref/yaffs2$cd yaffs2 charles@linux-dual-head:/opt/y/ref/yaffs2$ make make -C /lib/modules/2.6.24-24-generic/build M=/opt/y/ref/yaffs2 modules make[1]: Entering directory `/usr/src/linux-headers-2.6.24-24-generic' Building modules, stage 2. MODPOST 1 modules make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-24-generic' charles@linux-dual-head:/opt/y/ref/yaffs2$ sudo -s [sudo] password for charles: root@linux-dual-head:/opt/y/ref/yaffs2# mkdir xxx root@linux-dual-head:/opt/y/ref/yaffs2# modprobe mtd root@linux-dual-head:/opt/y/ref/yaffs2# modprobe mtdblock root@linux-dual-head:/opt/y/ref/yaffs2# modprobe nandsim first_id_byte=0x20 second_id_byte=0xa2 third_id_byte=00 fourth_id_byte=0x15 root@linux-dual-head:/opt/y/ref/yaffs2# cat /proc/mtd dev: size erasesize name mtd0: 04000000 00020000 "NAND simulator partition 0" root@linux-dual-head:/opt/y/ref/yaffs2# insmod yaffs2.ko root@linux-dual-head:/opt/y/ref/yaffs2# cat /proc/filesystems nodev sysfs nodev rootfs nodev bdev nodev proc nodev cgroup nodev cpuset nodev debugfs nodev securityfs nodev sockfs nodev pipefs nodev anon_inodefs nodev futexfs nodev tmpfs nodev inotifyfs nodev devpts cramfs nodev ramfs nodev mqueue nodev fuse fuseblk nodev fusectl nodev usbfs ext3 nodev binfmt_misc yaffs yaffs2 root@linux-dual-head:/opt/y/ref/yaffs2# mount -t yaffs2 /dev/mtdblock0 xxx root@linux-dual-head:/opt/y/ref/yaffs2# ls -ial xxx total 8 1 drwxr-xr-x 1 root root 2048 2009-10-12 11:07 . 1089951 drwxr-xr-x 9 charles charles 4096 2009-10-12 11:06 .. 2 drwx------ 1 root root 2048 2009-10-12 11:07 lost+found root@linux-dual-head:/opt/y/ref/yaffs2# On Sunday 11 October 2009 11:27:36 Marco wrote: > Hi to all > I am Marco Rimpatriato and I am a master student at the Politechnic of > Torino in Italy. I have worked on YAFFS for my thesis that is focused on > solving a problem in airspace environment. I have understood all the > mechnisms of the file system's guts and I think of all the interfaces too > (I have dealt with YAFFS1). I am interested to mount it in all the three > options (direct, linux-module, linux-kernel) but, after two days if tries i > had to realize that I am not able to do it. > > In particular for what concerns the linux module I followed precisingly all > the procedure suggested but I did not came out: > > ******************************************************** > 1.. Hack the Makefile and change the KERNELDIR define to your kernel > directory. > > 2.. If you don't have mtd support in your kernel, then you might need to > turn off USE_MTD otherwise the yaffs module might not load. > > 3.. Type make clean; make to build yaffs > > 4.. Load yaffs as a module by typing /sbin/insmod yaffs.o (ya gotta be > root!). > > 5.. Create a mount point eg. mkdir /mnt/y > > 6.. To mount the RAM emulation version of yaffs, mount -t yaffsram none > /mnt/y > > 7.. Alternatively, to mount the mtd version of yaffs, mount -t yaffs > /dev/mtd0 /mnt/y > > *************************************************************** > > The problem is that when I type "make clean; make" the resul is such a huge > amount of errors: > > gcc -c -D__KERNEL__ -DMODULE -DCONFIG_YAFFS_RAM_ENABLED > -DCONFIG_YAFFS_MTD_ENABLED -DCONFIG_YAFFS_USE_GENERIC_RW > -DCONFIG_SHORT_NAMES_IN_RAM -DCONFIG_YAFFS_USE_NANDECC -I > /usr/src/linux-headers-2.6.24-24/include -O2 -Wall yaffs_fs.c -o yaffs_fs.o > yaffs_fs.c:36:26: error: linux/config.h: No such file or directory In file > included from /usr/src/linux-headers-2.6.24-24/include/linux/kernel.h:11, > from yaffs_fs.c:37: > /usr/src/linux-headers-2.6.24-24/include/linux/linkage.h:4:25: error: > asm/linkage.h: No such file or directory > > ......................... > > yaffs_fs.c:1661: error: too many arguments to function > 'create_proc_read_entry' yaffs_fs.c:1683: error: 'yaffs_ram_fs_type' > undeclared (first use in this function) yaffs_fs.c: In function > 'exit_yaffs_fs': > yaffs_fs.c:1710: error: 'yaffs_ram_fs_type' undeclared (first use in this > function) make: *** [yaffs_fs.o] Error 1 > > I have reported just few rows at the beginning and at the end but row are a > very huge number! (I am sorry for some strange characters but this is ue At > a first sight errors seems to came only from not found packets in kernel > directory and from yaffs_fs.c I saw that the file yaffs_fs calls config.h > that in my kernel dir (/usr/src/linux-headers-2.6.24-24) is not present! > But there are problems also with others. > > > Please help me! How can I do to make YAFFS working on my Linux (I have > tryed it on Ubuntu 9 and xubuntu 8.04)? > > I have tryed also YAFFS2, following the same procedure explained for YAFFS1 > and, when I make the files all works but when I insert the generated file > yaffs2.o (/sbin/insmod yaffs2.o) it says that is not a module and if i try > with yaffs2.mod.o (/sbin/insmod yaffs2.mod.o) it recognizes the module but > tells me that there is an unknown symbol. > > Please help me... > > Marco