打印
[全新]

iTOP-4412开发板支持4G以上文件系统扩展

[复制链接]
374|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本文档配套资料在网盘资料“iTOP4412 开发板资料汇总 (不含光盘内容)\iTOP-4412 开发板系统源码及镜像(其他)\4412 开发板支持 4G 以上文件系统扩展”目录下。
1、概述
光盘默认的 Uboot 镜像只可以烧写小于 4G 的文件系统,但是我们想要文件系统设定成 6G 或者更大的空间,应该怎么办呢?
2、快速烧写方法
1.本文档配套的资料里面提供了支持可以扩展 4G 以上文件系统的 uboot 镜像和 uboot 源码,如下所示:

2.将上一步骤提供的 uboot 镜像(一定要确定自己核心板的类型,选择对应的镜像)烧写到开发板中(注意只烧 uboot 镜像),然后进入 uboot 模式,然后在 uboot 输入分区命令:“fdisk -c 0 6144 300 300”,如下图所示。特别要注意的是,这里的分区命令不是固定的,如果你想文件系统扩展到 6G,设置的文件系
统大小要比分区设定的值要大,这里设定分区值是 6144。

3.分区完成后,然后在 uboot 命令行分别输入下面的命令,格式化分区。fatformat mmc 0:1北京迅为电子有限公司 iTOP-4412 精英版使用手册
日期:2021-01-17
2288 www.topeetboard.com
ext3format mmc 0:2
ext3format mmc 0:3
ext3format mmc 0:4
4.然后将扩展为 6G 根目录的文件系统烧写进开发板,配套资料里面提供了 6G 的 QT4.7 文件系统,大家也可以制作别的系统,比如 QT5.7 系统,最小系统。
(注意一定要用修改过的 uboot 镜像分区,然后烧写扩展后的文件系统,不然会提示分区比镜像小,烧不进去系统),系统烧写进去后,如下图所示,输入 df 命令查看。

5.此时文件系统已经扩展为 6G,因为默认文件系统稍微占用了点,可利用的空间比 6G 小。那么 6G 的文件系统是怎么做的呢?大家也可以根据下节方法随意指定文件系统的大小。如果是批量烧录,可以参考手册的 TF 卡烧写镜像章节。
3、制作文件系统
我们将网盘资料“iTOP4412 开发板资料汇总(不含光盘内容)\iTOP-4412 开发板系统源码及镜像(其他)\QtE4.7 根文件系统升级目录\iTOP-4412-QtE4.7-root_V1.0.tar.gz”压缩包拷贝到 Ubuntu 上面,作者拷贝到了/home/topeet/Qt4.7 目录下面,解压后如下图所示:

接下来输入“make_ext4fs -s -l 6000M -a root -L linux system.img root”命令生成“system.img”,如下图所示,6000M 就是文件系统的大小,大家可以根据自己的需求进行指定。

生成的 system.img 是大概 6G 的文件系统镜像,我们可以用于烧写了。
4、原理解析
之所以光盘默认的 Uboot 源码不支持烧写 4G 以上文件系统的原因如下:我们进入到 文件中。
unsigned int calc_unit(unsigned int length, SDInfo sdInfo),
length 定义的是 unsigned int,是 32bit 的。但是调用的时候输入是 unsigned long long,是 64bit 的。
block_offset = calc_unit((unsigned long long)simple_strtoul(argv[3], NULL, 0)*1024*1024, sdInfo);
所以这个过程中,丢了高位置信息,改掉这个 bug,重新编译 uboot,这样就支持烧写 4G 以上文件系统了。
接下来编译 uboot 镜像,进入“iTop4412_uboot”文件夹,使用编译脚本“build_uboot.sh”编译 uboot,
这里需要编译的是“SCP 2G 核心板”的 uboot 镜像,那么编译命令是“./build_uboot.sh SCP_2GDDR” SCP_2GDDR 是编译的配置参数,其他参数可以查看使用手册编译 uboot 部分。输入编译命令,如下图所示,这里一定先确定核心板是哪种类型,然后将对应的参数传到脚本。

编译完如下所示:
[size=0.83em]7.png




编译生成的 uboot 镜像是支持烧写 4G 以上文件系统。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

636

主题

716

帖子

1

粉丝