ZYNQ开发板,为了使用UBIFS,需要在rootfs中添加UBIFS文件系统所需的如ubinfo、ubiformat、ubiattach、ubidetach、ubimkvol等工具,这些工具需要将mtd-utils用与开发板相同的Linux编译环境再编译一遍,下面为编译过程记录。
编译服务器版本:Ubuntu 16.04,安装有petalinux-v2018.3。
mtd-utils依赖于zlib、lzo、e2fsprogs、libuuid提供的库。
1、包下载
zlib-1.3.tar.gz |
lzo-2.10.tar.gz |
e2fsprogs-1.47.0 |
libuuid-1.0.3.tar.gz |
mtd-utils-2.1.2.tar.bz2 |
2、交叉编译
zlib
tar -xvzf zlib-1.3.tar.gz
cd ./zlib-1.3
./configure -share --prefix=/home/temp/mtdutils CC=arm-linux-gnueabihf-gcc
make
make install
lzo
tar -xvzf lzo-2.10.tar.gz
cd ./lzo-2.10
./configure --host=arm-linux --enable-shared --prefix=/home/temp/mtdutils CC=arm-linux-gnueabihf-gcc
make
make install
e2fsprogs
tar -xvzf e2fsprogs-1.47.0.tar.gz
cd ./e2fsprogs-1.47.0
./configure --host=arm-linux --enable-elf-shlibs --prefix=/home/temp/mtdutils CC=arm-linux-gnueabihf-gcc
make
make install
make install-libs
libuuid
tar -xvzf libuuid-1.0.3.tar.gz
cd libuuid-1.0.3/
./configure --host=arm-linux --prefix=/home/temp/mtdutils CC=arm-linux-gnueabihf-gcc
make
make install
mtd-utils
tar -xjvf mtd-utils-2.1.2.tar.bz2
cd ./mtd-utils-2.1.2
export PREFIX=/home/temp/mtdutils
export ZLIB_CFLAGS=-I${PREFIX}/include
export ZLIB_LIBS=-L${PREFIX}/lib
export LZO_CFLAGS=-I${PREFIX}/include
export LZO_LIBS=-L${PREFIX}/lib
export UUID_CFLAGS=-I${PREFIX}/include/uuid
export UUID_LIBS=-L${PREFIX}/lib/pkgconfig
export LDFLAGS="$ZLIB_LIBS $LZO_LIBS $UUID_LIBS -lz -llzo2 -luuid"
export CFLAGS="-O2 -g $ZLIB_CFLAGS $LZO_CFLAGS $UUID_CFLAGS"
./configure --host=arm-linux --prefix=${PREFIX} --without-crypto --without-zstd CC=arm-linux-gnueabihf-gcc
make CROSS=arm-linux-gnueabihf- WITHOUT_XATTR=1
make install
编译好的文件放在目录/home/temp/mtdutils下,
把以上目录下文件用cp -r 命令复制到开发板/usr/下对应目录中即可。
相关文件及已编译完成文件下载地址:https://download.youkuaiyun.com/download/gc_lrg/88668580