全志a50 squashfs文件系统改为 ext4

本文介绍如何在Android系统中配置system和vendor分区使用ext4文件系统而非默认的squashfs,并提供具体的修改步骤,包括内核代码及dtsi文件的调整。

 

device/softwinner/product/BoardConfig.mk

# Enable SquashFS for /system
#BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := squashfs
#BOARD_SYSTEMIMAGE_SQUASHFS_COMPRESSOR := lz4
#BOARD_SYSTEMIMAGE_SQUASHFS_BLOCK_SIZE := 65536
#BOARD_SYSTEMIMAGE_SQUASHFS_COMPRESSOR_OPT := -Xhc

屏蔽这几行 system分区变为ext4

# Enable SquashFS for /vendor
#BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := squashfs  
#BOARD_VENDORIMAGE_SQUASHFS_COMPRESSOR :=  lz4
#BOARD_VENDORIMAGE_SQUASHFS_BLOCK_SIZE := 65536
#BOARD_VENDORIMAGE_SQUASHFS_COMPRESSOR_OPT := -Xhc

BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4

加入此行才可以 不然不会编译 vendor.img
TARGET_COPY_OUT_VENDOR := vendor

此外,system分区将挂载为只读

需修改内核代码:

//int root_mountflags = MS_RDONLY | MS_SILENT;

int root_mountflags =   MS_SILENT;

另外还需修改fstab.sun8iw15p1

#/dev/block/by-name/system                     &

### SquashFS 文件系统概述 SquashFS 是一种高度压缩的只读文件系统,广泛应用于嵌入式设备和 Linux 发行版中。它通过高效的压缩算法减少存储空间占用,同时保持良好的性能表现[^1]。 #### 原理分析 SquashFS 的核心在于其数据压缩机制。该文件系统支持多种压缩算法(如 gzip、lzo 和 xz),允许用户根据需求选择不同的压缩策略。在创建过程中,`mksquashfs` 工具会将指定目录中的文件打包并压缩成单一的文件系统镜像。此过程不仅减少了磁盘占用,还优化了访问速度,因为压缩后的数据可以更高效地加载到内存中[^1]。 此外,SquashFS 支持元数据压缩以及稀疏文件处理功能,这使得它可以有效地管理大容量的数据集而不会显著增加开销[^2]。 #### 使用方法 要使用 SquashFS 文件系统,通常需要完成以下几个操作: 1. **安装工具** 安装 `squashfs-tools` 软件包即可获得必要的命令行工具,例如 `mksquashfs` 和 `unsquashfs`。 2. **创建文件系统** 利用 `mksquashfs` 将目标目录换为 SquashFS 格式的文件系统。例如: ```bash mksquashfs source_directory squash_image_file -comp xz ``` 上述命令表示将以 XZ 算法压缩源目录的内容,并生成名为 `squash_image_file` 的文件系统图像[^1]。 3. **挂载文件系统** 挂载已有的 SquashFS 图像至某个本地路径以便于访问其中的内容: ```bash sudo mount -t squashfs -o loop squash_image_file /mnt/point ``` #### 配置方式 对于高级场景下的配置调整,可以通过传递额外选项给 `mksquashfs` 来实现特定的功能定制。比如设置块大小以适应不同硬件环境或者启用自定义压缩级别来平衡性能与体积之间的关系。具体可查阅官方文档获取更多细节[^3]。 ```bash mksquashfs input_dir output_file -b 1M -Xbcj x86 -noI -noD -noF -noX ``` 以上脚本片段展示了如何精细控制构建流程的一些实例参数设定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值