sunjie718 发表于 2011-5-10 20:57:00

请讲解一下 实验十 linux-2.6.35内核移植—yaffs2文件系统的支持

-----------------------------------------------这个试验我是按照这个手册做的,
uboot 2010.03
yaffs2                     这里下载的 http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2.tar.gz?view=tar
请问问题出在哪里怎么解决



实验十 linux-2.6.35内核移植—yaffs2文件系统的支持
【实验目的】
        yaffs2文件系统是嵌入式系统中常用到的一种文件系统,并且在主要用在nand flash上,
这里我们在内核里添加yaffs2的支持
【实验环境】
Ubuntu 10.10发行版
u-boot-2010.03
FS2410平台
交叉编译器 arm-none-linux-gnueabi-gcc-4.3.2
【实验步骤】
        源码下载
        $ wget http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2.tar.gz
解压源码到内核的fs目录下
        $ cp yaffs2.tar.gz   linux-2.6.35/fs
        $ cdlinux-2.6.35/fs
        $ tar xvf yaffs2.tar.gz
安装补丁
        cd yaffs2
        $ ./patch-ker.shc   linux-2.6.35(这里是内核源码路径)
修改makefile
        $ cp Makefile.kernelMakefile
配置内核
        $ make menuconfig
File systems--->
            [*] Miscellaneous filesystems--->
                        <*>   YAFFS2 file system support
                       -*-   512 byte / page devices
                        -*-   2048 byte (or larger) / page devices
                        [*]       Autoselect yaffs2        format
                        [*]                Cache short        names in RAM
重新编译内核
        $ make zImage
        拷贝内核到开发板上
        $ cp arch/arm/boot/zImage /tftpboot
重新启动开发板
# cat /proc/filesystems
nodev        sysfs
nodev        rootfs
nodev        bdev
nodev        proc
nodev        tmpfs
nodev        sockfs
nodev        usbfs
nodev        pipefs
nodev        anon_inodefs
nodev        rpc_pipefs
nodev        devpts
               ext3
                ext2
                cramfs
nodev        ramfs
               vfat
                msdos
                iso9660
nodev        nfs
nodev        jffs2
                romfs
                yaffs
                yaffs2
nodev        mtd_inodefs








-----------------------------------------------------------------------------------------结果杯具啦~\(≧▽≦)/~啦啦啦

js@jas:/opt/kernel/5linux-2.6.35.9$ make zImage
CHK   include/linux/version.h
CHK   include/generated/utsrelease.h
make: `include/generated/mach-types.h' is up to date.
CALL    scripts/checksyscalls.sh
CHK   include/generated/compile.h
CC      fs/yaffs2/yaffs_fs.o
fs/yaffs2/yaffs_fs.c:234: error: unknown field 'prepare_write' specified in initializer
fs/yaffs2/yaffs_fs.c:234: warning: initialization from incompatible pointer type
fs/yaffs2/yaffs_fs.c:235: error: unknown field 'commit_write' specified in initializer
fs/yaffs2/yaffs_fs.c:235: warning: initialization from incompatible pointer type
fs/yaffs2/yaffs_fs.c:246: warning: initialization from incompatible pointer type
fs/yaffs2/yaffs_fs.c:304: warning: initialization from incompatible pointer type
fs/yaffs2/yaffs_fs.c: In function 'yaffs_mknod':
fs/yaffs2/yaffs_fs.c:1062: error: 'struct task_struct' has no member named 'fsuid'
fs/yaffs2/yaffs_fs.c:1063: error: 'struct task_struct' has no member named 'fsgid'
fs/yaffs2/yaffs_fs.c: In function 'yaffs_symlink':
fs/yaffs2/yaffs_fs.c:1242: error: 'struct task_struct' has no member named 'fsuid'
fs/yaffs2/yaffs_fs.c:1243: error: 'struct task_struct' has no member named 'fsgid'
fs/yaffs2/yaffs_fs.c: In function 'yaffs_internal_read_super':
fs/yaffs2/yaffs_fs.c:1781: warning: format '%d' expects type 'int', but argument 2 has type 'uint64_t'
make: *** Error 1
make: *** Error 2
make: *** Error 2
js@jas:/opt/kernel/5linux-2.6.35.9$ ci fs/yaffs2/
页: [1]
查看完整版本: 请讲解一下 实验十 linux-2.6.35内核移植—yaffs2文件系统的支持