NFS是個什么東東,我就不細(xì)說了,定義如下:網(wǎng)絡(luò)文件系統(tǒng)(NFS,NetworkFileSystem)是一種將遠(yuǎn)程主機(jī)上的分區(qū)(目錄)經(jīng)網(wǎng)絡(luò)掛載到本地系統(tǒng)的一種機(jī)制,通過對網(wǎng)絡(luò)文件系統(tǒng)的支持,用戶可以在本地系統(tǒng)上像操作本地分區(qū)一樣來對遠(yuǎn)程主機(jī)的共享分區(qū)(目錄)進(jìn)行操作。更具體的,請自行百度、谷歌。
NFS需要服務(wù)端和客戶端,Ubuntu上需要開啟nfs server,JZ2440上需要nfs client。
Ubuntu9.10安裝和配置nfs
執(zhí)行以下命令安裝nfs服務(wù),安裝后即會自動運(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時提示只有管理員才有權(quán)限可以執(zhí)行:sudo vim /etc/exports命令后再修改!
以上命令的含義,請自行百度、谷歌。
JZ2440配置和使用nfs
網(wǎng)卡驅(qū)動:
使用前需要確保對應(yīng)開發(fā)板上的網(wǎng)卡工作OK,JZ2440上用的是DM9000CEP,此網(wǎng)卡通DM9000A幾乎差不多,但也有一點(diǎn)不同,DM9000驅(qū)動可以參考《嵌入式Linux應(yīng)用開發(fā)完全手冊》中的相關(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)卡工作有時正常,有時異常。這個是針對DM9000CEP的,別的型號的網(wǎng)卡請自行嘗試。
U-boot傳遞給linux內(nèi)核的啟動參數(shù):
setenv bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0 ---> 這個是默認(rèn)的啟動參數(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 ---> 這個是使用NFS的啟動參數(shù)
NFS的啟動參數(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。
評論