公司开发的监视器使用的是基于zynq board的板子。由于采用openamp(linux + baremetal并行),所以从xilinux官网下了petalinux来跑demo。

交叉编译工具不甚了解,就用petalinux自带的arm-linux-gnueabihf-gcc,看上去挺新的所以就用它了。

傻瓜式移植mtd-utils-1.2.0到arm

考虑到成本,系统就放在nandflash里(以后出坏块怎么办?)所以需要mtd-utils,搜了一下csdn里各种大佬的博客,掌握了一下基本流程,觉得自己亲自尝试一下移植mtd-utils。并记录遇到的小白问题

下载以下各种库

傻瓜式移植mtd-utils-1.2.0到arm

1.编译、安装zlib

源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)

先解压,然后配置

CC=arm-linux-gnueabihf-gcc ./configure --shared --prefix=/opt/pkg/petalinux/tools/linux-i386/gcc-arm-linux-gnueabi

 

--prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share

 

编译make

安装sudo make install

大致的日志如下

傻瓜式移植mtd-utils-1.2.0到arm

2.编译、安装lzo

配置 CC=arm-linux-gnueabihf-gcc ./configure --host=arm-linux-gnueabihf --prefix=/opt/pkg/petalinux/tools/linux-i386/gcc-arm-linux-gnueabi

make

sudo make install

傻瓜式移植mtd-utils-1.2.0到arm

这里安装失败了,原因是找不到 arm-linux-ranlib

应该使用arm-linux-gnueabihf-ranlib

修改configure文件 ac_tool_prefix=arm-linux-gnueabihf-

这里明明有arm-linux-gnueabihf-ranlib,但是因为使用sudo改变用户和环境变量的设定,导致找不到对应命令

所以不适用sudo make install

3.编译、安装e2fsprogs(在这里仅安装e2fsprogs-libs-1.41.14)

CC=arm-linux-gnueabihf-gcc ./configure --host=arm-linux --enable-elf-shlibs --prefix=/opt/pkg/petalinux/tools/linux-i386/gcc-arm-linux-gnueabi


make

sudo make install

在inlcude文件夹创建uuid文件夹,拷贝e2fsprogs-libs-1.41.14/lib/uuid/uuid.h进去

 

4.准备好后编译、安装mtd-utils-1.2.0

这里建议先修改一下Makefile文件,手动添加如下2行

CROSS=arm-linux-gnueabihf-
WITHOUT_XATTR=1

傻瓜式移植mtd-utils-1.2.0到arm

emm.. 试了很多方法也没法解决,反正只需要nand操作的功能,所以修改一下makefile

把需要的结果放在前面编译,出问题的放在后面。就此搞定,上板子试了一下ok

 

 

 

相关文章:

  • 2022-12-23
  • 2021-12-10
  • 2021-12-04
  • 2021-09-30
  • 2021-07-26
  • 2022-02-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-16
  • 2021-07-02
  • 2021-04-29
  • 2021-04-20
  • 2021-08-09
  • 2022-12-23
相关资源
相似解决方案