嵌入式linux添加flash分区,嵌入式linux的flash分区

这两天玩了下开发板,装了个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一样呢?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值