jffs2_scan_eraseblock(): Magic和Empty Flash at...解决办法!

EBAZ4203 ZYNQ 移植U-BOOT+Linux+JFFS2 Nand启动-记录 EBAZ4203 ZYNQ 移植U-BOOT+Linux+JFFS2 ,Nand启动 阅读详情

这段时间因为工作上的需要,一直在弄Linux下的JFFS2根文件系统,前期老是出现Empty flash at 0x0012cdff - 0x0012ffff以及jffs2_scan_eraseblock(): Magic.....这样一大堆的警告,虽然不影响linux系统的运行,但是多少对于linux系统来说,还不是很安全的啦,毕竟老是在擦除不该擦除的地址,因为这些地方对应的是linux的内核代码处,总感觉不是很完美的解决问题,因此在网络上也GOOGLE了一下,有很多人都遇到这样的问题,也看到很多人写了关于这样问题的解决办法,可是按照网路上的方法,始终无法解决这类现象,后来,没有办法,只有自己仔细看了一下MTD的详细介绍和分析了相关代码,最后修改两处地方,才将问题解决。

主要还是讲讲JFFS2文件系统的制作以及一些细节吧:mkfs.jffs2

在开发板中采用cat proc/mtd 查看erasesize大小为0x10000,而我制作JFFS文件时,也是选中0x10000的啊,因此可以知道不是这里的问题,最后,看了一下生成的JFFS2的文件大小为1.200M,心里想好奇怪的文件大小哦。最后自己算了一下:1.2x1024x1024=1258291.2=0x133333,最后重新生成JFFS2文件时,设置了一下:--pad=0x133333,再来查看JFFS2的文件大小问1.218M。不一样的哦。这就说明,很可能是将内存脏数据填充到文件系统剩余页部分。而出现了jffs2_scan_eraseblock(): Magic和Empty Flash at...问题,之后烧录到系统中,启动很快,再也看不见这两个错误了。问题完美解决了。

mkfs.jffs2 -n -s 512 -e 64KiB--pad=0x133333 -d rootfs -o myjffs2.img
参数注释:
        -s  页大小,采用默认的设置也可。
        -e  擦除块大小,需和手册相匹配,此处为128(由手册可知),1 Block = (2K + 64)B + 64 Pages=(128K + 4K)bytes
            此处如果设置过大(如 256),将出现jffs2_scan_eraseblock():Magic bitmask......问题
            如果设置过小(如 64),将出现Empth flash at .......问题 
     --pad 设置生成文件大小,其实此处也不算是设置,因为此选项是填充的意思,当生成文件比参数规定大小大时,此选项不起作用只有当生成文件小于规定大小才会进行填充,如果生成的文件大小不规范,很可能将内存脏数据填充到文件系统剩余页部分。

