交叉编译nfs-utils

NFS在信息传送中依赖RPC协议,NFS服务端需要安装rpcbind和nfs-utils,客户端只需要安装 nfs-utils。

交叉编译比x86上编译复杂一些,主要是交叉编译环境不能使用软件仓库中的程序,需要下载依赖库的源码,在交叉编译环境编译、安装后才能使用。

rpcbind依赖libtirpc;nfs-utils依赖libtirpc、libevent、device-mapper

先编译这些依赖库,./configure指定交叉编译参数,其中arm-hisiv400-linux-gcc是个人使用的Hi3536芯片提供的SDK:

./configure CC=arm-hisiv400-linux-gcc --host=arm-linux prefix=/usr/arm/xxx

其中device-mapper执行./configure 会提示” ../lib/ioctl/libdevmapper.so: undefined reference to `rpl_malloc'”,处理方法:在configure文件注释掉#define malloc rpl_malloc

 

这些依赖库make&&make install之后,编译rpcbind和nfs-utils时加上他们的lib和include目录

rpcbind:

./configure CC=arm-hisiv400-linux-gcc --host=arm-linux LDFLAGS="-L/usr/arm/tirpc/lib" CPPFLAGS="-I/usr/arm/tirpc/include/tirpc" --with-systemdsystemunitdir=no prefix=/usr/arm/rpcbind

这里禁用了systemd。如果报错”No package 'libtirpc' found”,在PKG_CONFIG_PATH增加tirpcpkgconfig目录:

export PKG_CONFIG_PATH=/usr/arm/tirpc/lib/pkgconfig:$PKG_CONFIG_PATH

 

nfs-utils编译:

./configure CC=arm-hisiv400-linux-gcc --host=arm-linux LDFLAGS="-L/usr/arm/tirpc/lib -L/usr/arm/event/lib -L/usr/arm/devmapper/lib" CPPFLAGS="-I/usr/arm/tirpc/include/tirpc/rpc -I/usr/arm/event/include -I/usr/arm/devmapper/include" --enable-gss=no --disable-uuid --without-tcp-wrappers --prefix=/usr/arm/nfs

configure通过之后执行make

程序移植到嵌入式对应目录后,启动rpcbind和rpc.nfsd,如果启动失败查看错误提示或系统日志/var/log/messages,根据错误提示处理

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值