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

          新聞中心

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

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

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

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

          Ubuntu9.10安裝和配置nfs


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

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

          JZ2440配置和使用nfs


          網(wǎng)卡驅動:


          使用前需要確保對應開發(fā)板上的網(wǎng)卡工作OK,JZ2440上用的是DM9000CEP,此網(wǎng)卡通DM9000A幾乎差不多,但也有一點不同,DM9000驅動可以參考《嵌入式Linux應用開發(fā)完全手冊》中的相關章節(jié)或自行百度下。
          但有一點需要說明,在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);
          即預先使能PHY。

          不加此代碼之前,我的網(wǎng)卡工作有時正常,有時異常。這個是針對DM9000CEP的,別的型號的網(wǎng)卡請自行嘗試。


          U-boot傳遞給linux內核的啟動參數(shù):


          setenv bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0 ---> 這個是默認的啟動參數(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內核配置:


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

          需要確保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(因為是使用的bootloader用的是u-boot,所以需要生成uImage的內核鏡像。),之后下載sudo dnw arch/arm/boot/uImage。


          評論


          技術專區(qū)

          關閉
          看屁屁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); })();