天天看點

QQ2440V3-UBUNTU10.04配置NFS服務

當 NFS 服務設定好并啟動後,我們就可以把 NFS 作為根檔案系統來啟動開發闆了.使用 NFS 作為根檔案系統,開發闆的“硬碟”就可以變得很大,因為您使用的是主機的硬碟,這是使用 linux 作為開發經常使用的方法,

路由器一台,主控端網線連到路由。開發闆連到路由,開發闆序列槽連到主控端。

------------------------------------------

主控端配置NFS

Ubuntu10.04 上預設是沒有安裝Ubuntu nfs伺服器的,是以我們首先安裝Ubuntu nfs伺服器端:

$sudo apt-get install nfs-kernel-server

   (1)設定共享目錄

   運作指令

   #gedit /etc/exports

   編輯 nfs 服務的配置檔案(注意:第一次打開時該檔案是空的),添加以下内容:

   /opt/FriendlyARM/QQ2440V3/root_nfs  *(rw,sync,no_root_squash)

   其中:

   /opt/FriendlyARM/QQ2440/root_nfs 表示 nfs 共享目錄,它可以作為開發闆的根檔案系

統通過 nfs 挂接;

   * 表示所有的客戶機都可以挂接此目錄

   rw 表示挂接此目錄的客戶機對該目錄有讀寫的權力

   no_root_squash 表示允許挂接此目錄的客戶機享有該主機的 root 身份

 2) 建立共享目錄

拷貝CD光牒中的 root_nfs.tgz 檔案到某一個目錄,進入此目錄,執行以下指令:

#tar xvzf root_nfs.tgz –C /opt/FriendlyARM/QQ2440/root_nfs

該指令将把 root_nfs 的内容解壓安裝到/opt/FriendlyARM/QQ2440/root_nfs 目錄。

(3) 啟動和停止 nfs 服務

三、重新開機服務

$ sudo /etc/init.d/portmap restart

$ sudo /etc/init.d/nfs-kernel-server restart或#sudo service nfs-kernel-server restart

      這将啟動 nfs 服務,可以輸入以下指令檢驗 nfs 該服務是否啟動。

      # mount -t nfs localhost: /opt/FriendlyARM/QQ2440/root_nfs /mnt/

      如 果 沒 有 出 現 錯 誤 信 息 , 您 将 可 以 浏 覽 到 /mnt 目 錄 中 的 内 容 和

/opt/FriendlyARM/QQ2440/root_nfs 是一緻的。

[email protected]:/tmp# mount -t nfs localhost:/opt/FriendlyARM/QQ2440V3/root_nfs /mnt/

[email protected]:/tmp# showmount -e

4.1 顯示出共享出來的目錄

    $ showmount -e

 4.3 檢視挂載情況

    $ df

4.4 解除安裝挂載

    $ sudo umount /mnt

關閉NFS:

/etc/init.d/nfs-kernel-server stop

----------------------------

QQ2440開發闆配置:

啟動按q選項進入vivi模式:

檢視 主控端的IP位址等于多少。  

 Link encap:以太網  硬體位址 00:16:d4:dd:46:86  

inet 位址:192.168.1.108  廣播:192.168.1.255  掩碼:255.255.255.0

檢視 開發闆的IP位址等于多少

vi /etc/init.d/rcS

192.168.1.100, mask=255.255.255.0,

拷貝進去:

param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.108:/opt/FriendlyARM/QQ2440V3/root_nfs ip=192.168.1.100:192.168.1.108:192.168.1.108:255.255.255.0:QQ2440V3.arm9.net:eth0:off"

ip的第一項是目标闆的臨時IP(不要與區域網路内其它IP沖突)。

 第二項是boot server的IP(實際應用中發現好象沒什麼用)

 第三項是目标闆上的GW網關設定

 第四項是掩碼,

 第五項是主機名,

 第六項是網卡eth0,off的參數不知道是什麼意思,但對整個啟動應該沒什麼大的影響。 

