编译portmap和nfs-utils

编译portmap和nfs-utils

为了在播放机上实现NFS服务器的功能,我们已经在uClibc中打开了完整RPC支持,并且在新编译的内核中打开了NFS服务器支持。此外还有两个软件包也是提供NFS服务所必需的:portmapnfs-utils。portmap为RPC程序提供端口映射服务,nfs-utils则是使用内核NFS服务器的支持程序。

编译portmap
1. 下载portmap_5beta: ftp://ftp.porcupine.org/pub/security/portmap_5beta.tar.gz
2. 打这个补丁: portmap_5beta.patch.zip (补丁来自buildroot-2009.11,我只是把多个补丁合并成一个)
3. $ make CC=mipsel-linux-gcc
4. $ mipsel-linux-strip portmap

编译nfs-utils
1. 下载nfs-utils-1.1.1: http://nchc.dl.sourceforge.net/project/nfs/nfs-utils/1.1.1/nfs-utils-1.1.1.tar.gz
2. 打这个补丁: nfs-utils-1.1.1-uclibc.patch.zip (在网上找到的,来源记不清了,我稍加了修改)
3. 运行配置脚本:

1 ./configure --build=i686-linux --host=mipsel-linux --disable-nfsv4 --disable-gss --disable-uuid --disable-mount --without-tcp-wrappers --with-gnu-ld CC=mipsel-linux-gcc CPP=mipsel-linux-cpp AR=mipsel-linux-ar STRIP=mipsel-linux-strip RANLIB=mipsel-linux-ranlib LD=mipsel-linux-ld

4. $ make
5. 安装到/home/user/dist/nfs-utils目录

1 $ make DESTDIR=/home/user/dist/nfs-utils install-strip

在制作固件时,我们只需要几个编译好的程序:portmap, rpc.statd, rpc.nfsd, rpc.mountd, exportfs。其中portmap 放到/sbin下,其余的放到/usr/sbin下。
此外还需要一个NFS服务启动脚本S60nfs,放在/etc/init.d目录下。下载脚本S60nfs.zip (来自buildroot,我把portmap的启动加进去了)

1 #!/bin/sh                                
 2 #                                        
 3 # nfs           This shell script takes care of starting and stopping
 4 #               the NFS services. Stolen from RedHat FC5.            
 5 
 6 [ -x /sbin/portmap ] || exit 0
 7 [ -x /usr/sbin/rpc.statd ] || exit 0
 8 [ -x /usr/sbin/rpc.nfsd ] || exit 0 
 9 [ -x /usr/sbin/rpc.mountd ] || exit 0
10 [ -x /usr/sbin/exportfs ] || exit 0  
11 
12 # Don‘t fail if /etc/exports doesn‘t exist; create a bare-bones version and continue.
13 [ -r /etc/exports ] || \                                                             
14     { touch /etc/exports && chmod u+rw,g+r,o+r /etc/exports ; } || \                 
15     { echo "/etc/exports does not exist" ; exit 0 ; }                                
16                                                                                      
17 # The /var/lib/nfs directory is actually on a tmpfs filesystem.                      
18 mkdir -p /var/lib/nfs/sm                                                             
19 mkdir -p /var/lib/nfs/sm.bak                                                         
20 touch /var/lib/nfs/etab                                                              
21 touch /var/lib/nfs/rmtab                                                             
22 touch /var/lib/nfs/state                                                             
23 touch /var/lib/nfs/xtab                                                              
24 
25 start() {
26         # Start daemons.
27         echo -n "Starting port mapper: "
28         portmap                         
29         echo "done"                     
30 
31         echo -n "Starting NFS statd: "
32         rpc.statd                     
33         touch /var/lock/subsys/nfslock
34         echo "done"                   
35 
36         echo -n "Starting NFS services: "
37         /usr/sbin/exportfs -r            
38         rpc.statd                        
39         echo "done"                      
40 
41         echo -n "Starting NFS daemon: "
42         rpc.nfsd 2                     
43         echo "done"                    
44 
45         echo -n "Starting NFS mountd: "
46         rpc.mountd                     
47         echo "done"                    
48         touch /var/lock/subsys/nfs     
49 }                                      
50 
51 stop() {
52         # Stop daemons.
53         echo -n "Shutting down NFS mountd: "
54         killall -q rpc.mountd               
55         echo "done"                         
56 
57         echo "Shutting down NFS daemon: "
58         kill -9 `pidof nfsd` 2>/dev/null 
59         echo "done"                      
60 
61         echo -n "Shutting down NFS services: "
62         /usr/sbin/exportfs -au                
63         rm -f /var/lock/subsys/nfs            
64         killall -q rpc.statd                  
65         echo "done"
66 
67         echo -n "Stopping NFS statd: "
68         killall -q rpc.statd
69         echo "done"
70         rm -f /var/lock/subsys/nfslock
71 
72         echo -n "Stopping port mapper: "
73         killall -q portmap
74         echo "done"
75 }
76 
77 # See how we were called.
78 case "$1" in
79   start)
80         start
81         ;;
82   stop)
83         stop
84         ;;
85   restart)
86         stop
87         start
88         ;;
89   reload)
90         /usr/sbin/exportfs -r
91         touch /var/lock/subsys/nfs
92         ;;
93   *)
94         echo "Usage: nfs {start|stop|reload}"
95         exit 1
96 esac
97 
98 exit 0

