日期:2014-05-16  浏览次数:20825 次

Ramdisk+JFFS2分区后,导致分区混乱,空间不够的莫名问题..
各位好, 下面的问题非常没有思路,甚至于都不太清楚应该如何百度谷歌
该问题的答案~~~ 麻烦大家帮忙看下:

问题1: 我们老大说ramdisk作为根文件系统的话,其可用空间应该基本为
RAM的大小。但目前开发板上df看到的只有14949.(下面配详细情况)
且已经用了89%了... 请问那个rootfs的大小是应该是100多M么?是的话
要怎么划到那么大啊? 作为运行在RAM中的文件系统,此处列出的空间
具体指的是哪里的空间?flash?

问题2: 我修改了设备树(貌似是powerpc独有的东西,分区都是改这个)
给JFFS2分了512k, df看也是512,JFFS2文件系统挂载后,确实可以
保存内容。但该文件系统大小经实际下载测试,竟然有5M多...
而且更灵异的是,我测试的是一个文本1M的。反复下载多个是没问题的。
但似乎不能下载除了文本之外的大的东西,比如链接库,内核什么的 
都会tftp报 写错误...

问题有点绕, 麻烦大家帮忙看下。以下是问题中提到的详细内容:

平台: freescale powerpc 
内核: 2.6.29
nor flash: 8M
SDRAM: 128M

分区部分的打印:
Fixed MDIO Bus: probed
Driver 'sd' needs updating - please use bus_type methods
fe000000.flash: Found 1 x16 devices at 0x0 in 16-bit bank
 Amd/Fujitsu Extended Query Table at 0x0040
fe000000.flash: Swapping erase regions for broken CFI table.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
RedBoot partition parsing not available
Creating 5 MTD partitions on "fe000000.flash":
0x000000000000-0x000000050000 : "u-boot"
0x000000050000-0x000000160000 : "kernel"
0x000000160000-0x000000770000 : "fs"
0x000000770000-0x000000780000 : "dtb"
0x000000780000-0x000000800000 : "data"
No NAND device found!!!
i2c /dev entries driver
rtc-ds1307: probe of 0-0068 failed with error -5 (这个错据说是电源问题,目前没发现其影响)


开发板上df命令的打印:
[root@mpc8308erdb /]# df
Filesystem 1k-blocks Used Available Use% Mounted on
rootfs 14987 12868 1364 90% /
/dev/root 14987 12868 1364 90% /
tmpfs 63340 16 63324 0% /dev
shm 63340 0 63340 0% /dev/shm
rwfs 512 0 512 0% /mnt/rwfs
/dev/mtdblock4 512 296 216 58% /usr/local/conf

最下面这个mtdblock4就是JFFS2. 不知道为何能容纳5M多的东西进去..
那个tmpfs和shm 我在网上查了,貌似两个是一个东西啊? 怎么这里有两个呢。
再这东西跟ramdisk功能重复了吧。 如何删除呢?是不是可以把他们的空间给
rootfs?

网上说这东西的挂载是再fstab下,但fstab下没有这两个东西....
我的JFFS2就是用这下面的一条命令挂载的,也不知道是不是缺步骤....
[root@mpc8308erdb /]# vi /etc/fstab
#
# /etc/fstab: static file system information.
#
# file system mount type options dump pass
#/dev/root / ext2 rw,noauto 0 1
proc /proc proc defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
#usbfs /proc/bus/usb usbfs defaults 0 0

/dev/mtdblock4 /usr/local/conf jffs2 default 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0

## other examples, uncomment to activate
#/dev/hda2 /opt ext2 defaults 1 2
#/dev/hda3 swap swap defaults 0 0

难道是ramdisk大小设置问题? 
我在内核配置时
device driver
  Block driver
  default RAM disk size  
默认为32768 , 现改为65536 还是不行...不知道这个是搞什么用的..
以前ramdisk超过4M了,不能down到板子上,把这里改成32768就好了
但这个也太大了吧...跟4M不挂钩啊...


下面是分区时,设备树中的代码:
localbus@e0005000 {
#address-cells = <0x2>;
#size-cells = <0x1>;
compatible = "fsl,mpc8315-elbc", "fsl,elbc", "simple-bus";
reg = <0xe0005000 0x1000>;
interrupts = <0x4d 0x8>;
interrupt-parent = <0x1>;
ranges = <0x0 0x0 0xfe000000 0x800000 0x1 0x0 0xe0600000 0