这两天玩了下开发板,装了个android系统,2.3.3的系统。
但是装软件只能装到文件系统,所谓的内部空间中,但这板子的File System仅有120M,装完系统就用去了90M,省下的空间装不了几个软件就没空间了,于是研究怎么扩大的办法。
先尝试在sd卡上建了个文件夹,删除了/data/app并将app以符号链接方式指向/sdcard/app,但似乎因权限什么的问题没搞定
在启动记录中看到了
S3C NAND Driver is using hardware ECC.
NAND device: Manufacturer ID: 0xec, Chip ID: 0xd5 (Samsung NAND 2GiB 3,3V 8-bit)
Creating 4 MTD partitions on "NAND 2GiB 3,3V 8-bit":
0x000000000000-0x000000100000 : "Bootloader"
0x000000100000-0x000000600000 : "Kernel"
0x000000600000-0x000007e00000 : "User"
0x000007e00000-0x000080000000 : "File System"
的字样,开始还以为这是boot中指定的,在boot代码中搜啊搜的就是搜不到。
看了看上下文,这都已经是内核在启动了,肯定是内核中指定的。上述的user就是6M-126M,即120M的空间。而File System的大小则是余下的近2G的空间了,
busybox df看了下,其实这第三块并没有挂载上。按我的理解,User跟File System实际该换一下名字,
其对应的设备分别为
/dev/block/mtdblock0-->BootLoader
/dev/block/mtdblock1-->Kernel
/dev/block/mtdblock2-->File System
/dev/block/mtdblock3-->Unused
其大小定义见Mach-smdk6410.c
/*
* Configuring Nandflash on SMDK6410
*/
struct mtd_partition ok6410_nand_part[] = {
{
.name = "Bootloader",
.offset = 0,
.size = (1 * SZ_1M),
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = "Kernel",
.offset = (1 * SZ_1M),
.size = (5*SZ_1M) ,
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = "User",
.offset = (6 * SZ_1M),
.size = (120*SZ_1M) ,
},
{
.name = "File System",
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
};
试着修改了block2的大小为1500*SZ_1M。然后编译并usb线更新了内核,启动成功!!!
Uncompressing Linux... done, booting the kernel.
Linux version 2.6.36ZhuJinhua (
root@linux-zjh) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #461 PREEMPT Tue May 17 22:29:30 CST 2011
略
Kernel command line: root=/dev/mtdblock2 rootfstype=yaffs2 init=/linuxrc nconsole=tty1 console=ttySAC0,115200
PID hash table entries: 1024 (order: 0, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 256MB = 256MB total
Memory: 232880k/232880k available, 29264k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xff600000 - 0xffe00000 ( 8 MB)
vmalloc : 0xd0800000 - 0xe0000000 ( 248 MB)
lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
.init : 0xc0008000 - 0xc0032000 ( 168 kB)
.text : 0xc0032000 - 0xc06ff000 (6964 kB)
.data : 0xc0728000 - 0xc0775760 ( 310 kB)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
略
Creating 4 MTD partitions on "NAND 2GiB 3,3V 8-bit":
0x000000000000-0x000000100000 : "Bootloader"
0x000000100000-0x000000600000 : "Kernel"
0x000000600000-0x00005e200000 : "User" //这里已经变味了6M到1506M了
0x00005e200000-0x000080000000 : "File System"
PPP generic driver version 2.4.2
查看
/ # [6ndf
Filesystem Size Used Free Blksize
/ 1G 112M 1G 4096
/ 1G 112M 1G 4096
/dev 113M 44K 113M 4096
/dev 113M 44K 113M 4096
/mnt/asec 113M 0K 113M 4096
/mnt/obb 113M 0K 113M 4096
/var 2M 0K 2M 4096
只有1G? 怀疑不能超过1G,但实验时却是挂成功过原来的block3,近2G呢
使用busybox df 看到了
/ # [6nbusybox df
Filesystem 1K-blocks Used Available UseMounted on
/dev/root 1536000 115052 1420948 7/
devtmpfs 116524 44 116480 0/dev
tmpfs 116524 44 116480 0/dev
tmpfs 116524 0 116524 0/mnt/asec
tmpfs 116524 0 116524 0/mnt/obb
tmpfs 2048 0 2048 0/var
/dev/block/vold/179:1 2701624 168260 2533364 6/mnt/sdcard
/dev/block/vold/179:1 2701624 168260 2533364 6/mnt/secure/asec
后续再研究:
【1】内存
【2】启动过程
等
另外这/mnt/secure/asec是啥,咋跟sdcard一样呢?