主题 : 求救内核移植问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 35891
精华: 0
发帖: 29
金钱: 150 两
威望: 30 点
贡献值: 0 点
综合积分: 58 分
注册时间: 2011-01-08
最后登录: 2012-03-19
楼主  发表于: 2011-09-04 20:36

 求救内核移植问题

我用的是linux2.6.32版本的内核,按照友善提供的内核移植手册,挺顺利的,但是在为内核打上文件yaffs2的补丁时没问题,却编译的时候出现了狠多问题,一开始不打补丁编译通过,打了补丁之后编译不行了具体看下面的fs/yaffs2/yaffs_fs.c:212: error: unknown field 'prepare_write' specified in initializer
fs/yaffs2/yaffs_fs.c:212: warning: initialization from incompatible pointer type
fs/yaffs2/yaffs_fs.c:213: error: unknown field 'commit_write' specified in initializer
fs/yaffs2/yaffs_fs.c:213: warning: initialization from incompatible pointer type
fs/yaffs2/yaffs_fs.c:287: error: unknown field 'read_inode' specified in initializer
fs/yaffs2/yaffs_fs.c:287: warning: initialization from incompatible pointer type
fs/yaffs2/yaffs_fs.c:288: error: unknown field 'put_inode' specified in initializer
fs/yaffs2/yaffs_fs.c: In function 'yaffs_get_inode':
fs/yaffs2/yaffs_fs.c:847: error: implicit declaration of function 'iget'
fs/yaffs2/yaffs_fs.c:847: warning: assignment makes pointer from integer without a cast
fs/yaffs2/yaffs_fs.c: In function 'yaffs_mknod':
fs/yaffs2/yaffs_fs.c:1021: error: 'struct task_struct' has no member named 'fsuid'
fs/yaffs2/yaffs_fs.c:1022: error: 'struct task_struct' has no member named 'fsgid'
fs/yaffs2/yaffs_fs.c: In function 'yaffs_symlink':
fs/yaffs2/yaffs_fs.c:1201: error: 'struct task_struct' has no member named 'fsuid'
fs/yaffs2/yaffs_fs.c:1202: 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:1676: warning: format '%d' expects type 'int', but argument 2 has type 'uint64_t'
fs/yaffs2/yaffs_fs.c: In function 'init_yaffs_fs':
fs/yaffs2/yaffs_fs.c:2234: error: 'proc_root' undeclared (first use in this function)
fs/yaffs2/yaffs_fs.c:2234: error: (Each undeclared identifier is reported only once
fs/yaffs2/yaffs_fs.c:2234: error: for each function it appears in.)
fs/yaffs2/yaffs_fs.c: In function 'exit_yaffs_fs':
fs/yaffs2/yaffs_fs.c:2280: error: 'proc_root' undeclared (first use in this function)
make[2]: *** [fs/yaffs2/yaffs_fs.o] Error 1
make[1]: *** [fs/yaffs2] Error 2
make: *** [fs] Error 2

求版主分析下啊,怎么解决
级别: 新手上路
UID: 61072
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2011-12-22
最后登录: 2012-10-27
1楼  发表于: 2012-09-05 21:02

 回 楼主(liuxiong) 的帖子

图片:
我在你的前一步中 在mini2440.c中 加入nand flash 的分区代码 为什么会出现这样的错误 求指导啊
级别: 圣骑士
UID: 44407
精华: 0
发帖: 386
金钱: 1945 两
威望: 389 点
贡献值: 0 点
综合积分: 772 分
注册时间: 2011-04-25
最后登录: 2014-08-25
2楼  发表于: 2012-09-06 00:16
這篇寫的近似mini22440 可以去參考一下步驟是否有錯,百度文庫也有相近資料(XX2440都可以參考)
http://xiesnap.blog.163.com/blog/#m=0&t=1&c=fks_084067083084081075085083094095082081085075084081087066

我曾試過直接在移植Kernel-2.6.39到Mini6410時,直接使用友善提供的yaffs2 整個目錄覆蓋,但是和你一樣的錯誤,所以我還是直接還原原始目錄
[ 此帖被kazaya在2012-09-06 09:20重新编辑 ]