S3C2440掛載NFS根文件系統(tǒng)
主要記錄下如何在ARM開發(fā)板上掛載NFS根文件系統(tǒng)。
PC主機(jī):Ubuntu 和redhat 9.0
目標(biāo)板:TQ2440開發(fā)板,linux內(nèi)核2.6.32
1.PC上安裝NFS服務(wù)
sudo apt-get install nfs-kernel-server
sudo apt-get install portmap nfs-common
2. 編輯/etc/exports文件
yj423@ubuntu:~$ cat /etc/exports
/home/yj423/nfswork *(rw,sync,no_root_squash)
設(shè)置/home/yj423/nfswork為被掛載的文件目錄
3.啟動(dòng)NFS服務(wù)
sudo /etc/init.d/nfs-kernel-server start
sudo /etc/init.d/portmap start
NOTE:確保每次Ubunu重啟時(shí)都要啟動(dòng)這兩個(gè)服務(wù),否則NFS根文件不能掛載。
4.配置開發(fā)板Linux內(nèi)核,
首先,開啟NFS客戶端和NFS根文件系統(tǒng)。
接著,打開DHCP服務(wù)。
5.使用Uboot修改內(nèi)核命令行參數(shù)
啟動(dòng)Uboot后,設(shè)置環(huán)境變量bootargs,輸入命令
setenv bootargs noinitrd console=ttySAC0 root=/dev/nfs ip=dhcp nfsroot=192.168.1.102:/home/yj423/nfswork
說明:root表示根文件系統(tǒng)所在的位置,這里為NFS根文件系統(tǒng)。
nfsroot表示NFS根文件系統(tǒng)所在的位置。192.168.1.102為PC機(jī)的IP地址,/home/yj423/nfswork即為NFS根文件所在的路徑。
6.啟動(dòng)內(nèi)核
.......
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Sending DHCP requests ., OK
IP-Config: Got DHCP answer from 0.0.0.0, my address is 192.168.0.103
IP-Config: Complete:
device=eth0, addr=192.168.0.103, mask=255.255.255.0, gw=192.168.0.1,
host=192.168.0.103, domain=, nis-domain=(none),
bootserver=0.0.0.0, rootserver=192.168.0.102, rootpath=, mtu=576
Looking up port of RPC 100003/2 on 192.168.0.102
Looking up port of RPC 100005/1 on 192.168.0.102
VFS: Mounted root (nfs filesystem) on device 0:12.
Freeing init memory: 156K
[01/Jan/1970:00:00:14 +0000] boa: server version Boa/0.94.13
[01/Jan/1970:00:00:14 +0000] boa: server built Jul 29 2009 at 14:27:34.
[01/Jan/1970:00:00:14 +0000] boa: starting server pid=920, port 80
Please press Enter to activate this console.
[root@yj423 /]#
NFS根文件系統(tǒng)掛載已經(jīng)完成。
看一下根目錄:
[root@yj423 /]#ls
bin dev home linuxrc proc sbin tmp var
boot etc lib mnt root sys usr
NOTE:在TQ2440的rcS文件中會(huì)啟動(dòng)一個(gè)腳本net_set,該腳本將會(huì)設(shè)置ip地址,子網(wǎng)掩碼等網(wǎng)絡(luò)參數(shù),在掛載根文件系統(tǒng)時(shí)必須禁止該腳本的運(yùn)行,否則系統(tǒng)會(huì)出現(xiàn)異常,導(dǎo)致系統(tǒng)無法繼續(xù)運(yùn)行。