【导语】目前天嵌IMX6UL烧录固件方式可通过USB、SD卡、TFTP网络烧录镜像,当无法使用这三种方式进行烧录时,我们考虑使用mtd-util工具远程网络更换板子镜像,以下介绍该工具在IMX6UL板卡上的移植及使用:
1.mtd-utils及依赖工具下载
mtd-utils-1.4.4.tar.bz2
zlib-1.2.3.tar.gz
lzo-2.09.tar.gz
e2fsprogs-1.46.1.tar.gz
2. 解压工具压缩包tar xvf xxx.tar.gz
3.编译安装lzo-2.09
CC=arm-linux-gnueabihf-gcc./configure --host=arm-linux --prefix=/opt/EmbedSky/linaro-4.9/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/
make
make install
4.编译安装zlib-1.2.3
CC=arm-linux-gnueabihf-gcc./configure --shared--prefix=/opt/EmbedSky/linaro-4.9/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf
make
make install
5.编译安装e2fsprogs-1.46.1
exportCROSS=arm-linux-gnueabihf-
./configure --host=arm-linux--target=arm-linux--prefix=/opt/EmbedSky/linaro-4.9/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/
make
make install-libs
6.编译安装mtd-utils-1.4.4
export WIiTHOUT_XATTR=1
exportCROSS=arm-linux-gnueabihf-
exportDESTDIR=/home/mm/date/mtd-util/install
exportCFLAGS="-I/opt/EmbedSky/linaro-4.9/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/include-L/opt/EmbedSky/linaro-4.9/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/lib"
#CC=arm-linux-gnueabihf-gcc./configure --host=arm-linux --prefix=/home/mm/date/mtd-util/install
make
make install
最后生成相关命令如下:
7.命令的使用
将相关命令拷贝至板子/usr/sbin目录下,这里使用IMX6UL、Linux系统进行测试,使用命令前用cat /proc/mtd 查看一下mtdchar字符设备
[root@Embedsky ]# cat /proc/mtd
dev: size erasesize name
mtd0: 00400000 00020000"u-boot"
mtd1: 00200000 00020000"u-boot-env"
mtd2: 00400000 00020000"logo"
mtd3: 00a00000 00020000"kernel"
mtd4: 00200000 00020000"dtb"
mtd5: 0ea00000 00020000"rootfs"
这时通过nfs、ftpget等网络方式可将下载镜像拷贝到板子,即可使用nandwrite往nand flash写入镜像数据,写入后需reboot重启验证是否已经写入。
[root@Embedsky ]# nandwrite -p/dev/mtd3 /mnt/zImage
Writing data to block 0 atoffset 0x0
Writing data to block 1 atoffset 0x20000
Writing data to block 2 atoffset 0x40000
Writing data to block 3 atoffset 0x60000
更多命令可添加 --help查看使用参数