mtd-utils 交叉编译
最近移植发现busybox没有flash_erase 工具,自己交叉编译一套工具暂时使用,后期可以直接更改busybox重新生成文件系统烧录更改;
flash_erase 工具在mtd-utils 包 编译生成。而这个包还依赖于其他库,不管是真的或假的依赖,反正都一起编译了,采用版本mtd-utils-2.1.2.tar.bz2
,其他库下载的时候看日期,看是不是和这个包的日期差不多早一点点的时间下载相关包,并且放到同一目录下。
采用交叉编译工具链是sigmastar的,交叉编译平台已经搭好。
1. 包下载
下载zlib
下载lzo
下载e2fsprogs
下载libuuid
下载mtd-utils
2. 交叉编译
2.1 zlib交叉编译
tar -xvzf zlib-1.2.11.tar.gz
cd ./zlib-1.2.11
CC=arm-linux-gnueabihf-sigmastar-9.1.0-gcc ./configure -share --prefix=$(pwd)/../output
make
make install
2.2 lzo交叉编译
tar -xvzf lzo-2.10.tar.gz
cd ./lzo-2.10
CC=arm-linux-gnueabihf-sigmastar-9.1.0-gcc ./configure --host=arm-linux --enable-shared --prefix=$(pwd)/../output
make
make install
2.3 e2fsprogs交叉编译
tar -xvzf e2fsprogs-1.47.0.tar.gz
cd ./e2fsprogs-1.47.0
./configure --host=arm-linux --enable-elf-shlibs --prefix=$(pwd)/../output CC=arm-linux-gnueabihf-sigmastar-9.1.0-gcc
make
make install
make install-libs
2.4 交叉编译libuuid
tar -xvzf libuuid-1.0.3.tar.gz
cd libuuid-1.0.3/
./configure --host=arm-linux --prefix=$(pwd)/../output CC=arm-linux-gnueabihf-sigmastar-9.1.0-gcc
make
make install
2.5 mtd-utils 交叉编译
配置过程会出现一些报错,提示ubifs jffs xattr相关的包没有,查看配置帮助将相关的功能关闭掉,
tar -xjvf mtd-utils-2.1.2.tar.bz2
cd ./mtd-utils-2.1.2
./configure --host=arm-linux --enable-shared --prefix=$(pwd)/../output CC=arm-linux-gnueabihf-sigmastar-9.1.0-gcc CFLAGS="-I$(pwd)/../output/include" LDFLAGS="-L$(pwd)/../output/lib" --without-ubifs --without-xattr --without-jffs
make
make install
生成的文件均在上级目录的output目录下,并且在sbin里查找到了flash_erase 和nandwrite 工具,拷贝到板端可以正常运行。