uboot - bad crc

别再被‘Bad CRC-32’卡住了!PyTorch安装报错终极排查手册(附--no-cache参数详解) 本文详细解析了PyTorch安装过程中常见的'Bad CRC-32'错误,提供了从网络问题、存储系统检查到缓存机制分析的全面排查流程。重点介绍了使用--no-cache-dir参数等解决方案,帮助开发者高效解决CRC校验失败问题,确保深度学习环境顺利搭建。 阅读详情

先来看一张图
这里写图片描述
这里写图片描述

void sf_env_relocate_spec(void)
{
    int ret;
    /*
        初始化Spi Flash。应用在操作Spi Flash之前 ,需要调用这个函数来初始化。
    */
    env_flash = spi_flash_probe(CONFIG_ENV_SPI_BUS, CONFIG_ENV_SPI_CS,CONFIG_ENV_SPI_MAX_HZ, CONFIG_ENV_SPI_MODE);
    if (!env_flash)
        goto err_probe;
    /*
      从spi flash 的CONFIG_ENV_OFFSET 开始读取,长度为CONFIG_ENV_SIZE,保存到env_ptr
      即 : 从ox80000地址开始读取,读取长度0x40000 ,即一个env 扇区的大小(可以配置的)
    */
    ret = spi_flash_read(env_flash, CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE, env_ptr);
    if (ret)
        goto err_read;
    /*
        对读取的env进行crc校验,第一次的时候 没有环境变量保存到spi falsh中,
        所以 会goto err_crc. 现在你明白了 第一次开机的时候为什么会出现Bad crc了吧。

        比如 : 你烧写uboot 到 0x0 -> 0x100000处,先sf erase 这 1 M,0x80000 -> (0x80000 + 0x40000
               内容都是 FF FF,根本没有环境变量在里面。 那么环境变量是什么时候放到里面去的呢? 下面详解。   
    */
    if (crc32(0, env_ptr->data, ENV_SIZE) != env_ptr->crc)
        goto err_crc;
    /*
      typedef   struct  global_data {
           unsigned long    env_addr;   
           unsigned long    env_valid;  crc 校验成后,这个值会是 1
           } 
    */
    gd->env_valid = 1; //如果不是第一次,那么看 env_valid 为 1,不是为0,说明spi flash上的环境变量crc校验成功
    return;
err_read:
    spi_flash_free(env_flash); //不要忘记释放
    env_flash = NULL;
err_probe:
err_crc:
    puts("*** Warning - bad CRC, using default environment\n\n");//这就是第一次开机的时候 打印出来的信息。
    set_default_env(); //使用默认的环境变量
}
保姆级教程:Ubuntu下用TFTP+Uboot给OpenBMC刷系统(附常见错误排查) 本文提供Ubuntu环境下使用TFTP和Uboot为OpenBMC刷系统的详细教程,涵盖环境准备、TFTP服务配置、镜像传输及常见错误排查。特别针对网络配置失败、镜像传输中断等问题提供解决方案,帮助开发者高效完成系统刷新。 阅读详情

相关推荐

HybridCLR热更新打包报错全解析:从原理到实战解决方案

热更新技术是现代游戏和应用开发中实现动态内容交付与Bug修复的核心机制,它允许开发者在无需重新发布完整应用的情况下更新代码逻辑。其原理通常涉及在运行时加载并执行新的代码模块,这要求框架在底层实现安全的代码隔离、内存管理与元数据桥接。在Unity生态中,HybridCLR作为基于IL2CPP的高性能热更新解决方案,通过补充元数据和AOT泛型引用技术,实现了对C#代码的原生级热更支持,显著提升了开发迭代效率与线上问题修复能力。然而,在实际的工程实践中,尤其是在面向Android、iOS等多平台打包构建时,开发者

weixin_29017445的博客 308

Warning - bad CRC, using default environment

1、首先在uboot下面对flash进行读写操作,比如随便设置环境变量 ,若无法设置成功,就考虑flash是否是四线的硬件接口? 2、在设置环境变量操作正常之后,若依然有这个错误,那就是下面的错误问题: 原因是flash  扇区 或者是ERPROM 含有的环境变量 还从没被初始化。 使用了saveenv 命令 保存了环境变量后,这个报错消息就能消失了。    

fyl027的专栏 5789

银河麒麟V10SP1实战:5步搞定AD域登录(附Samba+Winbind配置详解)

本文提供银河麒麟V10 SP1操作系统无缝集成Windows AD域的实战指南。文章深入解析了Samba、Winbind与Kerberos三大核心组件的协作原理,并详细阐述了从环境准备、软件包安装、配置文件定制到执行加域及排错的全流程。特别针对2403等新版本提供了关键配置差异与避坑要点,旨在帮助企业运维人员实现高效、稳定的域环境登录与管理。

weixin_29269441的博客 289

