首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >U-Boot在加载内核时挂起?

U-Boot在加载内核时挂起?
EN

Stack Overflow用户
提问于 2012-09-22 18:54:43
回答 2查看 18.3K关注 0票数 5

我在飞思卡尔电路板imx50evk工作。我已经使用LTIB (linux目标映像构建器)构建了uboot.bin和uImage。在U-Boot提示符下,我输入bootm addr命令,然后在显示消息“正在加载内核...”后挂起。

代码语言:javascript
复制
> MX50_RDP U-Boot > boot

MMC read: dev # 0, block # 2048, count 6290 partition # 0 ... 
6290 blocks read: OK
## Booting kernel from Legacy Image at 70800000 ...
   Image Name:   Linux-2.6.35.8
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1323688 Bytes =  1.3 MB
   Load Address: a0008000
   Entry Point:  a0008000
   Verifying Checksum ... OK
   Loading Kernel Image ...
EN

回答 2

Stack Overflow用户

发布于 2012-09-24 14:37:27

您需要验证您的主板在0xa0008000处是否真的有RAM,这是内核的“加载地址”。U-Boot可能试图在映像挂起时将其复制到该内存区域。

根据您的评论,我将假设您已经验证了物理地址0xAXXXXXXX处不存在主内存。

您正在使用的uImage文件是使用mkimage实用程序从zImage文件生成的。

您可能需要手动编辑如下所示的行

代码语言:javascript
复制
zreladdr-y     := 0xa0008000

在您的主板的arch/arm/mach-XXX/Makefile.boot中。按照惯例,该地址应该是物理RAM的基址加上0x8000 (32K)的偏移量。然后调整文件中的其他值。删除zImage文件并对内核执行另一个make。

票数 1
EN

Stack Overflow用户

发布于 2015-04-01 16:24:53

在为rockchip的rk3288构建3.20开发内核时,我发现使用LZO图像压缩会使设备在“启动内核”时挂起。我认为这是因为构建主机LZO和部署的解压缩代码之间的版本不匹配,所以任何压缩算法都可能发生这种情况。在我的例子中,切换到gzip修复了这个问题。

这只是我的假设,为什么改变压缩算法会得到一个可引导的内核。如果我说错了,请纠正我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12543122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档