在烧写wince时 “Don't support raw image !!OEMVERIFYMEMORY: Invalid image” 的问题!

作者分享了初次进行Wince开发时遇到的烧板问题及解决过程,指出官方资料可能存在误导,并提供了实际有效的解决办法:在烧写完eboot.nb0后需要重新启动开发板并按5键,之后的操作与官方说明一致。

本人第一次做wince开发,就遇到了烧板的问题,搞了两三天,在网上搜时也搜到类似的问题,但那位兄弟有点不厚道

自己搞出来了,也不贴一下。顶他而郁闷的人不少吧……,今天总于搞定了,其实没有什么技术含量。就是官方的光盘

上的资料写的有点问题,如果严格按照那来,就会出现下面问题:

 

System ready!
Preparing for download...
Please send the Image through USB.
Don't support raw image
!OEMVERIFYMEMORY: Invalid image

解决办法:在烧写完eboot.nb0后需要重新启动一下开发板,启动后再按5 ,以下的步骤就与说明说上的一样了。(如果不行的话,关掉后,过一会在重启开发板试试)

<think>好的,用户遇到了“mkimage: Can't read image.ub.tmp: Invalid argument”这个错误,需要帮助解决。首先,我得确定这个错误通常出现在什么情况下。mkimage是U-Boot工具链中的一个工具,用于生成U-Boot可识别的镜像文件。这个错误提示说无法读取image.ub.tmp文件,参数无效。可能的原因有几个方面。 首先,文件路径或权限问题。用户可能没有正确指定文件路径,或者该文件不存在。这候应该检查文件是否存在,路径是否正确。另外,权限问题也可能导致无法读取文件,需要确认用户是否有读取权限。 其次,文件格式或内容错误。image.ub.tmp可能已经损坏,或者其格式不符合mkimage的要求。比如,文件可能没有正确的头部信息,或者在生成过程中被截断。这候可以尝试重新生成该文件,或者检查生成过程中是否有错误。 另外,参数错误的可能性。用户在使用mkimage可能传递了错误的参数,比如错误的类型、地址等,导致工具无法处理输入文件。需要检查命令的参数是否正确,特别是选项如-T(类型)、-A(架构)、-O(操作系统类型)、-C(压缩方式)等是否合适。 还有可能是磁盘空间不足。生成镜像文件需要足够的空间,如果磁盘满了,可能会导致入失败,从而生成无效的文件。需要检查磁盘空间,清理不必要的文件。 接下来,我应该建议用户逐步排查这些问题。首先确认文件是否存在,路径是否正确,权限是否足够。然后检查生成image.ub.tmp的过程是否有错误,是否需要重新生成。接着核对mkimage命令的参数是否正确,参考文档或示例命令进行调整。同检查磁盘空间,确保有足够的空间进行操作。 如果这些步骤都尝试过仍然有问题,可能需要更深入的调试,比如使用strace跟踪系统调用,查看具体出错的位置。或者检查mkimage的版本是否与当前使用的U-Boot版本兼容,是否存在已知的bug需要升级或打补丁。 另外,用户可能需要提供更多上下文信息,比如具体的命令、生成image.ub.tmp的步骤、操作系统环境等,以便更准确地定位问题。但基于现有的信息,这些应该是主要的解决方向。</think>在编译或生成U-Boot镜像遇到`mkimage: Can't read image.ub.tmp: Invalid argument`错误,通常与文件路径、权限、格式或参数配置相关。以下是逐步排查方法: --- ### **1. 检查文件是否存在** - **问题**:`image.ub.tmp`文件可能未生成或路径错误。 - **操作**: ```bash ls -l image.ub.tmp ``` 如果文件不存在: - 确认生成`image.ub.tmp`的流程(如编译脚本或Makefile)是否正常执行。 - 检查编译日志是否有前置错误(如编译中断、依赖缺失)。 --- ### **2. 验证文件权限** - **问题**:当前用户可能无权限读取文件。 - **操作**: ```bash chmod +r image.ub.tmp # 添加读取权限 ``` - 使用`ls -l`检查文件权限是否为`-rw-r--r--`或更宽松。 --- ### **3. 检查文件格式合法性** - **问题**:`image.ub.tmp`可能为空或内容损坏。 - **操作**: ```bash file image.ub.tmp # 查看文件类型 hexdump -C image.ub.tmp | head # 检查文件头部内容 ``` - 正常镜像文件应有明确的结构(如U-Boot头部)。 - 如果文件大小为0或内容杂乱,需重新生成。 --- ### **4. 核对mkimage命令参数** - **问题**:参数错误(如类型、架构不匹配)会导致无法解析文件。 - **示例错误命令**: ```bash mkimage -A arm -T kernel -C none -a 0x8000 -e 0x8000 -d image.ub.tmp output.img ``` - **解决方案**: - 确认`-A`(架构)、`-T`(类型)是否与目标设备匹配。 - 参考文档或已有脚本核对参数,例如: ```bash mkimage -A arm64 -T firmware -O linux -C gzip -d image.ub.tmp image.ub ``` --- ### **5. 检查磁盘空间** - **问题**:磁盘空间不足可能导致文件入不完整。 - **操作**: ```bash df -h # 查看磁盘使用情况 ``` - 清理临文件或扩展磁盘空间。 --- ### **6. 调试工具辅助** - **使用strace跟踪系统调用**: ```bash strace -e trace=file mkimage -d image.ub.tmp output.img ``` 观察`mkimage`尝试打开的文件路径及错误详情。 --- ### **7. 版本兼容性** - **问题**:U-Boot工具链版本与脚本不兼容。 - **操作**: ```bash mkimage -V # 查看版本 ``` - 更新U-Boot工具链至最新版本或与项目匹配的版本。 --- ### **总结步骤** 1. 确认文件存在且可读。 2. 检查生成流程是否完整。 3. 核对`mkimage`参数与文档要求。 4. 验证文件内容合法性。 5. 检查系统资源(权限、磁盘空间)。 6. 升级工具链或调整版本。 若问题仍未解决,请提供完整的`mkimage`命令和生成`image.ub.tmp`的流程,以便进一步分析。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值