linux3.01 yaffs2补丁,S3C2440移植linux3.4.2内核之支持YAFFS文件系统

上一节S3C2440移植linux3.4.2内核之修改分区以及制作根文件系统我们构建了根文件系统,这节我们修改内核支持yaffs2文件系统

@[TOC]

移植Linux3.4.2内核其他文章链接:

获取yaffs2源码并给内核打补丁

首先获取yaffs2源码(参考git命令使用详解)

cd /work/nfs_root

git clone git@github.com:lifeyx/yaffs2.git

//若下载出现error:403,可以试试vi /etc/resolv.conf,将nameserver地址改为: 114.114.114.114

将yaffs2源码来配置到内核里(使内核支持yaffs2)

vi /work/nfs_root/yaffs2/README-linux

bVcMDLy

参考上图:

/*给内核打补丁*/

cd /work/nfs_root/yaffs2/

./patch-ker.sh c m /work/system/linux-3.4.2//c:将yffs2文件夹copy到linux-3.4.2/fs里, m:指定多版本

/*通过menuconfig,来使内核支持yaffs2*/

cd /work/system/linux-3.4.2/

make menuconfig

搜索yaffs,找到位于:

-> File systems -> Miscellaneous filesystems (MISC_FILESYSTEMS [=y]) yaffs2 file system support //按Y键,使内核支持yaffs2

编译内核make uImage

如下图所示,出现很多错误:

bVcMDLG

如上图,问题都是出在fs/yaffs2/下,很多error都讲述:调用的成员名,在struct mtd_info结构体里没有定义.

修改yaffs2源码

接下来我们便将fs/yaffs2文件夹添加到内核3.4的si工程中.

然后进入yaffs2/yaffs_vfs.c,第1958行:

(linux下显示的是yaffs_vfs.c,vi可以打开yaffs_vfs.c。但是在si工程中没有找到yaffs_vfs.c,所以从ubuntu中拷贝一份yaffs_vfs.c添加到si中。)

bVcMDLH

然而发现struct mtd_info *mtd的结构体mtd_info定义的是_sync成员,如下图所示:

bVcMDLI

所以接下来只有遇到与struct mtd_info有关的error,都在成员前加上: _

比如:

将yaffs_vfs.c文件2514~2515行的mtd->sync 改为: mtd->_sync

将yaffs_vfs.c文件2702行的mtd->erase改为: mtd->_erase

将yaffs_vfs.c文件2703行的mtd->read改为: mtd->_read

... ...

并将yaffs_vfs.c的第2967行的 root = d_alloc_root(inode);改为: root = d_make_root(inode);

bVcMDLJ

全部修改后,将yaffs_vfs.c上传到ubuntu,再次make uImage,

报错如下

bVcMDLL

内核没有定义 d_alloc_root

bVcMDLM

我们在内核搜索下s_root看下别的文件系统怎么使用的。

bVcMDLNbVcMDLO

全部修改后,将yaffs_vfs.c上传到ubuntu,再次make uImage,报错如下

bVcMDLP

估计是缺少下划线

bVcMDLR

修改完后重新编译

报错

bVcMDLS

同样,没有在SI工程中找到yaffs_mtdif1.c,从ubuntu中拷贝下来,添加到si工程中。

上图报错的各个文件内的函数都要添加下划线

bVcMDLW

编译报错

bVcMDLX

把ubuntu上的yaffs_mtdif2.c文件拷贝到本地假如si工程,继续上述文件中的下划线

bVcMDLY

最终编译成功

bVcMDLZ

拷贝

cp arch/arm/boot/uIamge /work/nfs_root/uImage_yaffs

由于上章-我们制作了文件系统,名为fs_mini_mdev_new,所以直接使用mkyaffs2image工具制作:

mkyaffs2image fs_mini_mdev_new fs_mini_mdev_new.yaffs2

然后通过uboot来烧写yaffs2、烧写uImage发现没成功,我们用替代法查找问题

UBOOT可能有问题:换上1.1.6的UBOOT,文件系统启动成功

发现1.1.6的UBOOT没问题,所以就是我们移植的新UBOOT有BUG:

drivers\mtd\nand\Nand_util.c

if (!need_skip && !(flags & WITH_DROP_FFS)) {

改为

if (!need_skip && !(flags & WITH_DROP_FFS) && !(flags & WITH_YAFFS_OOB)) {

最后启动yaffs2成功:

bVcMDL0

下一节S3C2440移植linux3.4.2内核之内核裁剪我们将裁剪内核。

如遇到排版错乱的问题,可以通过以下链接访问我的CSDN。

**CSDN:[CSDN搜索“嵌入式与Linux那些事”]

文章来源: segmentfault.com,作者:Carlos0321,版权归原作者所有,如需转载,请联系作者。

原文链接:segmentfault.com/a/1190000038723000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值