|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
主要记录下如何在ARM开发板上挂载NFS根文件系统。
K) |9 E5 C( a
/ C. S& x1 L5 O3 o/ @: PPC主机:Ubuntu 和redhat 9.0: I4 D6 V1 |+ a% k. W
4 [8 A) k) `& l$ ^8 w8 m目标板:TQ2440开发板,linux内核2.6.32
7 E b% u3 a+ e" T; u0 v5 s4 m+ a& ]$ ^! r+ c9 @
. j, p# D, _* {* I' v9 e9 `
5 J. R$ ]# g! C1.PC上安装NFS服务- ?) Z& G1 R. w7 \: Y; I) Q. L
5 a% K7 ]4 x; Q) A0 Q8 ~
sudo apt-get install nfs-kernel-server
; ]6 `) B" Y8 ~8 Psudo apt-get install portmap nfs-common
. k" C8 y& \8 m$ ]/ W* U. i+ b% V/ z0 H( M: u1 v. H* J
' l3 u( O' o6 ]5 P* k
2. 编辑/etc/exports文件5 {, b6 S3 n, j0 r
% f% }3 P7 g# T5 U9 h- F
yj423@ubuntu:~$ cat /etc/exports0 w( a& x5 c- Q# ~( v6 `" s
3 i' `/ t: l$ M6 g- X# a6 w1 k6 X
/home/yj423/nfswork *(rw,sync,no_root_squash)* `* v( T6 A* r
9 b( g: u/ T X9 X v设置/home/yj423/nfswork为被挂载的文件目录+ [" W2 M$ Z& x( t0 f
1 O- ^4 F" h* p4 p
) d7 N% \1 x! f3 h2 g, S2 Y* j
3.启动NFS服务9 w* J: j1 u# M3 a2 b: P
( z' f7 [$ W% ]0 [7 E( o9 C
sudo /etc/init.d/nfs-kernel-server start2 U. [( Z9 P$ i
sudo /etc/init.d/portmap start) z% F' o K% s0 C, T6 `& c7 C. ^* e
/ h2 w" b! L8 h1 v3 T
NOTE:确保每次Ubunu重启时都要启动这两个服务,否则NFS根文件不能挂载。
! d$ q% }6 }0 Z& h
4 @% }$ [% f0 K+ z0 b- C
2 ~6 V$ ~7 [0 \4 x4.配置开发板Linux内核,
' m0 U) D, M: O G; _2 M: g* y& l: K' v* G
首先,开启NFS客户端和NFS根文件系统。: y6 l8 i* r4 W9 p6 d; X3 v; V9 E! j
$ H1 j% ]& N1 p
. E1 ?% |+ l! G+ n' F8 j4 Z1 o7 [" I; e/ R+ ]; Y- A) w
接着,打开DHCP服务。
# q/ Q$ ^" J0 P i5 Q" i! W. u* V5 L) Z1 X, S* y6 h5 B7 N$ C
1 a3 ]* Q; u R+ h/ d8 u
- ~) v+ G. y2 J; X* d8 C( _, v: E9 Y& r. J3 F$ @5 Y, n
5.使用Uboot修改内核命令行参数. ~# x& }) P* p( n8 }
# B% v z, `0 E+ a8 ]启动Uboot后,设置环境变量bootargs,输入命令
. f7 u z$ h8 ^! U6 v, _1 ] P8 i, N& T3 T2 W2 j! X8 O
setenv bootargs noinitrd console=ttySAC0 root=/dev/nfs ip=dhcp nfsroot=192.168.1.102:/home/yj423/nfswork
, X3 j& b0 i3 c6 V6 T! w% U& Q/ s- X9 {5 U( m5 P, ^
说明:root表示根文件系统所在的位置,这里为NFS根文件系统。' O( q( |- y. i- E0 X+ o, S
, _5 T6 L- ?- p) j, t# n2 k2 c
nfsroot表示NFS根文件系统所在的位置。192.168.1.102为PC机的IP地址,/home/yj423/nfswork即为NFS根文件所在的路径。
0 ]+ k, x0 J/ J# C% {7 ~& G" T$ u! U, y) e0 g' y6 a
" H c9 ], ?+ y* X9 A6.启动内核; b! Y/ }5 o$ k0 Y6 {
- P F( w* K1 l7 v
......." {: W! M' x. ~7 f: P3 z
% k' ]2 E/ ]5 f8 O( j
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
: `' V0 W% f8 \9 Y( Z* }2 cSending DHCP requests ., OK; D4 `" Y7 P0 @' i2 Q. m
IP-Config: Got DHCP answer from 0.0.0.0, my address is 192.168.0.1038 a1 R. e4 e, V' j2 T
IP-Config: Complete:
' S! i, f- W5 _ device=eth0, addr=192.168.0.103, mask=255.255.255.0, gw=192.168.0.1,
( r, @' }1 v1 `1 d3 e) k" S+ J% f host=192.168.0.103, domain=, nis-domain=(none),) j3 g" s1 q, d/ l
bootserver=0.0.0.0, rootserver=192.168.0.102, rootpath=, mtu=576* S. O" W a1 ~; l
Looking up port of RPC 100003/2 on 192.168.0.102
, K; u, M0 L" l8 yLooking up port of RPC 100005/1 on 192.168.0.102+ d& W) [/ R& t$ J# [7 s0 C
VFS: Mounted root (nfs filesystem) on device 0:12.
+ v5 P0 A$ M* v1 X8 D- O* WFreeing init memory: 156K
3 @( f; ]& a& z7 U- b5 U8 O[01/Jan/1970:00:00:14 +0000] boa: server version Boa/0.94.13
3 l' s* L: `0 F1 [[01/Jan/1970:00:00:14 +0000] boa: server built Jul 29 2009 at 14:27:34.
9 [0 ^% C5 t5 E" ]9 }8 i! I[01/Jan/1970:00:00:14 +0000] boa: starting server pid=920, port 80
w1 F2 ?+ d; n! P/ x) @5 ~Please press Enter to activate this console. 0 L, x2 s q( K" D
[root@yj423 /]#
9 _- I7 M( \, ]( D: o6 p; @/ R$ M( E$ }$ i
NFS根文件系统挂载已经完成。
, W# j5 m. j/ q4 w* t, j( r( M; L. }
5 q4 G9 o+ N$ X, w看一下根目录:6 \$ l5 O; E! b0 M
k+ z/ Y$ X! T/ H, ]3 |7 i
[root@yj423 /]#ls
6 t( ?9 D* x. Y& G1 A! |$ Ebin dev home linuxrc proc sbin tmp var
# H7 j9 w0 @( t$ O$ x8 y! aboot etc lib mnt root sys usr# w' r+ _3 z% Z, i
# S9 M& B% W% |1 E7 H1 P! V( u
. i9 ^3 E6 v; Z5 KNOTE:在TQ2440的rcS文件中会启动一个脚本net_set,该脚本将会设置ip地址,子网掩码等网络参数,在挂载根文件系统时必须禁止该脚本的运行,否则系统会出现异常,导致系统无法继续运行。! w" A* Y7 l' r& X) U1 N& M- v) N
5 E6 ]# p3 [; Q( E
0 l: C, V, G- [3 Q
: Z! y* n" W. }: O5 Q3 s0 F5 p" Z4 ^& C
; t* j' J- L. h$ h' h* d, q7 o, P
|
|