標籤:
前幾天在做uboot下用tftp下載檔案到開發板的實驗時,為了能解決開發板ping不通主機和虛擬機器的問題,可謂絞盡腦汁,正所謂久病成醫,雖然為了這一小問題廢了我那麼長時間,但我在解決問題的同時也學到了很多其他知識,算是塞公失馬,焉知禍福!好了,廢話不多說,如果你也ping不通,就請往下看!
(以下是我解決這一問題的心得,以我開發板為例,如果你的板子跟我不一樣,也沒關係,道理是一樣的)
一:物理裝置及串連方式:
開發板:Mini2440(友善之臂);
筆記本一台(主機)(windows系統);
虛擬機器(ubuntu系統);
路由器一台(不連外網也沒關係);
串連方式:開發板與主機各用一條網線與路由器相連(網線也分直連網線和交叉網線,如果兩台pc機相連,必須要用交叉網線,我們一般用的網線都是直連型的)。
二:開發板uboot環境變數設定:ipaddr、gatewayip、netmask 這三個變數要設定好,ipaddr跟主機的ip、虛擬機器的ip要在一個網段;gatewayip通常設為路由器的網關;如果你要用tftp服務,那serverip要設成虛擬機器的ip;
三:虛擬機器網路設定:虛擬機器->設定->網路介面卡(指定為vmnet0橋接模式):
編輯->虛擬機器網路編輯器(一定要自訂橋接到指定主機的網卡,橋接到本地串連):
插曲:這裡要說一下,有人可能會遇到這塊沒有自動產生vmnet網卡的情況(),自己添加的話,又不能改為橋接模式(),提示:“沒有未橋接的主機網路介面卡”
如果你虛擬機器有vmnet0,橋接過程順利的話,那就自動跳過以下內容,往下面翻。
解決嘗試:
1:查看主機本地串連屬性中VMware Bridge Protocol 有沒有勾上
如果沒有勾上,就點 安裝->選 服務->添加->從磁碟安裝->選擇你的檔案來源(一般在你vm的安裝目錄下有個netbridge檔案)(這是虛擬機器軟體中的一個重要dll檔案,用於建立虛擬網路橋接時的資料檔案)。
嘗試2:重裝主機虛擬網卡
在 電腦->管理->裝置管理員,底下有個網路介面卡,裡面全是你主機安裝的各種網卡,把本網給卸載了
然後在功能表項目上有個 操作->添加過時裝置,選擇手動安裝硬體,找到網卡驅動,把它裝上
ps:如果你還裝有一些其他的虛擬網卡(比如迅遊),要把它刪了,這些虛擬網卡會對虛擬機器選擇網卡時造成影響。
再去重啟虛擬機器,對了,虛擬機器如果不是完整版,只是綠色版的話,有可能也會沒有vmnet0的情況,所以你要保證你的虛擬機器版本沒問題。
四:vmnet0 的問題終於解決了,現在去把ubuntu的ip設為跟主機、開發板在一個網段,怎麼設定ip不用我說吧?[ifconfig eth0 192.168.1.4 netmask 255.255.255.0]
五:主機網路設定:設定的跟開發板、虛擬機器在同個網段就行了,與路由器的ip也要在一個網段(路由器的網關在機子的後面有寫,自己去看);
六:測試:現在,OK,應該可以ping通了,先在主機上ping下虛擬機器,應該可以ping通,如果沒通,就去檢查上面的步驟;
然後在開發板上ping主機和虛擬機器,如果能ping通的話就是這樣:
在這裡提醒一下,uboot相對於linux系統比較低級,它不支援被外界裝置(主機或虛擬機器)ping,但可以ping別人(主機或虛擬機器),所以如果你用主機ping開發板,肯定是ping不通的,但這並不妨礙開發板跟主機和虛擬機器通訊,不要傻傻的認為沒有ping通。
好了,如果ping通了的話,恭喜你問題解決了,接下來你可以用tftp下載核心到開發板上了【tftp 0x31000000 uImage】【bootm 0x31000000】.
本文僅作參考,有不對的地方歡迎指正!希望這篇文章對你有所協助!
還是那句話:多看,多問,多動手,驅動開發不用愁。
小瓶蓋還只是個新手,有問題,歡迎與小瓶蓋交流討論,開發路上不寂寞!
(史上最全)開發板ping不通主機和虛擬機器的看過來!