嵌入式 关于在nandflash上运行yaffs2文件系统出现“No init found. Try passing init= option to kernel”

本文主要是介绍嵌入式 关于在nandflash上运行yaffs2文件系统出现“No init found. Try passing init= option to kernel”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

No init found.  Try passing init= option to kernel”这个问题困扰了我两天才解决,在网上也查了很多资料,基本上都答案一样的,当然也可能是造成这个原因的一种,现在把它们小结一下:

1、首先保证在uboot中使用nand write.yaffs x x x,而不是nand write

2、保证内核支持nand驱动以及yaffs2,需要注意的是不需要yaffs2文件系统进行ecc校验交给内核的MTD完成即可!

3、保证文件系统格式正确,根据nand的特性“pagesize”“ecctype”就可以了,一般的OOB都是“64Byte”具体需要看手册“spare area”的Value

4、保证在进行nand write.yaffs 命令中烧写的文件系统的大小必须是真实大小,精确到K,例如:

write_yaffs2:
1.1 com:
(18.2M:0x1246440):
nand erase 0x600000 0x5100000;mw.b 0x82000000 ff 0x1246440;loadb 0x82000000;nand write.yaffs 0x82000000 0x600000 0x1246440;reset (128M,81M,20M)
nand erase 0x600000 0x7D00000;mw.b 0x82000000 ff 0x1246440;loadb 0x82000000;nand write.yaffs 0x82000000 0x600000 0x1246440;reset (256M,125M,20M)

5、yaffs2文件系统制作命令:
root@u12d32:/qy_work/a3518_v080_develop/fs_kernel# ./mkyaffs2image
mkyaffs2image: image building tool for YAFFS2, last update Jun 25 2014 20:40:22. 
Version: Linux-2.6.35-Google Nand Controller V301
Usage:
    mkyaffs2image  dir  image  pagesize  ecctype  [-v].


    dir          the directory tree to be converted
    image        the output file to hold the image
    pagesize     the page size to be converted
                 0 : 512 Bytes pagesize
                 1 : 2K Bytes pagesize
                 2 : 4K Bytes pagesize
                 3 : 8K Bytes pagesize
    ecctype      ECC type
                 0 : no ecc
                 1 : used 1bit ecc
                 2 : used 4byte ecc
                 3 : used 8byte ecc
                 4 : used 24bit/1k ecc
    -v           verbosely list files processed


root@u12d32:/qy_work/a3518_v080_develop/fs_kernel# 

我实际使用的命令为2k、1bit:

这篇关于嵌入式 关于在nandflash上运行yaffs2文件系统出现“No init found. Try passing init= option to kernel”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/572831

相关文章

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

荣耀嵌入式面试题及参考答案

在项目中是否有使用过实时操作系统? 在我参与的项目中,有使用过实时操作系统。实时操作系统(RTOS)在对时间要求严格的应用场景中具有重要作用。我曾参与的一个工业自动化控制项目就采用了实时操作系统。在这个项目中,需要对多个传感器的数据进行实时采集和处理,并根据采集到的数据及时控制执行机构的动作。实时操作系统能够提供确定性的响应时间,确保关键任务在规定的时间内完成。 使用实时操作系统的

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

如何在运行时修改serialVersionUID

优质博文:IT-BLOG-CN 问题 我正在使用第三方库连接到外部系统,一切运行正常,但突然出现序列化错误 java.io.InvalidClassException: com.essbase.api.base.EssException; local class incompatible: stream classdesc serialVersionUID = 90314637791991

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

Anaconda 中遇到CondaHTTPError: HTTP 404 NOT FOUND for url的问题及解决办法

最近在跑一个开源项目遇到了以下问题,查了很多资料都大(抄)同(来)小(抄)异(去)的,解决不了根本问题,费了很大的劲终于得以解决,记录如下: 1、问题及过程: (myenv) D:\Workspace\python\XXXXX>conda install python=3.6.13 Solving environment: done.....Proceed ([y]/n)? yDownloa

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