qt在linux與ok6410上的安裝移植(4)——插曲:ok6410與ubuntu的nfs共享

主系統:windows XP

           virtualbox版本:4.3.8

           guest系統:ubuntu12.04.4

           開發板:ok6410a

qt安裝好後,準備弄個小程序在開發板上跑一下,想到以後經常要拷貝程序什麼的那麼麻煩,我決定也跟上時代潮流使用nfs,於是今天早上折騰了一個早上。。。

一、首先要保證ubuntu12.04.4與板子上能ping通。。好吧,首先是用一根網線連上開發板以及主機連接的路由器,這點還是師弟教我的= = 由於臺式機只有一個網口,只能連到路由器了,師弟用的是筆記本,用無線上網,就直接開發板和筆記本連上就好了!

二、爲了試下網絡,我順便就先把主機上的xp與ubuntu試着ping了下,結果ubuntu可以ping這個xp,但是返過來就ping不通;咬牙切齒查了很多博客,什麼防火牆開關,icmp禁用。。。等等,都設置了還是不行,最後打開virtualbox的設備選項,在network選項下更改網絡設置,才知道自己是用的nat連接方式,然後給改成橋接就好了!!額,這兩個有啥不同,什麼原理我還沒弄明白,只能下次有時間再看!

三、按照ok6410的linux手冊,

1、在ubuntu終端輸入命令建立共享文件夾:

mkdir /z/nfs

(手冊中接下來有一步拷貝yaffs文件系統並解壓,一開始沒弄明白乾啥用的,後來想可能是直接從nfs開機啓動時用的把。。。)

2、配置nfs服務:這裏趁ubuntu還連着網先將該下載安裝的東西弄好

#sudo apt-get install portmap
#sudo apt-get install nfs-kernel-server
#sudo gedit /etc/exports

在彈出的文本編輯器中編輯exports 文件,在最後一行添加:
/z/nfs *(rw,sync,no_root_squash)

該配置的說明:

// /z/nfs 服務器端共享目錄,可自定義,權限需設置爲777
        // * 允許訪問nfs服務器共享目錄的ip範圍,可自定義
        // rw客戶機對共享目錄權限
        // sync同步寫入存儲器,可選
        // no_root_squash允許客戶機享有主機root身份,可選
        // 括號中的三個參數之間不可有空格
        // /z/nfs與 *間有一個空格

3、設置主機IP:命令格式爲:ifconfig eth0 IP地址 netmask 子網掩碼 up 

4、啓動nfs服務:

#sudo /etc/init.d/portmap restart
#sudo /etc/init.d/nfs-kernel-server restart

使以上改動生效:exportfs –a

5、第5步我一開始按照手冊在uboot命令行改變了參數,結果無法開機了!!直接在uboot增加參數的好處是以後每次開機不用重新設置。。不過既然我沒成功,只好把參數刪掉重開機,然後參考別人的方法:

mount –t nfs –o nolock 192.168.0.231:/z/nfs /mnt

成功
四、參考鏈接:http://duxiaolong5750.blog.163.com/blog/static/44856246201422921120354/
                     http://blog.sina.com.cn/s/blog_62d43bdb01011eep.html
第二個參考鏈接中說

發現用mount  -t nfs -o nolock 192.168.1.136:/nfs  /mnt 可以正常掛載,但是大一些的文件傳輸的時候會出現問題“nfs:server is not responding,still trying”

網上查找得知“NFS 的默認傳輸協議是 UDP,而PC機與嵌入式系統通過UPD交互時就會出現嚴重的網卡丟包現象。”


命令修改爲mount  -t nfs -o tcp , nolock 192.168.1.136:/nfs  /mnt  順利搞定。文件傳輸也沒有問題了。

但是我加了tcp後出錯,無法mount。。還不知道原因。。心塞,要學的太多了

五、插曲中的插曲,開發板接上網線,打開終端後一直輸出:

eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
eth0: link down
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
eth0: link down
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
eth0: link down
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1

……查原因,大家說網口有問題配置有問題啥的,我其實是可以ping通的,於是我就把兩邊的網線都拔了重插下,,結果就好了,看來有時候就是插拔問題。。。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章