PC操作系统:ubuntu 11.10 使用的开发板:am335x_evm 开发板使用的操作系统:linux 3.2 使用的 NAND FLASH的型号:MT29F2G08ABAEAWP
在制作 ubifs 文件系统的过程中需要如下: 为方便操作,把下面将要安装的数据包的解压文件到存放在:/home/user/mtd 再mkdir install,下面将要运行的数据包生成的文件将会存放在:/home/user/mtd/install
1),正确安装数据包: zlib-1.2.5;lzo-2.06;e2fsprogs-1.42,mtd-utils-1.5.0 这些数据包的版本最好如上所述,否则可能会导致无法生成所需的文件或生成的文件不正确
这是制作 ubifs 过程中将要用到的所有的软件包的连接:ubifs
1,zlib host$ tar xvf zlib-1.2.5.tar.gz 打开其根目录下的 Makefile,替换 gcc, ldshared, cpp, ar , ranlib 为如下: host$ gedit Makefile 保存,退出 host$ make
生成的 zlib.a 存放在 /home/user/mtd/install/lib 中; 生成的 zlib 的头文件存放在 /home/user/mtd/install/include中。 zlib安装完成!
2,lzo host$ tar xvf lzo-2.06.tar.gz
生成的 liblzo2.a 存放在 /home/user/mtd/install/lib 中; 生成的 lzo 的头文件 存放在 /home/user/mtd/install/include/lzo中 lzo安装完成!
3,e2fsprogs host$ tar xvf e2fsprogs-1.42.tar.gz
生成的 libuuid.a 存放在 /home/user/mtd/install/lib 中; 生成的 uuid 的头文件 存放在 /home/user/mtd/install/include/uuid 中。 e2fsprogs安装完成!
4,mtd-utils host$ tar xvf mtd-utils-1.5.0.tar.gz
打开其根目录下的Makefile,加入如下语句 host$ gedit Makefile
保存,关闭,再打开 common.mk 文件,注释 PREFIX=/usr 语句: host$ gedit common.mk 保存,关闭。
host$ make WITHOUT_XATTR=1
交叉环境编译的MTD通用工具就存放在 /home/user/mtd/install/sbin/中。 如mkfs.ubifs,ubinize 的工具(可执行文件) 至此,安装数据包应该算是完成了。可先跳转到 2),生成镜像文件,
5,安装 mtd-utils 的疑难杂症及其解决方法 如果在使用生成的 mkfs.ubifs 和 ubinize 可执行文件的过程中发生了如下错误,再回过头来看这部分的内容 如:1,mkfs.ubifs 和 ubinize 这两个文件无法执行; 2,mkfs.ubifs 无法使用 命令参数 -F; 发生这些问题的原因是 mtd-ubifs 数据包没有安装正确,安装的 mtd-ubifs 版本过低。 解决方法:下载数据包 :mtd-utils_1.5.0-1_i386.deb host$sudo dpkg -i mtd-utils_1.5.0-1_i386.deb
3,acl 库版本过低,如 需要libacl1 的版本要大于 2.2.51,可当前的为:libacl1_2.2.49。 解决方法:下载数据包:libacl1_2.2.51-8_i386.deb host$sudo dpkg -i libacl1_2.2.51-8_i386.deb
4,attr 库版本过低,如 需要libattr1 的版本要大于 2.4.46,可当前的为:libacl1_2.1.11。 解决方法:下载数据包:libattr1_2.4.46-8_i386.deb host$sudo dpkg -i libattr1_2.4.46-8_i386.deb
5,uuid 库版本过低,如 需要libacl1 的版本要大于 2.19.1,可当前的为:libacl1_2.12.1。 解决方法:下载数据包:uuid-dev_2.19.1-2ubuntu3_i386.deb host$sudo dpkg -i uuid-dev_2.19.1-2ubuntu3_i386.deb
对 dpkg命令有兴趣的请看:ubuntu下用命令行运行deb安装包
执行完更新库版本的命令后,重新操作:1),正确安装数据包:-> 4,mtd-utils。
2),生成镜像文件 1,在使用 mkfs.ubifs 生成 ubifs.img 前,需要如下: 1,把可执行文件 mkfs.ubifs , ubinize 这两个文件放在某个目录下。 并在在目录先 host$mkdir filesystem
2,把用于生产 ubifs.img 映像文件的 sbin,etc 等文件夹等复制到 filesystem 目录下 如:本人将要用到的是:ti-sdk-am335x-evm/filesystem/base-rootfs-am335x-evm.tar.gz。 把以下文件或文件夹放于 filesystem目录下:bin/,boot/,dev/,etc/,home/,lib/, media/,mnt /,proc/,sbin/,srv/,sys/, tmp/,usr/,var/, linuxrc。 其中 linuxrc是一个可执行文件,其余的都是文件夹
!!!注意:linuxrc 这个可执行文件是用以引导内核加载文件系统的。 这个文件名在uboot设置环境变量中使用到。 U-Boot#setenv bootargs 'console=ttyO0,115200n8 noinitrd ip=off mem=256M rootwait=1 rw ubi.mtd=7,2048 rootfstype=ubifs root=ubi0:rootfs init=/linuxrc' 如果 init=*** 设置不正确的话,将会导致下面的错误: Kernel panic - not syncing: No init found. Try passing init= option to kernel.
3,执行以下命令生成 ubifs.img 映像文件 开发板类型为am335x的需要添加 -F 命令参数,否则在加载 ubi.img 时内核可能会崩溃。 host$mkfs.ubifs -r filesystem/ -F -o ubifs.img -m 2048 -e 126976 -c 1580
4,生成ubi.img 映像文件。 1,创建以下文件: host$ gedit ubinize.cfg 在该文件写入如下内容: [ubifs]
2,执行如下命令,生成 ubi.img 映像文件 host$ ubinize -o ubi.img -m 2048 -p 128KiB -s 512 -O 2048 ubinize.cfg
当使用这些命令的过程中,如果遇到了问题请转到:1),正确安装数据包:-> 5,安装 mtd-utils 的疑难杂症及其解决方法。
至此,生成的 ubi.img 映像文件应该是正确的。
|
|
来自: dwlinux_gs > 《RootFs》