微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > TE2410移植linux-2.6.14及调试过程总结(2)

TE2410移植linux-2.6.14及调试过程总结(2)

时间:11-10 来源:互联网 点击:

of RAM disks16改为8

(4096)Default RAM disk size(kbytes)4096改为8192

板子的SDRAM是64M,16*4096kB = 8*8192kB = 64M

问题依然:

RAMDISK driver initialized:8RAM disks of8192K size 1024 blocksize

Mounted devfs on /dev

Freeing init memory: 92K

attempt to access beyond end of device

ram0: rw=0, want=16518, limit=16384

EXT2-fs error (device ram0): ext2_get_inode: unable to read inode block - inode=1944, block=8258

Failed to execute /linuxrc.Attempting defaults...

attempt to access beyond end of device

ram0: rw=0, want=16514, limit=16384

EXT2-fs error (device ram0): ext2_get_inode: unable to read inode block - inode=1922, block=8256

Kernel panic - not syncing: No init found.Try passing init= option to kernel.

修改

Default number of RAM disks值改为4

Default RAM disk size(kbytes)值改为16384

问题解决

为什么是16384呢?16384kb=16M,我制作的ramdisk镜像大小为15M,这里的15M是未用gzip压缩前的大小.

另外关于commandline的值:initrd=0x30800040,0x400000 root=/dev/ram init=/linuxrc console=ttySAC0

initrd=0x30800040是ramdisk在SDRAM中的地址,我用mkimage将ramdisk加了64(0x40)字节头信息,制作成uboot可以识别的uRamdisk,然后下载到0x30800000,所以ramdisk的正真地址为0x30800040

0x400000(4M)为ramdisk的大小,要大于压缩后的大小,我制作好的ramdisk大小为15M,压缩后1.2M

root=/dev/ram也可以是root=/dev/ram0

我在nand flash的第四个分区下载了cramfs文件系统,可以通过mount命令挂载该分区到tmp目录下

# cd dev

# ls

consolekmemmmcptmxrdttyvcc

fbkmsgmtdblockptsrooturandomzero

fullmemnullptyshmusb

inputmiscportrandomttsvc

#mount /dev/mtdblock/3/tmp

另一种方法可以在系统启动时就挂载该分区

修改/etc/init.d/rcS文件

内容如下(蓝色字体为添加的内容):

#!/bin/sh

echo "mount cramfs from mtdblock/3"

/bin/mount /dev/mtdblock/3/tmp

echo "mount all"

/bin/mount –a

说明:/etc/init.d/rcS是可执行的二进制文件,系统启动时被执行

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top