### 文件系统移植TX2440A:动态根文件系统详解 #### 一、Yaffs2文件系统移植 **Yaffs2简介** Yaffs2(Yet Another Flash File System 2)是一种用于闪存设备上的文件系统,特别适用于嵌入式系统。它支持断电保护和磨损均衡等特性,能够有效地管理NAND闪存。 **移植步骤** 1. **下载源码** 首先从官方网址[www.aleph1.co.uk](http://www.aleph1.co.uk)下载Yaffs2的源码包`yaffs2-e57244d.tar.gz`。 2. **解压缩源码** 使用命令`tar xzf yaffs2-e57244d.tar.gz`解压缩源码包。 3. **配置环境** 进入解压后的目录`yaffs2-e57244d/utils`,编辑`makefile`文件,添加主机内核源码路径: ```bash KERNELDIR=/usr/src/kernel-headers-3.5.0-23 ``` 这一步是为了确保Yaffs2能够与当前主机内核版本兼容。 4. **定义类型** 在`yaffs2-e57244d/utils`目录下创建`mytypes.h`文件,定义如下类型别名,以确保Yaffs2的类型定义与系统保持一致: ```c #ifndef __MYTYPES_H #define __MYTYPES_H typedef unsigned char u8; typedef unsigned short u16; typedef unsigned int u32; typedef unsigned long u64; typedef char s8; typedef short s16; typedef int s32; typedef long s64; #endif ``` 5. **修改头文件包含** 在`yaffs2-e57244d/utils/yutilsenv.h`文件中加入对`mytypes.h`的引用: ```c #include "mytypes.h" ``` 6. **编译工具** 执行`make`命令编译Yaffs2工具。这将生成一系列用于创建Yaffs2文件系统的工具。 - 将生成的工具复制到`/usr/bin`目录下以便于全局使用。 - 使用这些工具可以将任意目录转换为Yaffs2文件系统格式,便于通过TFTP下载到目标设备。 #### 二、Busybox制作文件系统 **Busybox简介** Busybox是一款集成了大量常用Linux命令和工具的小型程序。在嵌入式系统中,Busybox常常被用来构建最小的根文件系统,以满足基本的功能需求。 **构建过程** 1. **创建根文件系统** 创建名为`rootfs`的目录,在此目录下进一步创建以下子目录: - `etc` - `mnt` - `proc` - `sys` - `tmp` - `dev` - `home` - `lib` - `sys` - `usr` 2. **配置文件** - **`/etc/inittab`** ```bash ::sysinit:/etc/init.d/rcS ::askfirst:-/bin/sh ::restart:/sbin/init ::ctrlaltdel:/sbin/reboot ::shutdown:umount-a-r ``` - **`/etc/fstab`** ```bash #device mount-point type options dump fsck order proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0 tmpfs /tmp tmpfs defaults 0 0 tmpfs /dev tmpfs defaults 0 0 ``` - **`/etc/profile`** ```bash #!/bin/sh export HOSTNAME=zhaocj export USER=root export HOME=root export PS1="[$USER@$HOSTNAME\W]\#" PATH=/bin:/sbin:/usr/bin:/usr/sbin LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH export PATH LD_LIBRARY_PATH ``` - **`/etc/init.d/rcS`** ```bash mount -a mkdir /dev/pts mount -t devpts devpts /dev/pts Mount -t yaffs2 /dev/mtdblock4 /mnt/mt_yaffs echo /sbin/mdev > /proc/sys/kernel/hotplug mdev -s ``` 3. **配置设备和库文件** - 将`yaffs.ko`模块拷贝至`/lib`。 - 将`/usr/local/arm/4.3.2/arm-non-linux-gnueabi/libc/armv4t/lib`目录下的`.so`库文件拷贝到`/lib`。 - 使用`arm-linux-strip -s ~/rootfs/lib/*.so`命令来减小程序库的大小,优化存储空间。 4. **创建基本设备文件** 在`/dev`目录下创建基本的设备文件: ```bash mknod console c 5 1 mknod null c 1 3 ``` 5. **安装Busybox** 下载Busybox源码并编译安装: ```bash tar jxvf busybox-1.15.0.tar.bz2 make CONFIG_PREFIX=/home/hejiang/fs/rootfs install ``` 6. **压缩文件系统** 使用Cramfs工具压缩根文件系统,生成Cramfs映像文件: ```bash mkcramfs rootfs root.cramfs ``` 以上步骤完成了Yaffs2文件系统以及基于Busybox的根文件系统的构建和压缩,为嵌入式系统的部署提供了必要的准备。通过这种方式构建的文件系统能够有效地管理和使用有限的存储资源,满足嵌入式系统的需求。
- 粉丝: 0
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- apache-maven-3.6.1-bin.zip
- c593f5fc-d4a7-4b43-8ab2-51afc90f3f62
- IIR滤波器参数计算函数
- WPF树菜单拖拽功能,下级目录拖到上级目录,上级目录拖到下级目录.zip
- CDH6.3.2版本hive2.1.1修复HIVE-14706后的jar包
- 鸿蒙项目实战-天气项目(当前城市天气、温度、湿度,24h天气,未来七天天气预报,生活指数,城市选择等)
- Linux环境下oracle数据库服务器配置中文最新版本
- Linux操作系统中Oracle11g数据库安装步骤详细图解中文最新版本
- SMA中心接触件插合力量(插入力及分离力)仿真
- 变色龙记事本,有NPP功能,JSONview功能