使用DaVinci-PSP-SDK-03.20.00.08中的ramdisk-base.gz 文件系统。经解压、mount后,往文件系统添加测试好的APP,提示空间不足。
把mount后的文件系统cp到rootfs文件夹,并cp APP到rootfs/home/root下。用以下命令制作ramdisk:
:genext2fs -b 20480 -d rootfs ramdisk
:gzip -v9 -f ramdisk
然后uboot 烧写ramdisk到spi FLSAH
sf probe 0
tftp 0xc1180000 ramdisk.gz
sf erase 0x244000 0x500000
sf write 0xc1180000 0x244000 0x500000
setenv bootcmd 'sf probe 0;sf read 0xc0700000 0x44000 0x200000;sf read 0xc1180000 0x244000 0x500000;bootm 0xc0700000'
setenv bootargs'mem=32M console=ttyS1,115200n8 root=/dev/ram0 rw initrd=0xc1180000,4M ip=off '
重启后能正常启动进入内核,并能在/home/root下找到自己编译的APP。
因为APP需要c++lib ,SDK中的ramdisk-base.gz中没有,所以按照上边的方法及步骤,把c++lib cp到/lib 文件夹下。并制作ramdisk.gz。
包含APP和c++lib的ramdisk加载失败:
。。。。。。
。。。。。。
RAMDISK: gzip image found at block 0
RAMDISK: EOF while reading compressed data
uncompression error
VFS: Mounted root (ext2 filesystem) on device 1:0.
Freeing init memory: 144K
EXT2-fs error (device ram0): ext2_lookup: deleted inode referenced: 813
Remounting filesystem read-only
EXT2-fs error (device ram0): ext2_lookup: deleted inode referenced: 717
Remounting filesystem read-only
EXT2-fs error (device ram0): ext2_lookup: deleted inode referenced: 689
Remounting filesystem read-only
EXT2-fs error (device ram0): ext2_lookup: deleted inode referenced: 689
Remounting filesystem read-only
Kernel panic – not syncing: No init found. Try passing init= option to kernel.
请问这种情况怎么解决 先谢谢了。
只添加APP,或者只添加c++lib的ramdisk都能正常加载。同时添加APP及c++lib的ramdisk就加载失败。
Denny%20Yang99373:
会不会是initrd=0xc1180000,4M
4M空间太小了?
kun han:
回复 Denny%20Yang99373:
首先,非常感谢您的回复。
按照ti wiki http://processors.wiki.ti.com/index.php/Creating_a_RAMDISK?keyMatch=ramdisk&tisearch=Search-EN创建ramdisk。
创建ramdisk时把app cp到/usr/bin,c++lib cp到/usr/lib目录下。ramdisk能正常加载,cp 到/home/root目录下不能加载ramdisk。
跟添加文件存放的路径也有关系吗?
实际的ramdisk.gz 5.6M,设置initrd=0xc1180000,4M。这个4M 跟ramdisk.gz的大小需要一致吗?
uboot 中setenv bootargs'mem=32M console=ttyS1,115200n8 root=/dev/ram0 rw initrd=0xc1180000,4M ip=off '
内核配置时设置ramdisk 大小32768,这个大小跟创建的ramdisk空间需要一致吗?还是跟mem=32M一致?
再次表示感谢。