移植YAFFS2文件系统到linux3.18.4内核(原)
./patch-ker.sh c m linux-tree 比如 ./patch-ker.sh c m /home/fedora/workspace/linux-3.18.4
-> File systems |
| -> Miscellaneous filesystems (MISC_FILESYSTEMS [=y]) |
| -> yaffs2 file system support (YAFFS_FS [=n]) |
| -> 512 byte / page devices (YAFFS_YAFFS1 [=n]) |
| -> Use older-style on-NAND data format with pageStatus byte
4. 编译、使用zImage
fs/yaffs2/yaffs_vfs.c: In function 'yaffs_file_flush':
fs/yaffs2/yaffs_vfs.c:741: error: too few arguments to function 'yaffs_flush_file'
fs/yaffs2/yaffs_vfs.c: In function 'yaffs_sync_object':
fs/yaffs2/yaffs_vfs.c:771: error: too few arguments to function 'yaffs_flush_file'
fs/yaffs2/yaffs_vfs.c: At top level:
fs/yaffs2/yaffs_vfs.c:781: error: 'generic_file_aio_read' undeclared here (not in a function)
fs/yaffs2/yaffs_vfs.c:782: error: 'generic_file_aio_write' undeclared here (not in a function)
fs/yaffs2/yaffs_vfs.c:787: error: 'generic_file_splice_write' undeclared here (not in a function)
fs/yaffs2/yaffs_vfs.c: In function 'yaffs_flush_inodes':
fs/yaffs2/yaffs_vfs.c:2190: error: too few arguments to function 'yaffs_flush_file'
fs/yaffs2/yaffs_vfs.c: In function 'yaffs_flush_super':
fs/yaffs2/yaffs_vfs.c:2203: error: too few arguments to function 'yaffs_flush_whole_cache'
代码修改如下:
diff --git a/yaffs_vfs.c b/yaffs_vfs.c
index 76bc1db..f6e4ec2 100755
--- a/yaffs_vfs.c
+++ b/yaffs_vfs.c
@@ -738,7 +738,7 @@ static int yaffs_file_flush(struct file *file)
yaffs_gross_lock(dev);
- yaffs_flush_file(obj, 1, 0);
+ yaffs_flush_file(obj, 1, 0, 1);
yaffs_gross_unlock(dev);
@@ -768,7 +768,7 @@ static int yaffs_sync_object(struct file *file, struct dentry *dentry,
yaffs_trace(YAFFS_TRACE_OS | YAFFS_TRACE_SYNC,
"yaffs_sync_object");
yaffs_gross_lock(dev);
- yaffs_flush_file(obj, 1, datasync);
+ yaffs_flush_file(obj, 1, datasync, 1);
yaffs_gross_unlock(dev);
return 0;
}
@@ -778,13 +778,13 @@ static int yaffs_sync_object(struct file *file, struct dentry *dentry,
static const struct file_operations yaffs_file_operations = {
.read = do_sync_read,
.write = do_sync_write,
- .aio_read = generic_file_aio_read,
- .aio_write = generic_file_aio_write,
+ .read_iter = generic_file_read_iter,
+ .write_iter = generic_file_write_iter,
.mmap = generic_file_mmap,
.flush = yaffs_file_flush,
.fsync = yaffs_sync_object,
- .splice_read = generic_file_splice_read,
- .splice_write = generic_file_splice_write,
+ .splice_read = generic_file_splice_read,
+ .splice_write = iter_file_splice_write,
.llseek = generic_file_llseek,
};
@@ -2187,7 +2187,7 @@ static void yaffs_flush_inodes(struct super_block *sb)
yaffs_trace(YAFFS_TRACE_OS,
"flushing obj %d",
obj->obj_id);
- yaffs_flush_file(obj, 1, 0);
+ yaffs_flush_file(obj, 1, 0, 1);
}
}
}
@@ -2200,7 +2200,7 @@ static void yaffs_flush_super(struct super_block *sb, int do_checkpoint)
yaffs_flush_inodes(sb);
yaffs_update_dirty_dirs(dev);
- yaffs_flush_whole_cache(dev);
+ yaffs_flush_whole_cache(dev, 1);
if (do_checkpoint)
yaffs_checkpoint_save(dev);
}
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
make[1]: “include/generated/mach-types.h”是最新的。
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CC fs/yaffs2/yaffs_vfs.o
CC fs/yaffs2/yaffs_guts.o
CC fs/yaffs2/yaffs_checkptrw.o
CC fs/yaffs2/yaffs_packedtags1.o
CC fs/yaffs2/yaffs_packedtags2.o
CC fs/yaffs2/yaffs_nand.o
CC fs/yaffs2/yaffs_tagscompat.o
CC fs/yaffs2/yaffs_tagsmarshall.o
CC fs/yaffs2/yaffs_mtdif.o
CC fs/yaffs2/yaffs_nameval.o
CC fs/yaffs2/yaffs_attribs.o
CC fs/yaffs2/yaffs_allocator.o
CC fs/yaffs2/yaffs_yaffs1.o
CC fs/yaffs2/yaffs_yaffs2.o
CC fs/yaffs2/yaffs_bitmap.o
CC fs/yaffs2/yaffs_summary.o
CC fs/yaffs2/yaffs_verify.o
LD fs/yaffs2/yaffs.o
LD fs/yaffs2/built-in.o
LD fs/built-in.o
LINK vmlinux
LD vmlinux.o
MODPOST vmlinux.o
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
LD init/built-in.o
KSYM .tmp_kallsyms1.o
KSYM .tmp_kallsyms2.o
LD vmlinux
SORTEX vmlinux
SYSMAP System.map
OBJCOPY arch/arm/boot/Image
Kernel: arch/arm/boot/Image is ready
GZIP arch/arm/boot/compressed/piggy.gzip
AS arch/arm/boot/compressed/piggy.gzip.o
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
OK!
转载于:https://www.cnblogs.com/lion382/p/4261446.html
移植YAFFS2文件系统到linux3.18.4内核(原)相关推荐
- win驱动移植linux,LCD移植 - 基于Tiny210v2的Linux-3.9.6内核驱动移植_Linux编程_Linux公社-Linux系统门户网站...
友善的tiny210v2我买的是7寸电容屏,具体型号得再查查,说是S70. 用原本的LINUX内的SMDKV210的LCD驱动能实现LINUX LOGO的输出,但是有一定的偏差. 主要参考: arm9 ...
- YAFFS2文件系统在嵌入式LINUX系统中的应用
YAFFS2文件系统在嵌入式LINUX系统中的应用 2011-03-31 19:59 181人阅读 评论(0) 收藏 举报 1.文件系统简述 随着32位CPU价格不断下跌,片上存储设备的容量相比越来越 ...
- 第二部分 s3c2440 移植linux内核 添加网卡支持 yaffs2文件系统支持
三.内核的移植 说明:针对的是百问网的jz2440 gcc:4.9.1 1.移植内核 首先,下载源码包:https://www.kernel.org/ 现在时间为2014年12月20日其主界面截图为: ...
- s5pv210 linux内核移植,简单根文件系统制作 - S5PV210 Linux3.8.3内核移植_Linux编程_Linux公社-Linux系统门户网站...
1.这里为什么选nfs文件系统呢? 在产品开发阶段,因为nfs根文件系统并不需要编译进内核,方便调试. 2.制作根文件系统需要用到BusyBox 解压进入busybox目录: root@linuxid ...
- linux3.0 nand分区,OK6410(256MRAM2Gnandflash) Linux3.0.1内核移植
这里我主要移植的是增加yaffs2文件系统支持,修改和移植nand驱动. 1.不知道为什么我这yaffs2的补丁打上了就没发现过编译错误,相当顺利啊 呵呵. 附上补丁地址--------------- ...
- 【移植驱动到Linux3.4.2内核之一】移植DM9000C网卡驱动
学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 之前已经把uboot,内核,文件系统,都移植好了,今天开始我们把第二 ...
- 2440 linux文件写,添加yaffs2文件系统 - Linux2.6.39在S3C2440上的移植_Linux编程_Linux公社-Linux系统门户网站...
1.主机环境:VMare下Ubuntu10.04 ,1G内存. 2.编译编译环境:arm-linux-gcc 3.开发板:Micro2440,2M nor flash,256M nand flash. ...
- S3C2440移植linux3.4.2内核之内核框架介绍及简单修改
文章目录 uboot启动内核分析 简单配置内核 编译内核 设置机器ID 修改晶振 移植Linux3.4.2内核其他文章链接: S3C2440移植linux3.4.2内核之内核框架介绍及简单修改 S3C ...
- IMX6移植Linux3.0.35内核时需要添加的矩阵按键的平台设备信息
学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 本文记录在IMX6开发板上移植鼎芯Linux3.0.35内核时,需要 ...
最新文章
- cgi,fastcgi,php-cgi,php-fpm之间的关系
- C++STL常用查找算法
- 基础练习 数列排序 c语言
- 数据采集录入填报时如何只更新当前修改行
- mysql主从复制时间配置_MySQL主从复制配置
- Flink 源码 | 自定义 Format 消费 Maxwell CDC 数据
- python中format函数用法简书_增强的格式化字符串format函数
- vivo S10系列官方渲染图公布 外壳太好看了!
- React与前端:React家族介绍
- http协议 文件下载原理详解
- PotPlayer+SVP4视频补帧简易教程
- java火柴人吃豆豆,4399游戏火柴人吃豆豆全图文通关攻略分享
- 【discuzx2】【家园广播】follow_feed.htm
- 从动物纪录片中所学所得
- Tomcat与JDK版本对应关系,Tomcat各版本特性
- Win11游戏模式怎么开启?Win11开启游戏模式的方法
- VBA 字典数组运用查询系统
- 虚拟机服务器负荷,虚拟机中服务的负荷评估和负载均衡方法
- nc文件分解为tiff文件
- DB2: SQL0902C A system error occurred. Subsequent SQL statements cannot be processed. IBM software
热门文章
- Struts2学习总结三
- 【译】Everything You Need to Know About Decentralized AI
- Guide To Using The Gnosis Multisig Wallet
- 以太坊虚拟机EVM的缺陷与不足
- Hyperledger Fabric 交易流程
- 详细设计 存储分配_万字长文:云架构设计原则(一)
- python免费入门_python入门 2018最新最全学习资料免费获取啦
- matlab优化工具箱
- ICCV 2017 PTAV:《Parallel Tracking and Verifying:A Framework for Real-Time and High Accuracy ...》论文笔记
- 洛谷P1873 砍树