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

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

今天用移植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传入使用哪个控制台,因此串口中无输出。问题找到

你可能感兴趣的:(linux内核在Uncompressing Linux... done, booting the kernel中卡住的原因)