Cramfs文件系统的制作:
一,准备工作,安装工具包
1,安装cramfsprogs工具包
apt-get install cramfsprogs
2,查看安装cramfsprogs得到的命令,mkcramfs,cramfsck
dpkg -L cramfsprogs
二,准备工作,Busybox编译
Busybox 编译 与 kernel 的编译方法类似,需要先 make defconfig 再 make,之后 make install 会 默认把安装文件生成在 busybox/_install 目录下。
make isvp_glibc_defconfig make ;
make install
注各配置说明:
isvp_glibc_defconfig --glibc 默认 config
isvp_glibc_mini_defconfig --glibc 默认裁剪config
isvp_uclibc_defconfig --uclibc 默认 config
isvp_uclibc_mini_defconfig --uclibc 默认裁剪 config
得到_install下的简单跟文件系统目录文件
三,制作根文件系统
mkcramfs -v _install /root/my_drivers_test/rootfs.cramfs
_install:源文件夹
rootfs.cramfs:制作输出的squashfs文件
四,提取制作好的根文件系统里的内容
cramfsck -x cramfs-ext /root/my_drivers_test/rootfs.cramfs
cramfs-ext:将制作好的根文件系统rootfs.cramfs里的内容提到cramfs-ext里
五,pc虚拟机上测试所制作好的根文件镜像rootfs.cramfs
losetup -f //查看未使用设备
losetup -a //查看被使用设备
losetup /dev/loop0 rootfs.cramfs //将文件系统绑定到设备loop0上
mkdir mnt //创建一个挂载点
mount /dev/loop0 mnt //将设备挂载到mnt
cd /mnt //进入挂载目录,即可看到根文件系统的内容
losetup -d /dev/loop0 //将文件系统从设备loop0上解绑
umount /dev/loop0 //卸载挂载,释放loop0
squashfs文件系统的制作:
一,安装工具包
apt-get install squashfs-tools
查看安装包的信息
aptitude show squashfs-tools
查看包包含的命令
dpkg -L squashfs-tools | grep bin
mksquashfs //制作命令
unsquashfs //解压命令
二,制作squashfs文件系统镜像
mksquashfs _install /root/my_drivers_test/rootfs.squashfs -no-exports -no-xattrs -all-root
_install:源文件夹
rootfs.squashfs:制作输出的squashfs文件
三,提取制作好的根文件系统里的内容
unsquashfs -d root-squashfs /root/my_drivers_test/rootfs.squashfs
rootfs.squashfs:将制作好的根文件系统rootfs.cramfs里的内容提到root-squashfs里
四,本地模拟使用,同上cramfs方法。
jffs2文件系统的制作:
一,安装工具包
apt-get install mtd-utils
查看工具包信息
aptitude show mtd-utils
查看工具包包含的命令
dpkg -L mtd-utils | grep bin
查看mkfs.jffs2工具语法
mkfs.jff2
mkfs.jffs2 [options]
主要选项:
-p, --pad [=SIZE] //使用0xff填充文件系统到指定大小,不指定则只填充完最后- -个擦除块
-r, -d, -- root=DIR //使用指定的目录内容构建文件系统(default: cwd)I
-s,--pagesize-sIZE //使用指定的页大小(最大数据节点大小) (default: 4KiB)
-e, --eraseblock=SIZE //指定擦除块的大小(default: 64KiB)
-c, --cleanmarker=SIZE //擦除标记的大小(default 12)
-m,--compr- -mode=MODE //选择压缩模式(default: priortiry)
-x, --disable-compressor=COMPRESSOR_ NAME //禁用 指定的压缩算法
-X, --enable-compressor=COMPRESSOR_ NAME //启用指定的压缩算法
-y, --compressor -priority-PRIORITY : COMPRESSOR_ NAME //设置压缩算法的优先级
-I, --list-compressors //列出可用的压缩算法
-t, --test-compression //测试压缩算法
-n,--no-cleanmarkers //.不添加擦除标记到擦除块
-o,--output=FILE //指定文件系统镜像名称(default:stdout)
-1, --little-endian //创建--个小端的文件系统
-b, --big-endian //创建- -个大端的文件系统
-q,-- squash //压缩权限和设置所有文件的拥有者为root
-U, -- squash-uids //设置所有文件的拥有者为root
-B,--squash-perms //压缩所有文件的权限
二,制作jffs2文件系统镜像
文件系统内容在 _install/下
mkfs.jffs2 --pad=0x800000 -d _install/ -s 4096 -e 0x10000 -o /root/my_drivers_test/rootfs_jffs2.jffs2 //制作命令
三,测试,不能本地测试。要把jffs2镜像烧写到板子上flash测试。