新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Ubuntu9.10和JZ2440的NFS系統(tǒng)

基于Ubuntu9.10和JZ2440的NFS系統(tǒng)

作者: 時(shí)間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
NFS是個(gè)什么東東,我就不細(xì)說了,定義如下:網(wǎng)絡(luò)文件系統(tǒng)(NFS,NetworkFileSystem)是一種將遠(yuǎn)程主機(jī)上的分區(qū)(目錄)經(jīng)網(wǎng)絡(luò)掛載到本地系統(tǒng)的一種機(jī)制,通過對(duì)網(wǎng)絡(luò)文件系統(tǒng)的支持,用戶可以在本地系統(tǒng)上像操作本地分區(qū)一樣來對(duì)遠(yuǎn)程主機(jī)的共享分區(qū)(目錄)進(jìn)行操作。更具體的,請(qǐng)自行百度、谷歌。

NFS需要服務(wù)端和客戶端,Ubuntu上需要開啟nfs server,JZ2440上需要nfs client。

Ubuntu9.10安裝和配置nfs


執(zhí)行以下命令安裝nfs服務(wù),安裝后即會(huì)自動(dòng)運(yùn)行:
sudo apt-get install nfs-kernel-server portmap
它的配置文件為/etc/exports,在里面增加一下內(nèi)容,以后通過網(wǎng)絡(luò)文件系統(tǒng)訪問/sj_work/fs_root/fs_mini目錄:
/sj_work/fs_root/fs_mini *(rw,sync,no_root_squash)
修改完畢后,執(zhí)行以下命令重啟NFS服務(wù):
sudo /etc/init.d/nfs-kernel-server restart

如修改/etc/exports時(shí)提示只有管理員才有權(quán)限可以執(zhí)行:sudo vim /etc/exports命令后再修改! 
以上命令的含義,請(qǐng)自行百度、谷歌。

JZ2440配置和使用nfs


網(wǎng)卡驅(qū)動(dòng):


使用前需要確保對(duì)應(yīng)開發(fā)板上的網(wǎng)卡工作OK,JZ2440上用的是DM9000CEP,此網(wǎng)卡通DM9000A幾乎差不多,但也有一點(diǎn)不同,DM9000驅(qū)動(dòng)可以參考《嵌入式Linux應(yīng)用開發(fā)完全手冊(cè)》中的相關(guān)章節(jié)或自行百度下。
但有一點(diǎn)需要說明,在linux 2.6.22中Dm9000.c文件中的函數(shù)static intdm9000_open(struct net_device *dev)里,需要在

dm9000_reset(db);
dm9000_init_dm9000(dev);
之前添加如下代碼:

iow(db, DM9000_GPR, 0);
mdelay(20);
即預(yù)先使能PHY。

不加此代碼之前,我的網(wǎng)卡工作有時(shí)正常,有時(shí)異常。這個(gè)是針對(duì)DM9000CEP的,別的型號(hào)的網(wǎng)卡請(qǐng)自行嘗試。


U-boot傳遞給linux內(nèi)核的啟動(dòng)參數(shù):


setenv bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0 ---> 這個(gè)是默認(rèn)的啟動(dòng)參數(shù)

setenv bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.101:/sj_work/fs_root/fs_mini ip=192.168.1.133:192.168.1.101:192.168.1.1:255.255.255.0::eth0:on init=/linuxrc console=ttySAC0 ---> 這個(gè)是使用NFS的啟動(dòng)參數(shù)

NFS的啟動(dòng)參數(shù)格式說明見:linux源代碼中Documentationnfsroot.txt


linux內(nèi)核配置:


我使用的是linux 2.6.22中的archarmconfigss3c2410_defconfig作為默認(rèn)配置,即使用下面命令
cp archarmconfigss3c2410_defconfig .config
之后輸入
make menuconfig
既可在s3c2410_defconfig配置的基礎(chǔ)上進(jìn)行操作。

需要確保Networking -->Networking options
[*] TCP/IP networking
[*] IP: kernel level autoconfiguration
[ ] IP: DHCP support
[*] IP: BOOTP support
[ ] IP: RARP support

需要確保File systems -->Network File Systems
<*> NFS file system support
[*] Provide NFSv3 client support
[*] Provide client support for the NFSv3 ACL protocol extension
[*] Provide NFSv4 client support (EXPERIMENTAL)
[*] Allow direct I/O on NFS files
[*] Root file system on NFS
[*] Support for rpcbind versions 3 & 4 (EXPERIMENTAL)

之后執(zhí)行make uImage(因?yàn)槭鞘褂玫腷ootloader用的是u-boot,所以需要生成uImage的內(nèi)核鏡像。),之后下載sudo dnw arch/arm/boot/uImage。


關(guān)鍵詞: Ubuntu9.10JZ2440NFS系

評(píng)論


技術(shù)專區(qū)

關(guān)閉