内核启动卡在 Starting kernel ...

一、有时log是这样的

Card did not respond to voltage select!
9889800 bytes read in 237 ms (39.8 MiB/s)
70155 bytes read in 5 ms (13.4 MiB/s)
## Flattened Device Tree blob at 48000000
   Booting using the fdt blob at 0x48000000
   Using Device Tree in place at 0000000048000000, end 000000004801420a

Starting kernel ...

但是如上所示,没有得到提示信息,直接悬挂在启动内核的位置上。为解决这个提问: 首先想到的是打开使能early_printk,再次启动然后看是否可以得到有效的提示信息,假如仍然不可以的话,
那就你直接读取缓存 ,缓存的地址为 __log_buf其地址在System.map被标记出来,我们可以找到具体的位置。具体如下:

# cd build/tmp/work/g6s-poky-linux/linux-renesas/4.14.45-r1/build
# cat System.map | grep __log_buf
ffff0000089fcab8 b __log_buf      //记住这个地址

重新打断Uboot,输入下面命令并不停回车,就可以看到出问题的原因
> md ffff0000089fcab8

MMC:   sh-sdhi: 0, sh-sdhi: 1
In:    serial
Out:   serial
Err:   serial
Net:   Board Net Initialization Failed  //可以看出是网络初始化失败导致的
No ethernet found.
Recovery Flag: ""
Recovery Magic: ""
Update Package Flag: 0x0
Hit any key to stop autoboot:  0 

原文地址:https://www.cnblogs.com/hellokitty2/p/10092990.html

时间: 2024-08-04 04:48:46

内核启动卡在 Starting kernel ...的相关文章

Linux内核启动分析

张超<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 我的代码可见https://www.shiyanlou.com/courses/reports/986221 在这里我们用的是linux-3.18.6版本,以下简写成linux. start_kernel在 /linux/init/main.c中定义: 这个函数是内核由引导程序引导以后,由自解压程序解压以后执行的第一个函数,可以认为是整个内核的入口函数,以后我

内核启动早期的打印

在移植4.16内核到tiny4412的过程中遇到一个问题,官方的uboot2012引导内核成功卡在staring the kernel没有了下文,看来内核还没有到注册uart驱动就已经挂掉了,尝试打开 early printk ,让内核自解压之后能够及时的打印信息. 说句题外话,内核启动卡在staring the kernel,在2440的时代,未使用设备树,这种情况往往是机器ID设置错误,或者是串口波特率等方面的原因导致,在设备树的时代,机器ID已经被废除,最有可能的问题可能就是出在设备树的身

linux内核启动笔记

一. 1.解压    tar xjf linux-2.6.22.6.tar.bz2 2.打补丁  patch -p1 < ../linux-2.6.22.6_jz2440.patch 3.配置 a. make menuconfig b. 使用默认的在上面修改 c.使用厂家的配置文件 b: find -name "*defconfig*" 在/arch/arm/configs找到相似的配置文件 xxx_defconfig make xxx_defconfig       结果是co

I.MX6Q(TQIMX6Q/TQE9)学习笔记——内核启动与文件系统挂载

经过前面的移植,u-boot已经有能力启动内核了,本文主要来看下如何通过之前移植的u-boot来启动内核.如果按照前面的文章完成了LTIB 的编译,那么,Linux的内核应该就会出现rpm/BUILD/目录下,接下来,我们就开始移植这个3.0.35版本的内核到TQIMX6Q. 内核的编译 为了简化内核编译的过程,可以在内核目录下创建编译脚本,命名为build.sh,内容如下: [cpp] view plaincopy #!/bin/sh export ARCH=arm export CROSS_

OK6410 Starting kernel ... undefined instruction pc : [&lt;50008004&gt;]

uboot 源码包:u-boot1.1.6.tar 编译器:arm-linux-gcc-4.3.2 源码路径下配置 # make forlinx_nand_ram128_config 编译 # make 得到uboot.bin之后考到sd卡中,通过sd卡中的mmc.bin将uboot.kernel.filesystem烧到nandflash 启动出现一直重启的错误: CPU:     S3C6410 @532MHz Fclk = 532MHz, Hclk = 133MHz, Pclk = 66M

CentOS开机启动卡在进度条 提示NFS quotas: Cannot register service: RPC

CentOS6 开机启动卡在进度条,按ESC显示启动详细信息,如下错误: Starting NFS services:                                     [  OK  ]Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refusedrpc.rquotad: unable to register (RQUOTAPROG, RQUOT

第3阶段——内核启动分析之start_kernel初始化函数(5)

内核启动分析之start_kernel初始化函数(init/main.c) stext函数启动内核后,就开始进入start_kernel初始化各个函数, 下面只是浅尝辄止的描述一下函数的功能,很多函数真正理解需要对linux相关体系有很深的了解后才能明白 代码如下: asmlinkage void __init start_kernel(void) { char * command_line; extern struct kernel_param __start___param[], __sto

u-boot-2014.10移植第31天----内核启动(一)

原本以为u-boot移植好了,引导linux内核启动不是问题吧.但是却折磨了我两天,一直在"Starting kernel..."这里卡住了.综合网上的说法出现这个问题有如下原因: 1)u-boot和linux内核主频不匹配: 2)u-boot和linux内核机器码不匹配: 3)bootarges参数数不对: 3)内核中没有添加串口相关的驱动: 实际情况是这些在我这里都是正确的.因为我用u-boot-2010.09引导linux内核启动是没有问题的,换成u-boot-2014.10就不

Linux内核源码分析--内核启动之(5)Image内核启动(rest_init函数)(Linux-3.0 ARMv7)【转】

原文地址:Linux内核源码分析--内核启动之(5)Image内核启动(rest_init函数)(Linux-3.0 ARMv7) 作者:tekkamanninja 转自:http://blog.chinaunix.net/uid-25909619-id-4938395.html 前面粗略分析start_kernel函数,此函数中基本上是对内存管理和各子系统的数据结构初始化.在内核初始化函数start_kernel执行到最后,就是调用rest_init函数,这个函数的主要使命就是创建并启动内核线