关于Empty flash at .......以及jffs2_scan_eraseblock(): Magic bitmask...... 针对K9F1G08U0B 256M flash正确使用mkfs.jffs2工具如下:mkfs.jffs2 -n -s 2048 -e 128KiB --pad=0x800000 -d root_fs -o kevin.jffs2参数注释:        -s页大小,试验可以不特别要求,512亦可        -n 擦除块大小,需和手册相匹配,此处为128(由手册可知),1 Block = (2K + 64)B + 64 Pages =  (128K + 4K)bytes    此处如果设置过大(如 256 阅读详情

相关推荐

嵌入式 jffs2问题“ jffs2_scan_eraseblock(): Magic和Empty Flash at”

文件系统制作:          以前的内核系统支持的是yaffs文件系统,现在使用的是yaffs2文件系统,因此需要不同的制作工具,我们在此把它称为mkyaffs2image,按照上面的命令解压后它会被安 装到/usr/sbin目录下,并产生2个文件:mkyaffs2image 和mkyaffs2image-128M。 yaffs: #mkyaffs2image root_q

skdkjxy的专栏 2597

[JFFS2文件系统问题(未解决)]Empty flash at 0x012dbffc ends at 0x012dc000

1、Empty flash at Empty flash at ......Empty flash at 0x012dbffc ends at 0x012dc000 //很多JFFS2 notice: (1) jffs2_build_xattr_subsystem: complete building xattr subsyst, 0 of xdatum (0 unchecke

飞行员锐克的笔记 8753

jffs2文件系统制作

jffs2文件系统制作过程

fulinux的博客 9556

jffs2文件系统挂载问题

制作jffs2根文件系统时指定flash每一块要擦除的block size

B_zhang的专栏 2321

【Stata双重差分模型】双重差分DID的具体操作步骤

本案例将详细阐述如何使用双重差分法进行实证分析,并展示具体的STATA操作代码。

a519573917的博客 2万+

Maya vray 3S皮肤材质球设置与材质节点连接

Maya vray 3S皮肤材质球设置与材质节点连接

WETQETF的博客 2697

ZYNQ MPSoC QSPI启动与JFFS2根文件系统实战指南

嵌入式Linux系统中,根文件系统的选择直接决定设备在工业现场的长期可靠性。JFFS2作为专为NOR/NAND闪存设计的日志型文件系统,凭借内置磨损均衡、掉电安全和压缩能力,成为资源受限、高可靠场景下的关键技术方案;其与ZYNQ MPSoC平台深度协同,通过QSPI接口实现确定性启动与低干扰通信,规避了eMMC/SD卡在高低温、强电磁环境下的稳定性风险。该组合广泛应用于电力终端、轨交控制、边缘网关等严苛场景,支撑断电不丢数、十年免维护等核心运维指标。本文聚焦JFFS2在ZYNQ MPSoC上的工程落地,涵盖

weixin_34413802的博客 449

Robosuite实战:通过Xbox手柄实现机械臂6-DoF精准控制的完整指南

本文详细介绍了如何通过Xbox手柄实现机械臂的6-DoF精准控制,结合Robosuite仿真环境与MuJoCo物理引擎,提供从环境配置到代码实现的完整指南。文章重点解析了手柄映射原理、核心控制代码以及数据采集优化技巧,帮助开发者高效完成机械臂控制任务。

weixin_29169505的博客 419

jffs2 启动的常见的问题

Q:在启动过程中出现at91sam user.warn kernel: Empty flash at 0x00f0fffc ends at 0x00f10000问题 A:在mkfs.jffs2的时候,加上-e 0x20000指定擦除块的大小。-e是指定擦除块的大小,我们使用的nandflash的块大小为128K字节,因此-e后的参数为(128*1024)10=(20000)16。   Q:启

su_linux的专栏 5599

【IIC通信】Chap.1(I2C)IIC通信原理、IIC读写时序详解

IIC通信以两根连线SDA、SCL实现了完善的全双工同步数据传送, 可以方便地构成多机系统和外围器件扩展系统。

Jie_MSD的博客 2万+

【讯飞星火大模型AI】SpringBoot整合星火API:从零构建智能数据分析助手

本文详细介绍了如何使用SpringBoot框架整合讯飞星火大模型API,从零构建一个智能数据分析助手。通过清晰的步骤,指导开发者完成API密钥申请、项目搭建、SDK集成与核心代码编写,实现用户通过自然语言指令和CSV数据,即可自动获得ECharts图表代码与专业数据分析结论,极大降低数据分析与可视化的门槛。

neovim7hacker的博客 275

jffs2_scan_eraseblock()问题解决办法

这个问题搞了我三天,尝试了网上的所有办法,均不奏效,只是偶尔能mount上jffs2系统; 尝试的

linux Qt C++ 嵌入式 1万+

RANSAC地面点分割:从原理到C++实战优化

本文深入解析RANSAC算法在点云地面分割中的原理与C++实战优化,涵盖动态迭代次数、自适应阈值等关键技巧,通过并行计算和内存访问优化提升性能,适用于激光雷达点云处理。

weixin_29015051的博客 277

mkfs.jffs2 制作镜像问题整理【原创】

    在新塘开发板NUC972上用华邦 的W25Q128flash 装载程序,rootfs以romfs方式在内核中时没有问题,然后换一种方式,给rootfs 创建独立分区时,加载rootfs失败,使得我要来好好整理一下这部分。     先恢复到rootfs在内核中的方式,然后单独创建一个usr分区来存放app,肯定是失败的,下面就是解决步骤。   /home/zjf/nuc970/nuc9...

张继飞的专栏 3149

第4.4节:保护轴承与安全系统

飞轮储能系统的保护轴承是磁悬浮失效时的最后安全屏障,其设计需满足非干涉性、高可靠性和有限寿命承载原则。转子跌落过程包括自由下落、碰撞、进动和滑行减速等复杂非线性阶段,产生远超常规工况的冲击载荷。保护轴承需具备极限冲击容量、高温耐受性和抗卡死能力。系统采用多层级安全架构,结合故障诊断与健康管理,通过监测振动、电流等参数实现预测性维护。安全停机序列有序结合主动制动与被动摩擦制动,确保系统在极端工况下的安全。保护轴承类型多样,需根据系统规模与可靠性要求合理选择。

技术工作者 227

Proxmox(pve)集群(4)存储(1)配置分布式存储ceph

它使用一种称为CRUSH(Controlled Replication Under Scalable Hashing)算法的数据分布算法来将数据均匀地分布在多个存储节点上,并确保数据的冗余和容错。它负责管理数据的分布、冗余和自动修复。PVE支持本地存储、LVM、NFS、iSCSI、CephFS、RBD、ZFS等存储方式,我这里使用两种存储方式,一种是通过ceph实现分布式存储,一种是通过truenas实现集中式存储。自我管理和自动恢复:Ceph具有自我管理的特性,可以动态地调整和优化存储集群的配置。

Monster✺◟(∗❛ัᴗ❛ั∗)◞✺的博客 2626

jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000a0000: 0x3030 instead 问题分析

嵌入式设备中,如果系统打印出很多类似这样的的消息:jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000a0000: 0x3030 instead 可以确认的是系统在挂载jffs文件系统的时候出错了。我有遇到出多次,总体分为两类: (1)调整分区表之后出现这样的情况,或是更换文件系统的时候出现............

Biao 1万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

jffs2文件系统使用

参考 u-boot增加对jffs2分区的识别与加载 u-boot访问jffs2文件系统 JFFS2 文件系统及新特性介绍 Uboot对jffs2的支持 JFFS2文件系统挂载过程优化的分析报告 uboot uboot打开宏支持, #define CONFIG_CMD_JFFS2/*modify by zhuce*/ #define CONFIG_MTD_DEVICE #define CONFI...

黑客三遍猪 2500

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

jffs2_scan_eraseblock(): Magic bitmask 0x1985 的解决办法

于是尝试将menuconfig 中的 Device Drivers > Memory Technology Device (MTD) support > SPI-NOR device support->Use small 4096 B erase sectors 选项取消选中,将[*]改为[ ],如下图。在网上找了很多网页资料,这是由于flash 不支持4k块擦除导致的,需要在spi-nor.c中将。最近在给V3S的flash烧录jffs文件系统镜像结果出现了如下图所示这种打印。

sinat_38390607的博客 2511

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Openwrt实践过程-文件系统异常-jffs2_scan_eraseblock

openwrt系统启动过程中,文件系统异常测试环境测试目的测试过程及分析 测试环境 拓扑环境:openwrt系统+板子 测试目的 正常启动 测试过程及分析 启动过程中,板子出现以下相关打印,文件系统异常 jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00193000: 0x1831 instead 相关命令权...

香蕉一号 1457

文件系统(八):Linux JFFS2文件系统工作原理、优势与局限

在嵌入式Linux设备中,经常使用jffs2文件系统来作为参数区的文件系统格式。至于为什么要使用jffs2来作为参数区的文件系统,我猜大部分人都没有做过多的思考。jffs2在2001年被设计出来,距今已过二十多年,现在在嵌入式设备中它还在被大量使用、说明这套设计本身是没有问题。但是,你是否有思考过,你的jffs2文件系统使用是否正确、合理?如果你存储文件某天突然不见了,你要怎么分析?是flash有坏块,还是被jffs2垃圾回收处理掉了?亦或是应用程序误删除了?又要怎样才能把它恢复回来?

Biao 1365
上一篇: 对Kernel panic-not syncing:No init found...init=option to kernel错误总结!
下一篇: linux的自旋锁struct spinlock_t的使用
wang-bob
博客等级 码龄20年 356粉丝 112原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值