嵌入式Linux交叉開發環境建立-NFS

來源:互聯網
上載者:User
一.系統配置
   主機:ubuntu8.04LTS案頭版 開發板:友善之臂QQ2440V3
   主機IP:192.168.1.10  子網路遮罩:255.255.255.0 廣播位址:172.16.53.255
   開發板IP:192.168.1.10 廣播位址:172.16.53.255 子網路遮罩 255.255.255.0

二.串口配置minicom
2.1安裝
 UBUNTU預設未安裝minicom
    sudo apt-get install minicom

2.2配置
 進入到minicom
   Ctrl+A:進入配置介面
   cOnfigure Minicom..O:配置串口
   Serial port setup :

 配置方法:
   A - Serial Device      : /dev/ttyS0   
   B - Lockfile Location     : /var/lock      
   C - Callin Program      :                
   D - Callout Program      :                
   E - Bps/Par/Bits       : 115200 8N1    
   F - Hardware Flow Control : No            
   G - Software Flow Control : No             

(斷行符號進入上一級菜單)儲存設定:
   Save setup as dfl

 重啟minicom

三.建立NFS
3.1配置主機和開發板IP
  1.主機 (雙網卡,下面是與開發板串連的網卡設定)
   $sudo ifconfig eth1 192.168.1.10 netmask 255.255.255.0
  設定主機IP地址:192.168.1.10,子網路遮罩:255.255.255.0

  重啟網卡eth1,使配置生效
   $ sudo ifconfig eth1 down
   $ sudo ifconfig eth1 up

 2.開發板
 開發板IP和主機IP必須在同一個網段才能建立起網路連接

 進入到/etc/init.d/目錄下會看到一個rcS檔案,這個檔案包含arm-linux系統啟動時的初始化資訊。
   [root@FriendlyARM init.d]# cd /etc/init.d/
 修改開發板IP地址的
   [root@FriendlyARM init.d]# ls #顯示檔案夾內容。
   rcS
   [root@FriendlyARM init.d]#cp rcS rcS.bak #備份rcS檔案
   [root@FriendlyARM init.d]# vi rcS 

 修改以下欄位,表示設定開機開發板IP是192.168.1.100與主機IP:192.168.1.10在一個網段內
   /sbin/ifconfig eth0 192.168.1.100 up   

 改完後就重啟一下開發板
   [root@FriendlyARM /]# reboot

3.2配置NFS服務
 1.準備工作
   sudo chmod 777 /home/armnfs
   mkdir ~/arm
 在/home下建立armnfs目錄,作為NFS的目錄,為了開發的方便,把許可權設為drwxrwxrwx。
 
 把root_nfs.tgz (arm-linux的核心)解壓到/home/armnfs目錄下,開發板將從這裡啟動。

 2.安裝NFS
 Ubuntu上預設是沒有安裝NFS伺服器的,首先要安裝NFS服務程式:
   $ sudo apt-get install nfs-kernel-server
  安裝nfs-kernel-server時,apt會自動安裝nfs-common和portmap
  這樣,宿主機就相當於NFS Server

 3.配置NFS
 (1)配置portmap (此斷抄xhylyx兄弟的,我電腦裡預設被注釋掉了,xhylyx兄弟文章中說為防止其他非法使用者登入nfs,還對 /etc/hosts.deny
和 /etc/hosts.allow 進行了設定,其實沒必要,可在後面 /etc/exports 裡設定。xhylyx的設定好像也有問題,/etc/host.deny優先順序高些,全部deny了,allow也沒有用了)
  方法1: 編輯/etc/default/portmap, 將 -i 127.0.0.1 去掉.
  方法2: $ sudo dpkg-reconfigure portmap , 對Should portmap be bound to the loopback address? 選N.

 (2)配置/etc/exports
  NFS掛載目錄及許可權由/etc/exports檔案定義
  /home/armnfs 192.168.1.*(rw,sync,no_root_squash)
 讓IP地址為192.168.1.*的nfs用戶端都能訪問/home/armnfs目錄

 (3)查看NFS server的export list.
   $showmount -e
   miao@miao-desktop:/usr/local/arm$ showmount -e
   Export list for miao-desktop:
   /home/armnfs 192.168.1.*

 (4)更新 /etc/exports
  sudo exportfs -r

 (5)重啟nfs服務
   $ sudo /etc/init.d/nfs-kernel-server restart  

 (6)測試NFS
 掛載本地磁碟
 主機IP是192.168.1.10,把/home/armnfs目錄掛載到/mnt目錄下
   $sudo mount -t nfs 192.168.1.10:/home/armnfs /mnt

 成功的掛載上的話你會在/mnt目錄下看到root_nfs這個檔案夾下的內容

3.3.通過NFS啟動開發板
 當NFS 服務設定好並啟動後,我們就可以把NFS 作為根檔案系統來啟動開發板了
 (1)設定目標板啟動模式跳線J1 為Nand Flash 啟動。

 (2)進入Supervivi菜單,按q進入shell命令模式。手動開啟 vivi自動換行功能,先按ctrl+a鍵,再按W鍵,後面的命令很長不換行輸不下。
 
(3)輸入命令(紅色部分不用改)
<Supervivi>param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.10:/home/armnfs ip=192.168.1.100:192.168.1.10:192.168.1.10:255.255.255.0:sbc2440.arm9.net:eth0:off"
說明:
nfsroot=192.168.1.10, 是主機IP ,/home/armnfs是nfs共用資料夾目錄
ip=192.168.1.100:192.168.1.10:192.168.1.10:255.255.255.0
第一個IP是開發板的IP(開發板的IP不要與區域網路內其它IP衝突),第二個是主機的IP,第三個也是主機的IP,第四個是開發板的子網路遮罩

(4)啟動linux
Supervivi>boot

linux將從宿主機/home/armnfs目錄下的核心,開始啟動。

參考資料:
xhylyx
http://forum.ubuntu.org.cn/viewtopic.php?t=109904

water2007
http://forum.ubuntu.org.cn/viewtopic.php?t=138051

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.