|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
; R8 k7 U4 ~2 P5 r% N8 o1 I
建立 nfs 服务器 ! M- W0 s1 c! N- b
在嵌入式 linux 开发的时候,常常需要使用 nfs 以方便程序的调试。使用 nfs,用户可以: l F+ l0 m2 }: A
将板子要用到的根文件系统放在主机目录下,开发板则通过以太网挂载到这个目录并将这个
7 [ X6 a# p; D. `# E! L( l2 C: z目录下的文件作为根文件系统的内容,这样用户的程序更新后不比重新烧写板子的根文件系. W. Q& a; L1 y/ R3 i5 O$ a8 ^
统便能被重新使用,这点能够大大加快程序的调试。 ( R' d n; o7 n" y/ V
Ubuntu 下安装 nfs 服务器的步骤如下: m+ k5 g# e8 l( n' d- T
4.3.1 进行 NFS 服务器端与客户端的安装:
0 |9 Q3 [) ~; M( d7 hsudo apt-get install nfs-kernel-server nfs-common portmap + u# I4 p1 J' D, x' _: H" v
安装客户端的作用是可以在本机进行 NFS 服务的测试。 $ E$ j: M# W; ~( ^' }
4.3.2 配置 portmap . m" N: }% }! J
两种方法任选一种就可以: # m+ C1 a* u9 q# Q+ U
(1):sudo emacs /etc/default/portmap 9 ?( \+ O6 W% G5 a# ^' L5 K
去掉 -i 127.0.0.1 " E8 P6 O: ?5 H! h& s" s( G6 G& W
(2)sudo dpkg-reconfigure portmap
2 Q6 t% i( P1 z. e. k运行后选择“否” 2 W7 V. a: G0 ?- }4 B' @
另外很重要的一点,要用 sysv-rc-conf (而不是 chkconfig)工具查看一下当前 nfs 和 portmap# T7 S! o: C7 P \* C* B/ R
的状态,若是 off,则用 sudo sysv-rc-conf portmap on 或 sudo sysv-rc-conf nfs-kernel-server on
$ o" q: I; b( C- |打开 " ]; g5 X; J% a9 o8 c8 {* G! S' s: J
4.3.3 配置挂载目录和权限
, l3 s: m/ d Iemacs /etc/exports
/ B; B' F$ D+ }8 S我的配置如下: m9 T- v- y1 h; ?& J
# /etc/exports: the access control list for filesystems which may be exported
# ^8 |% b8 b s8 Z- I# to NFS clients. See exports(5).
& @! N" E8 M8 ^#
) {8 I" J4 X2 e8 n Z) t# Example for NFSv2 and NFSv3: $ W% @7 S3 B: w: ?+ Z' s
# /srv/homes hostname1(rw,sync) hostname2(ro,sync)
8 N# r. @& f: b5 P* i9 O7 x! c$ v1 d#
. G9 S) `5 a& A3 H, Z# Example for NFSv4: 3 `# ~, w5 C0 C( L
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt) 7 E( E0 K8 |. m2 P1 x, h; N
# /srv/nfs4/homes gss/krb5i(rw,sync) * L7 e% y9 w/ l8 p( _8 l) m
#
% X5 E r( T0 N9 a3 u. G' r; U# G/nfsboot *(rw,sync)
& v$ o [+ I' K解释一下: # V7 c- E8 R, z3 a1 C) g
#后面的都是解释 $ w3 u4 h* @( x
/nfsboot 是 NFS 的共享目录,*表示任何 IP 都可以共享这个目录,你可以改为受限的 IP,rw
' |* @/ B/ h! D' E6 `. Y$ M4 t表示的是权限,sync 是默认的。
7 J5 F6 _" u3 b3 N4.3.4 更新 exports 文件
3 X5 Q& h9 o9 _6 z1 w a只要你更改了/etc/exports, 你不可以通过 sudo exportfs -r 来更新 这个文件
0 a) t- x- q+ s! F e& D, p5 G7 \4.3.5 重启 NFS 服务 6 T+ u7 x" P0 b* J$ |
Sudo /etc/init.d/portmap start
" {) Z' @& R: L; l% o: y7 xsudo /etc/init.d/nfs-kernel-server restart 重启 nfs 服务
?& ?/ l+ j" x. c4.3.6 进行测试 2 F! o" C0 D. E C
尝试一下挂载本地磁盘(我的 linux 系统 IP 为 202.198.137.18,将/home/nfsboot 挂载到/mnt)
/ b+ q: f0 i, v; y$ sudo mount 202.198.137.18:/nfsboot /mnt
' u& e7 V- }$ x4 s" @2 A" l运行 $ df 看看结果 1 ~/ ^, [# G% Q }' B
$ sudo umount /mnt |
|