1.31

本文介绍了在嵌入式Linux环境下进行内核配置与编译的方法,包括initramfs的创建、ubifs文件系统的构建及NAND闪存参数设置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Other Linux 2.6.x kernel.vmdk

Other Linux 2.6.x kernel-0.vmdk(2gb splitted)

initramfs可以写成img.cpio文件,也可以写成一个文件夹。

其实昨天最正确的方式是设置新的PATH.



http://www.ibm.com/developerworks/cn/linux/l-k26initrd/

突然想起来不通的kernel编译器不一样

把initrd.img.cpio添加到kernel外层,编译,挂在nfs 2.0文件系统,可以提取里面文件。

ping不通的时候service network restart一下就可以了

交叉编译要加--host arm-linux

recv_image.c:129: error: storage size of 'rq' isn't known
recv_image.c:129: warning: unused variable 'rq'
停住先不编这个

ubifs -r
-r, -d, --root=DIR       build file system from directory DIR
-m, --min-io-size=SIZE   minimum I/O unit size
-e, --leb-size=SIZE      logical erase block size
通常是physical erased block size - 一个page(对于slc成立,对于mlc不成立)
subpage必须比mini io小,必须是2的n次方。
-c, --max-leb-cnt=COUNT  maximum logical erase block count
-c 是总空间比如50M除以-e得到的结果
200 * 1024 * 1024 / 258048 = 812
256 NO
512 NO
2048 NO

mkfs.ubifs -r root -m 2048 -e 258048 -c 812 -o ubifs.img
ubinize -o ubi.img -m 2048 -p 256KiB -s 2048 /etc/ubinize.cfg

现在mtd-utils目录下面都是在pc使用的库
但是2005那个下面还是在arm上使用的。
lzo文件install的在lzo-pc外层。
开始不知道install的时候还会把头文件install出来,后来知道了,把其拷贝出来了。

可能还是不行,看到网上别人说直接烧录是用问题的

先看下nand的参数

这里可以看到physical erased size
dev:    size   erasesize  name
mtd0: 00040000 00040000 "misc"
mtd1: 00500000 00040000 "recovery"
mtd2: 00300000 00040000 "kernel"
mtd3: 00100000 00040000 "ramdisk"
mtd4: 04300000 00040000 "system"
mtd5: 04300000 00040000 "cache"
mtd6: 37000000 00040000 "userdata"

EC: erased count
VID header:volume identifier header
LEB:logical erased block
PEB:physical erased block

非常重要的一组数据:
(initramfs):/# ubiattach /dev/ubi_ctrl -m 4
UBI: attaching mtd4 to ubi0
UBI: physical eraseblock size:   262144 bytes (256 KiB)
UBI: logical eraseblock size:    258048 bytes
UBI: smallest flash I/O unit:    2048
UBI: VID header offset:          2048 (aligned 2048)
UBI: data offset:                4096
UBI: empty MTD device detected
UBI: create volume table (copy #1)
UBI: create volume table (copy #2)
UBI: attached mtd4 to ubi0
UBI: MTD device name:            "system"
UBI: MTD device size:            67 MiB
UBI: number of good PEBs:        268
UBI: number of bad PEBs:         0
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     0
UBI: available PEBs:             262
UBI: total number of reserved PEBs: 6
UBI: number of PEBs reserved for bad PEB handling: 2
UBI: max/mean erase counter: 0/0
UBI: background thread "ubi_bgt0d" started, PID 2270
UBI device number 0, total 268 LEBs (69156864 bytes, 66.0 MiB), available 262 LEBs (67608576 bytes, 64.5 MiB), LEB size 258048 bytes (252.0 KiB)

yaffs用专门的工具来擦写?···在邮件中看到的


/etc/ubinize.cfg
[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=200MiB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
这里面指定了volume size

K9G8G08U0A







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值