linux内核启动时报错ubi0 error: validate_ec_hdr: bad VID header offset 256, expected 64
1.详细错误报告如下:
ubi0 error: validate_ec_hdr: bad VID header offset 256, expected 64
ubi0 error: validate_ec_hdr: bad EC header
ubi0 error: ubi_io_read_ec_hdr: validation failed for PEB 0
2. 为什么会出现这种情况?
由于给ubinize传递的参数有误
3.解决方法
给ubinize传递正确的参数,需要指定的参数有逻辑擦除块大小,最大物理擦除块数目,最小输入输出单元的大小(有可能需要指定subpage大小,这与使用的flash有关,只有支持subpage的nand flash才需要指定这一参数)
举例:
指定使用的根文件系统大小为32MiB (这个根文件系统是使用的ubifs),当前使用的flash为nor flash,从该flash的手册中获知:物理擦除块大小为128KiB,页面大小为256字节.
3.1 最小输入输出单元的大小是多少?
由于当前使用的是nor flash,那么最小输入输出单元的大小为1 (如果使用的是nand flash,那么这个大小就是页面大小)
3.2 最大物理擦除块数目如何计算?
最大物理擦除块数目=根文件系统大小/物理擦除块大小
由于当前指定ubi文件系统大小为32MiB,那么32MiB/128KiB=256
3.3 逻辑擦除块大小如何计算?
逻辑擦除块大小=物理擦除块大小-EC头结构体大小-VID头结构体大小 (EC头和VID头是ubi中的概念,这两个结构体描述逻辑擦除块的相关信息;这是nor flash中的逻辑擦除块的计算方法,那么nand flash的逻辑擦除块大小如何计算呢?请看拓展)
那么128KiB-64B-64B=130944
4.拓展
4.1 nand flash的逻辑擦除块大小如何计算呢?
一个物理擦除块包含的页面数=物理擦除块大小/页面大小
逻辑擦除块大小=(一个物理擦除块包含的页面数-2)* 页面大小=物理擦除块大小-(2*页面大小)
5.参考资料
linux内核启动时报错ubi0 error: validate_ec_hdr: bad VID header offset 256, expected 64的更多相关文章
- linux内核启动时报错ubi0 error: validate_ec_hdr: bad data offset 256, expected 128
1.错误解析 ubi的EC header中有一个字段data_offset来记录数据偏移,数据偏移必须正确才能正确读取每一个物理擦除块中的数据 2.解决方法 擦除整块flash,然后再重新烧写包含ub ...
- Android 开发环境 —— Eclipse 启动时报错:Error when loading the SDK
简述: Eclipse 启动时报错:Error when loading the SDK 错误信息: Error when loading the SDK: Error: Error parsing ...
- tomcat在linux服务器启动时报错Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000794500000, 576716800, 0) failed; error='Cannot allocate memory' (errno=12)
原因是内存不足了 解决办法:1.top命令查看后台进程,看哪些可以关闭 2.ps -ef |grep tomcat看哪些不用的tomcat起着,也可以从这里关 3.加大这个tomcat的内存, 在ca ...
- Tomcat启动时报错:“ Error starting static Resources”问题解决
部署测试环境的时候,需要用到Tomcat.故在Linux上部署了Tomcat,并将开发提供的工程包部署到Tomcat的webapps目录下,启动Tomcat,部署成功.第二天修改工程配置文件时,发现w ...
- zookeeper启动时报错:Error contacting service. It is probably not running问题
查看zookeeper.out发现启动日志报错未找到java路径. 启动日志位于zookeeper-4.0.10/bin目录下 修改/etc/profile中环境变量得以解决.
- MySQL 从 5.5 升级到 5.6,启动时报错 [ERROR] Plugin 'InnoDB' init function returned error
MySQL 从 5.5 升级到 5.6,启动时报错: [ERROR] Plugin 'InnoDB' init function returned error. [ERROR] Plugin 'Inn ...
- SpringBoot发布WAR启动报错:Error assembling WAR: webxml attribute is required
Spring Boot发布war包流程: 1.修改web model的pom.xml <packaging>war</packaging> SpringBoot默认发布的都是j ...
- 008-SpringBoot发布WAR启动报错:Error assembling WAR: webxml attribute is required
一.Spring Boot发布war包流程: 1.修改web model的pom.xml <packaging>war</packaging> SpringBoot默认发布的都 ...
- mysql启动时报错:Starting MySQL... ERROR! The server quit without updating PID file (/opt/mysql/data/mysql.pid)
mysql启动报错Starting MySQL... ERROR! The server quit without updating PID file (/opt/mysql/data/mysql.p ...
随机推荐
- WEB安全第五篇--其他注入的奇技淫巧:XML注入、Xpath注入、Json注入、CRLF注入
零.前言 最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件.底层安全.漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的pay ...
- 二、微信小游戏开发 多线程Worker
微信多线程Worker教程 微信多线程Worker API 一.创建Worker,并和当前线程通讯 多线程worker只能创建1个.能和当前线程互传数据. 创建worker 在微信开发者工具中,在当前 ...
- 素数测试算法(基于Miller-Rabin的MC算法) // Fermat素数测试法
在以往判断一个数n是不是素数时,我们都是采用i从2到sqrt(n)能否整除n.如果能整除,则n是合数;否则是素数.但是该算法的时间复杂度为O(sqrt(n)),当n较大时,时间性能很差,特别是在网络安 ...
- java之面向对象三大特征(封装,继承,多态)
一.封装 封装是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类提供的对外方法进行内部信息的操作和访问. 封装可以达到以下目的: 1)隐藏类的实现细节 2)让使用者只 ...
- DetailView内匿名函数不可用
DetailView yii\widgets\DetailView 小部件显示的是单一 yii\widgets\DetailView::$model 数据的详情. 它非常适合用常规格式显示一个模型(例 ...
- Centos6.5安装JDK环境
1,系统版本查看 2,下载jdk1.8 wget http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c ...
- poj3764 The XOR Longest Path【dfs】【Trie树】
The xor-longest Path Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10038 Accepted: ...
- 实现VMware下CentOS和Windows之间的复制粘贴
实现VMware下CentOS和Windows之间的复制粘贴1.第一步,打开虚拟机2.点击菜单栏中的虚拟机->安装VMware Tools3.桌面中找到VMwareTools-10.0.10-4 ...
- Python绘图教程
1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import numpy as np import matplotlib as mpl import mat ...
- talib 中文文档(三):talib 方法大全
Function API Examples Similar to TA-Lib, the function interface provides a lightweight wrapper of th ...