Warning - bad CRC, using default environment问题解决

环境:RedHat 9.0+u-boot-1.1.2+cross-2.95.3 现象:配置好u-boot,在RAM里正常启动如下: -------------------------------- U-Boot 1.1.2 (Aug 17 2006 - 14:07:56) U-Boot code: 21F00000 -> 21F156CC  BSS: -> 21F198D0

flymachine的专栏 2万+

从SolidWorks到Simulink:手把手教你用URDF文件搭建六轴机械臂仿真模型(含STL文件配置避坑)

本文详细介绍了从SolidWorks到Simulink的六轴机械臂URDF仿真全流程,包括URDF文件导出、Simscape模型生成与调试、动力学参数获取与验证等关键步骤。重点解决了STL文件配置、关节接口设置等工程化难题,帮助开发者高效构建可控制的数字孪生体。通过实战案例和优化技巧,提升机械臂仿真效率与准确性。

weixin_26812607的博客 265

Fluent新手避坑:遇到‘Floating point exception’别慌,这7个排查步骤帮你搞定

本文为Fluent新手提供了遇到‘Floating point exception’错误时的7个详细排查步骤。从理解浮点异常的本质到边界条件检查、时间步长设置、求解器选择、网格优化、亚松弛因子调节以及高阶格式的取舍,帮助用户快速定位并解决问题,确保CFD仿真的稳定性和准确性。

weixin_30480075的博客 260

解决 Warning - bad CRC, using default environment警告

接上一篇文章,当编译下载后出现如下警告,如何消除? => env default -a ## Resetting to default environment => saveenv Saving Environment to MMC... Writing to MMC(0)... done 重启,警告消失 U-Boot 2016.03 (May 08 2020 - 20:19:49 +0800) CPU: Freescale i.MX6ULL rev1.1 69 MHz (ru

loveshipting的博客 9104

高频面试题-项目介绍篇

聊聊如何介绍项目经历。

m0_73359763的博客 1908

uboot启动linux内核时输出Verifying Checksum ... Bad Data CRC解决方法

先贴出笔者在uboot启动linux时的错误输出 NAND read: device 0 offset 0xa0000, size 0x400000 size adjusted to 0x200000 (16 bad blocks) 2097152 bytes read: OK ## Booting kernel from Legacy Image at 30000000 ... Ima

Mr.潘的专栏 1万+

PCB布线避坑指南:晶振布局的5个致命错误(附正确示例图)

本文深入解析PCB布线中晶振布局的5个致命错误,包括底层布线、电容布局、地平面处理等关键问题,并提供实战解决方案。通过真实案例和量化数据,帮助硬件开发者避免常见陷阱,提升电路稳定性和性能。特别针对晶振这一高敏感元件,给出布线参数黄金法则和三维避让原则。

weixin_29215391的博客 428

04 Zabbix自定义触发器

1、触发器是什么 触发器表达式:允许定义一个什么状况的数据是“可接受”的阈值。因此,如果接收的数据超过了可接受的状态,则触发器会被触发 , 或将状态更改为异常。 一个触发器可以拥有下面几种状态: 值 描述 OK 这是一个正常的触发器状态。在旧版本的Zabbix中称为FALSE。 PROBLEM 通常意味着发生了某些事情。例如,处理器的负载较高。在旧版本的Zabbix中称为TRUE。 2、创建触发器TRIGGER 案例:系统超过3个用户登录,则告警。 2.1 开启告警声

Jian Sun_的博客 1540

uboot: Warning - bad CRC or NAND, using default environment

when uboot start,dispaly following info: U-Boot 1.1.6 (Mar 19 2008 - 14:02:12) DRAM: 32 MB NAND: 1024 MiB *** Warning - bad CRC or NAND, using default environment so google and find ,the *** War

Canbus的专栏 4165

【2026年华为暑期实习(AI)-4月8日-第一题- 选择题】(题目+思路+Java&C++&Python解析+在线测试)

答案与解析 1. 相关系数问题 答案:C. 完全负线性相关 解析:相关系数ρ=-1表示X和Y之间存在完全负线性相关关系,所有数据点都严格落在一条斜率为负的直线上。 2. 矩阵秩问题 答案:B. Σ的对角线上非零奇异值的个数 解析:矩阵A的秩等于其奇异值矩阵Σ中非零奇异值的个数,因为U和V都是正交矩阵,不改变矩阵的秩。 3. 条件概率问题 答案:B. 0.5 解析:根据全概率公式和贝叶斯公式计算,P(B)=0.5×0.4+0.3×0.6=0.38,P(A|B)=(0.5×0.4)/0.38≈0.526,最接近

m0_73659489的博客 287

Uboot中*** Warning - bad CRC or MMC, using default environment解决

首先找到打印此信息的位置,搜索可知在/common/env_cmm.c文件中。 程序如下: #if !defined(ENV_IS_EMBEDDED) static void use_default() {          puts ("*** Warning - bad CRC or MMC, using default environment\n\n");          se

