linux内核在Uncompressing Linux... done, booting the kernel中卡住的原因

来源:互联网 发布:淘宝卖家拍照软件 编辑:程序博客网 时间:2024/05/16 15:11

今天用移植Linux2.6.22.2内核到MINI2440上,因为有相同类型的板子的支持,所以移植的起来很简单,但是在移植的时候还是出现了一个问题:

U-Boot 1.1.6-g63d519de-dirty (Sep  9 2013 - 23:25:22)

DRAM:  64 MB
Flash:  2 MB
NAND:  128 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
MY2440 # tftp 0x30007fc0 uImage
dm9000 i/o: 0x20000000, id: 0x90000a46
MAC: 08:00:3e:26:0a:5b
TFTP from server 192.168.1.200; our IP address is 192.168.1.201
Filename 'uImage'.
Load address: 0x30007fc0
Loading: T #################################################################
         #################################################################
         #################################################################
         #################################################################
         #############################
done
Bytes transferred = 1476164 (168644 hex)
MY2440 # bootm 0x30007fc0
## Booting image at 30007fc0 ...
   Image Name:   Linux-2.6.22.6-g9d3e98a0-dirty
   Created:      2013-09-15  13:49:55 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1476100 Bytes =  1.4 MB
   Load Address: 30008000
   Entry Point:  30008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux.............................................................................................. done, booting the kernel.

在这里内核停住不动了~~~~

由于输出的信息有限,查找原因不是很方便。上网查询的时候看到这个问题的原因可能有以下几个:
1、machine type 不匹配
     该部分审查代码后确定machine type是匹配的,排除
2、串口驱动没有编译入内核

该部分审查.config文件后发现串口也配置编入了内核,排除。

3、内核启动参数设置错误   

在uboot中打印了启动参数后发现

MY2440 # printenv
bootargs=noinitrd root=/dev/mtdblock 2 init=/linuxrcconsole=ttySAC0
bootcmd=nboot 0x32000000 0 0;bootm 0x32000000
bootdelay=5
baudrate=115200
ethaddr=08:00:3e:26:0a:5b
ipaddr=192.168.1.201
serverip=192.168.1.200
netmask=255.255.255.0
stdin=serial
stdout=serial
stderr=serial

这里bootargs的启动参数设置错误,没有给linux传入使用哪个控制台,因此串口中无输出。问题找到

原创粉丝点击