我正在使用带有ramdisk的旧Linux-2.6.10用于MIPS arch。为了调试目的,我需要扩大我的initrd。所以,我这样做了。但是对于大的initrd(~2.1MB),我的主板会重新启动。
MY-BOARD # run bootnet
Using Board Eth. device
TFTP from server 192.168.1.10; our IP address is 192.168.1.1
Filename 'uImage'.
Load address: 0x80800000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
##################################################
done
Bytes transferred = 3247396 (318d24 hex)
## Booting image at 80800000 ...
Image Name: Linux-2.6.10 with ramdisk
Created: 2014-01-13 8:27:39 UTC
Image Type: MIPS Linux Kernel Image (gzip compressed)
Data Size: 3247332 Bytes = 3.1 MB
Load Address: 80100000
Entry Point: 8057b000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Starting kernel ...
Error: Boot failed!
我的u-boot环境:
Type "printenv" to view boot options.
Hit any key to stop autoboot: 0
MY-BOARD # printenv
bootargs=console=ttyS0,115200 nofpu mem=30M root=/dev/ram0 rw
bootcmd=cp.b 0xad040000 0x80800000 0x400000; bootm 0x80800000
bootdelay=3
baudrate=115200
ethaddr=00:06:0D:00:00:00
ipaddr=192.168.1.1
serverip=192.168.1.10
preboot=echo; echo Type "printenv" to view boot options.; echo;
netmask=255.255.255.0
u-bootfile=u-boot.bin
prog-ub=run load-ub update-ub
load-ub=tftp 80504000 $(u-bootfile)
update-ub=protect off 1:0-4; cp.b AD000000 80500000 4000; cp.b AD03F000 8053F000 1000; erase 0xAD000000 0xAD03ffff; cp.b 80500000 AD000000 0x40000
imget=tftp 0x80800000 $(imname); erase 0xad000000 0xad7e0000; cp.b 0x80800000 0xad000000 $(filesize)
progkn=tftp 0x80800000 uImage; erase 0xad040000 0xad43ffff; cp.b 0x80800000 0xad040000 $(filesize)
progjffs=tftp 0x80800000 jffs; erase 0xad240000 0xad53ffff; cp.b 0x80800000
0xad240000 $(filesize)
bootnet=tftp 0x80800000 uImage; bootm 0x80800000
stdin=serial
stdout=serial
stderr=serial
ethact=Board Eth.
Environment size: 980/4092 bytes
MY-BOARD #
有人知道或记得如何解决这个问题吗?我也使用旧的U-Boot 1.1.2。 U-Boot到达“Starting kernel ...”并跳转到内核入口点,即kernel()函数。然后重启(“错误:启动失败!”)。
内核太旧了,它没有用于调试自己的early_printk。 Imho,U-Boot没问题,我错过了一些initrd选项(我做了所有可见的内核.config)。使用小型嵌入式initrd映像(~700kB),Linux启动顺畅。在这两种情况下,initrd都具有相同的大小(8192K)。
p.s。:对不完美的英语感到抱歉。