(3)如果一個指令太長,一行放不下時,要在第一行行尾鍵入“\”字元和按Enter鍵。這時 shell 會傳回一個大于号(>)作為提示符,表示允許指令延續到下一行。然後,可以接着輸入指令。

uboot下設定nfs啟動,類似supervivi,使用指令setenv bootargs而不是param set linux_cmd_line

檢查一下在指令中間不要加換行

把終端拉長就可以了。

這個配置有問題,

NET: Registered protocol family 1

NET: Registered protocol family 17

IP-Config: Complete:

      device=eth0, addr=192.168.1.100, mask=255.255.255.0, gw=192.168.1.108,

     host=QQ2440V3, domain=, nis-domain=arm9.net,

     bootserver=192.168.1.107, rootserver=192.168.1.108, rootpath=

Looking up port of RPC 100003/2 on 192.168.1.108

Looking up port of RPC 100005/1 on 192.168.1.108

VFS: Mounted root (nfs filesystem).

mount_devfs_fs(): unable to mount devfs, err: -2

Freeing init memory: 144K

Warning: unable to open an initial console.

Kernel panic - not syncing: No init found.  Try passing init= option to kernel.

答:

1. 首先可以肯定的是,NFS已經mount成功了,至少核心是這麼認為的,否則你不會看到

VFS: Mounted root (nfs filesystem)

mount_devfs_fs(): unable to mount devfs, err: -2

解決方法是:

“其實核心本身已經告訴了你出錯的原因,你隻要稍加分析就可以知道。

根據kernel-2.6.13/include/asm-generic/errno-base.h,

#define    ENOENT        2    

在PC的/opt/FriendlyARM/QQ2440/root_nfs /mnt目錄下建一個dev目錄讓devfs挂載到那裡”

然後從新VIVI:

Mounted devfs on /dev

Freeing init memory: 144K

Kernel panic - not syncing: No init found.  Try passing init= option to kernel.

解決方法:

param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.108:/opt/FriendlyARM/QQ2440/root_nfs ip=192.168.1.70:192.168.1.108:192.168.1.108:255.255.255.0:fighter:eth0:off"

改為:

param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.108:/opt/FriendlyARM/mini2440/root_nfs/root_nfs

ip=192.168.1.70:192.168.1.108:192.168.1.108:255.255.255.0:fighter:eth0:off"

(1。因為是mini2440闆,自然要把QQ2440改為mini2440

2。/root_nfs 改為/root_nfs/root_nfs,有類似錯誤的朋友可看一下你的linux主機上的檔案,你會發現路徑應該是/opt/FriendlyARM/mini2440/root_nfs/root_nfs)

然後從新VIVI:

Freeing init memory: 144K

[01/Jan/1970:00:00:00 +0000] boa: server version Boa/0.94.13

[01/Jan/1970:00:00:00 +0000] boa: server built Feb 28 2004 at 21:47:23.

[01/Jan/1970:00:00:00 +0000] boa: starting server pid=261, port 80

Please press Enter to activate this console. MPEG Audio Decoder 0.15.0 (beta) - Copyright (C) 2000-2003 Robert Leslie et al.

     Title: ��ɺ��̲

    Artist: �Ҷ���

      Year: 2000

     Genre: Goa

[[email protected] /]# 

NFS 配置ok

以後啟動就用這個把。

param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.108:/opt/FriendlyARM/QQ2440V3/root_nfs/root_nfs ip=192.168.1.100:192.168.1.108:192.168.1.108:255.255.255.0:QQ2440V3.arm9.net:eth0:off"

   #gedit /etc/exports

   編輯 nfs 服務的配置檔案(注意:第一次打開時該檔案是空的),添加以下内容:

   /opt/FriendlyARM/QQ2440V3/root_nfs  *(rw,sync,no_root_squash)

改為   /opt/FriendlyARM/QQ2440V3/root_nfs/root_nfs  *(rw,sync,no_root_squash)

如何挂接使用網絡檔案系統NFS:

mount -t nfs -o nolock 192.168.1.108:/opt/FriendlyARM/QQ2440V3/root_nfs /mnt

挂接共享檔案夾OK。

繼續閱讀