posted on 2010-03-23 16:24 gouzhuang 阅读(4774) 评论(4)  编辑 收藏 引用 所属分类: 嵌入式Linux

评论

# re: 编译portmap和nfs-utils 2010-03-23 21:58 ccc

继续关注中  回复  更多评论

# re: 编译portmap和nfs-utils 2010-10-28 17:33 kwingart

ls, 如何在1073方案的海美迪300系列固件上实现nfs server啊,后续能出一个指南吗。谢谢分享。
[email protected]  回复  更多评论

# re: 编译portmap和nfs-utils 2013-05-04 23:15 xlx

这个portmap的补丁是为了解决那个
"cannot find any active local network interfaces"
的问题吗?如果是,希望博主放个修复了这个问题的编译好的portmap出来。  回复  更多评论

# re: 编译portmap和nfs-utils 2013-08-14 10:27 nuc07

exportfs: /xx/xx/path does not support NFS export
运行exportfs时出现上面的提示会是什么原因  回复  更多评论

时间: 2024-10-10 17:37:29

编译portmap和nfs-utils的相关文章

Ubuntu下配置tftp服务和NFS服务

Ubuntu下配置tftp服务和NFS服务 配置tftp 方法一:(推荐方法)Ubuntu10.04 测试通过 1.安装TFTP软件 sudo apt-get install tftp-hpa tftpd-hpa tftp-hpa是客户端,tftpd-hpa是服务器端 2.建立tftpboot目录,作为服务器的目录sudo mkdir ~/tftpboot释放权限:(服务器目录,需要设置权限为777,chomd 777)sudo chmod 777 ~/tftpboot 3.配置TFTP服务器

web服务器,共享关系型数据库和NFS服务器

安装Web(这里采用编译安装) 1.httpd-2.4.2需要较新版本的apr和apr-util,因此需要事先对其进行升级.升级方式有两种,一种是通过源码编译安装,一种是直接升级rpm包,下载好安装包以后使用"rpm -Uvh"进行升级即可.这里选择使源码编译安装. 注意:安装这些软件包之前不要忘记安装开发环境了 yum -y groupinstall "Development Tools" yum -y groupinstall "Development

nfs配置过程及基础配置总结

1.开启portmap和nfs服务service portmap start     service nfs start     chkconfig --level nfs 35 on     chkconfig --level protmap 35 on 2.将要共享的目录写到exports文件中 假设共享的目录为 /sharedisk/     vim /etc/exports     在exports文件中添加     /sharedisk    192.168.0.0/24(rw,no_

NFS资料

Linux NFS服务器的安装与配置 http://www.cnblogs.com/mchina/archive/2013/01/03/2840040.html Linux NFS服务器的安装与配置详解 http://www.linuxidc.com/Linux/2017-01/139886.htm NFS-Utils-2.1.1源码 http://www.linuxfromscratch.org/blfs/view/svn/basicnet/nfs-utils.html 编译portmap和n

NFS网络文件共享服务的配置和排错总结

1.什么是NFS? NFS,全名叫Network File System,中文叫网络文件系统,是Linux.UNIX系统的分布式文件系统的一个组成部分,可实现在不同网络上共享远程文件系统.NFS由Sun公 司开发,目前已经成为文件服务的一种标准之一.其最大的功能就是可以通过网络,让不同操作系统的计算机可以共享数据, 所以可以把NFS看做是一个文件服务器.NFS缺点是其读写性能比本地硬盘要差一些. 2.使用yum安装nfs-utils.rpcbind 实验环境centos 6.6nfs-serve

linux 数据备份(NFS映射方法)

环境:Red Hat 4.8.3-9(主机) ip地址:192.168.1.1 Ubuntu 4.8.4-2(从机) IP地址:192.168.1.2 用途:将从机数据备份到主机,因从机空间较小,选择使用NFS网络磁盘映射的方法完成 NFS 是Network File System的缩写,即网络文件系统 [主机] 安装NFS服务 nfs-utils-* :包括基本的NFS命令与监控程序 portmap-* :支持安全NFS RPC服务的连接(该服务改名为rpcbind) #查看是否已安装该服务

【转载】Linux NFS服务器的安装与配置

一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享. NFS在文件传

Linux学习之nfs实例

在对exports文件进行了正确的配置后,就可以启动NFS服务器了. 1.启动NFS服务器 为了使NFS服务器能正常工作,需要启动portmap和nfs两个服务,并且portmap一定要先于nfs启动. # service portmap start # service nfs start 2.查询NFS服务器状态 # service portmap status # service nfs status 3.停止NFS服务器 要停止NFS运行时,需要先停止nfs服务再停止portmap服务,对

Linux NFS服务器的安装与配置

注意:centos6.x以后portmap已经被rpcbind取代,并且随nfs-utils安装一并安装了,下文提到所有portmap都以rpcbind代替. 一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS