gpt4 book ai didi

Linux 内核引导在 Uncompressing Linux 处停止...好的,引导内核

转载 作者:太空狗 更新时间:2023-10-29 12:36:50 25 4
gpt4 key购买 nike

我在将内核从旧版 SH4 移植到新版 SH4 时遇到了问题。请让我展示一下它们之间的区别。

[老款SH4]
引导装载程序:redboot v2.0
内核版本:2.4

[新SH4]
引导加载程序:u-boot v2009.03
内核版本:2.6

在旧的SH4中,很多源代码都是基于内核2.4开发的,所以移植内核2.4到新的SH4看起来比在内核2.6中重新编译源代码更容易。所以我将 mkimage 应用于为旧 SH4 开发的 zImage,如下所示。

mkimage -A sh -O linux -T kernel -C none -a 0x8c210000 -e 0x8c210000 -n 'Old kernel' -d zImage uImage

这张图片加载到新的 SH4 上,如下所示。

tftpboot 8c800000 uImage
cp.b $(fileaddr) a0100000 $(filesize)
bootm a0100000

但是,在“Uncompressing Linux... Ok, booting the kernel”之后引导停止并挂起。我发现无限循环发生在 kernel/head.S 的下面几行,但我想这些行没有问题,因为 kernel/head.S 没有定制,它适用于旧的 SH4。

   !               Clear BSS area
mov.l 3f, r1 ! __bss_start
add #4, r1
mov.l 4f, r2 ! _end
mov #0, r0
9: cmp/hs r2, r1
bf/s 9b ! while (r1 < r2)
mov.l  r0,@-r2

因此,我猜测这个问题是由于新旧SH4环境不同造成的。在旧的 SH4 中,我执行 fconfig 命令并设置变量,如下所示。

Load Linux Kernel & File System: true
Linux Kernel Destination address: 0x8c210000
Linux Kernel Source address: 0x80140000
Linux Kernel Size: 0x100000
RAM disk Destination address: 0x8c360000
RAM disk Source address: 0x80140000
RAM disk Size: 0x400000
Modify Linux Kernel Parameter: true
Linux Kernel base address: 0x8c001000
Linux Kernel ENTRY address: 0x8c210000
Linux Kernel INITRD size: 0xc00000
Linux Kernel INITRD start address: 0x360000
Linux Kernel loader type: 1
Linux Kernel mount root read only: 1
Linux Kernel original root device: 0x100
Linux Kernel RAM disk flags: 0
Linux Kernel Enable Virtual Terminal Console: false

我想我可以在新的 SH4 上设置这些参数,尽管 u-boot 没有 fconfig 命令。但是我找不到如何设置参数 Linux Kernel Source address 和 Linux kernel base address。这与挂起问题有关吗?或者关于我接下来应该检查什么的任何建议都会有所帮助,因为我是 Linux 嵌入式系统的新手。

感谢您的帮助。

[已编辑]
添加以下信息以显示 u-boot 上的 printenv 结果。

bootcmd=icache 开启
bootm a0100000
引导延迟=2
波特率=115200
网络掩码=255.255.255.0
ipaddr=192.168.1.2
服务器ip=192.168.1.1
网关ip=0.0.0.0
bootargs=console=ttySC1,115200,N,8 mem=32M ether=8,0x1300,0,0,eth0 video=e1356fb:system:ms104sh4,display:crt,bpp:8,800x600@60
标准输入=串行
标准输出=串行
标准错误=串行

最佳答案

我从未使用过 SH4,但这在过去对我有帮助:http://www.denx.de/wiki/view/DULG/LinuxPostMortemAnalysis

关于Linux 内核引导在 Uncompressing Linux 处停止...好的,引导内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9359530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com