嵌入空间 6839

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

uboot - *** Warning - bad CRC, using default environment

  出现这个现象的原因环境变量存储区没有相应的数据,产生的原因可能是: 1、首次烧写uboot启动,,出现这个提示,执行saveenv 指令保存环境变量即可; 2、nor fash芯片的 基地址出错。   一般情况下,nor flash的物理地址就是uboot下的基地址。但是特殊芯片(比如MindSpeed 的IBR功能)uboot中地址做了二次转换,所以nor flash的基地址应...

weixin_34372728的博客 1939

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

2440uboot启动内核打印:Verifying Checksum ... Bad Data CRC ERROR: can't get kernel image!

记录我踩过的坑。 开始我的操作: tftp 0x30000000 uImage nand erase 0 0x200000 nand write.jffs2 0x30000000 0 0x200000 set bootcmd 'nand read.jffs2 0x32000000 0 0x200000;bootm 0x32000000' 重启会打印: Verifying Checks

lx820的博客 1880

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Hi3516A用spi flash出现*** Warning - bad CRC, using default environment

最近在调Hi3516A的板,硬件不知道为什么如此设计,用一片16bit4G的ddr,16Mspi flash,按理如果是A应该是2片16bit的ddr,组成32位总线,现在怕是只能当D来用了,编译成功后,烧录uboot后,出现*** Warning - bad CRC, using default environment,尝试用setenv改变量,sa也提示成功,但reset后问题还是一样,折腾了...

5517

启动Kernel提示Bad Data CRC

如上图,我明明将uImage正确写入到里nandflash里面,但启动但时候就是提示bad CRC。 后来我手动执行nand read kernel想看看是不是环境变量里面的命令执行有问题,意外但被我发现只读出里2M但内容,原来我划分但kernel只有2M,但最新的4.15.1的内核已经到了3M多,于是只好重新划分uboot里面但分区表,改成4M,如下图: 但为什么上面写的size还是...

weixin_34221112的博客 479

uboot env 没有擦除导致的问题

sd卡升级emmc的uboot/kernel/dtb/rootfs后,发现无法启动,最终发现是uboot环境变量init修改了,init=/sbin/bootchartd,而正常版本rootfs中是没有bootchartd这个命令的,导致系统无法启动。emmc相对sd卡来说多了boot0/boot1等分区,而且启动的时候uboot是在boot0分区,uboot的env可能会想当然在boot0中,和实际测试不符合,那就是说人为指定了在user area。在uboot下的操作,和理论很符合,让自己更自信了呢?

u012091769的博客 1294

uboot使用tftp下载时出现“checksum bad”问题原因分析

一、问题 二、原因分析 你的虚拟机是不是这样设置的呢? 如果是的话,请看下边的解释: 使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统...

weixin_30750335的博客 281

U-Boot移植(13)Warning - bad CRC or NAND, using default environment

接上面(5)在串口终端出现如下: U-Boot 1.1.6 (Nov 25 2009 - 22:15:51)DRAM: 64 MB Flash: 1 MB NAND: 64 MiB *** Warning - bad CRC, using default environment 还存在警告,这个警告不是错误,而是新的环境变量起作用, 只要在OPENJTAG<下输入saveen...

weixin_30530339的博客 170

学习 uboot 之四主流程main_loop分析

接着上一篇内容,本篇我们来分析main_loop的主要内容: main_loop主要功能有两点: 1.没有进入调试模式的话,初始化一些参数,直接跳转到内核入口处执行 2.进入调试模式,执行串口输入的命令 s = getenv ("bootcmd"); if (bootdelay >= 0 && s && !abortboot (bootdelay)) { {

wll1228的博客 2328

Uboot

uboot

举子人间 7709

qemu启动uboot

首先下载uboot源码包,UBOOT源码下载地址:http://ftp.denx.de/pub/u-boot/。这里取版本u-boot-2018.09.tar.bz2。 配置好指定的交叉编译工具链,工具链的制作方法,请参考文章——ARM交叉编译工具链的制作 。 进入Uboot的根目录,执行如下命令编译UBOOT: 1、生成配置文件, make ARCH=arm vexpress_ca9x4_...

jqh_111的专栏 1万+

Uboot 网卡移植遇到的问题与解决方法

前言 在上一章节中描述的两个问题,这里做下简单回顾。 情况一 在运行到接收以太帧的时候,出现了data abrot异常,如下: data abort pc : [<7fe9a2a0>] lr : [<7aede325>] reloc pc : [<43e432a0>] lr : [<3ee87325>] sp : 7ae54ce0 i...

Jason_416的博客 2537
上一篇: uboot-Invalid boot device
下一篇: 赏析linux kernel 中的内核线程
leesagacious
博客等级 码龄12年 146粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值