嵌入式linux的flash分区
来源:互联网 发布:中世纪2全面战争mac版 编辑:程序博客网 时间:2024/05/21 02:21
但是装软件只能装到文件系统,所谓的内部空间中,但这板子的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一样呢?
- 嵌入式linux的flash分区
- 嵌入式linux的flash分区
- 嵌入式linux flash分区配置 【转】
- arm 嵌入式linux flash分区 概念
- 关于嵌入式Linux系统flash分区设计及文件系统格式选择的一些浅见
- 关于嵌入式Linux系统flash分区设计及文件系统格式选择的一些浅见
- 嵌入式 uboot修改spi-flash分区示例
- linux flash、分区、文件系统点滴
- 关于linux下的嵌入式文件系统以及flash文件系统选择
- 关于linux下的嵌入式文件系统以及flash文件系统选择
- 嵌入式linux之Nor/Nand FLASH的读写
- 关于linux下的嵌入式文件系统以及flash文件系统选择
- Linux系统建立Nor Flash分区
- 嵌入式设备的FLASH划分
- 5,嵌入式Linux之Nand Flash
- 嵌入式linux之Nand flash驱动程序框架
- 嵌入式linux之NOR FLASH驱动
- 嵌入式Linux学习笔记 NAND Flash控制器
- iOS开发笔记--去掉tableview中section的headerview粘性
- Linux SWAP 交换分区配置说明
- 1.3(2)
- C++教程之auto关键字的使用
- 看好你的门-攻击服务端(4)-HTTP参数注入攻击
- 嵌入式linux的flash分区
- MFC 将信息写入文件中,保存信息
- mac上SVN项目管理,提示被锁定的解决方法
- Eclipse使用段注释格式化代码后混乱情况解决
- 直接插入排序
- 64位win7中使用vs2013为python3.4安装pycrypto-2.6.1插件报Unable to find vcvarsall.bat异常解决方案
- android选择图片或拍照图片上传到服务器(包括上传参数)
- 黑马程序员——基本数据类型对象包装类的最常见作用
- 在二元树中找出和为某一值的所有路径