<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

          作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò) 收藏
          NFS是個(gè)什么東東,我就不細(xì)說(shuō)了,定義如下:網(wǎng)絡(luò)文件系統(tǒng)(NFS,NetworkFileSystem)是一種將遠(yuǎn)程主機(jī)上的分區(qū)(目錄)經(jīng)網(wǎng)絡(luò)掛載到本地系統(tǒng)的一種機(jī)制,通過(guò)對(duì)網(wǎng)絡(luò)文件系統(tǒng)的支持,用戶可以在本地系統(tǒng)上像操作本地分區(qū)一樣來(lái)對(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)容,以后通過(guò)網(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)需要說(shuō)明,在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ù)格式說(shuō)明見: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)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();