在嵌入式linux開發(fā)過程中,一般是在虛擬機(jī)中安裝Linux發(fā)行版操作系統(tǒng),然后在系統(tǒng)平臺上進(jìn)行開發(fā)。這時(shí)候會(huì)遇到虛擬機(jī)和目標(biāo)硬件平臺之間的網(wǎng)絡(luò)環(huán)境搭建之間的諸多問題。
很多時(shí)候,由于種種原因,筆記本電腦和目標(biāo)板卡之間無法通過路由器連接,本文描述一種網(wǎng)絡(luò)環(huán)境搭建方法:能保證虛擬機(jī)中的Linux系統(tǒng)和物理機(jī)都能上外網(wǎng),也能通過TFTP和NFS來進(jìn)行開發(fā)調(diào)試。
環(huán)境如下:
(1)筆記本電腦(Windows系統(tǒng))通過連接WiFi訪問外網(wǎng)。
(2)筆記本電腦通過網(wǎng)口連接目標(biāo)硬件板卡。
(3)虛擬軟件為VMware Workstation。版本:16.0.0
(4)Linux發(fā)行版系統(tǒng)為:Ubuntu 20.04
(5)網(wǎng)線一根。
首先,查看筆記本電腦的網(wǎng)絡(luò)適配器,這里小生的筆記本網(wǎng)絡(luò)適配器如下圖所示:
VMnet1和VMnet8:是安裝VMware Workstation軟件后,自動(dòng)安裝上的虛擬網(wǎng)卡。
Intel(R) Wi-Fi 6 AX201 160MHz:無線網(wǎng)卡。
Intel(R) Ethernet Connection (11) I219-V:以太網(wǎng)網(wǎng)卡。
從上圖中,無線網(wǎng)卡連接成功,且能正常訪問外網(wǎng),以太網(wǎng)網(wǎng)卡識別到網(wǎng)絡(luò)電腦被拔出。
然后使用網(wǎng)線將筆記本電腦和目標(biāo)硬件板卡連接起來。
接著在Windows中,用鼠標(biāo)右鍵單擊“以太網(wǎng)”,選擇“屬性”,然后選擇“Internet協(xié)議版本4(TCP/IPv4)”配置以太網(wǎng)的靜態(tài)IP地址如下圖所示:
然后點(diǎn)擊“確定”,將筆記本電腦的以太網(wǎng)IP地址配置成192.168.1.10。
完成后,在Windows命令行下使用ipconfig查看IP地址信息:
從上圖可知,以太網(wǎng)IP地址配置成功,無線WLAN的IP地址也都存在。
需要目標(biāo)板卡上電后,筆記本電腦的以太網(wǎng)才會(huì)連接成功,也才能查看到對應(yīng)的IP信息。
從上圖可知,小生的筆記本電腦的IP地址配置如下:
(1)以太網(wǎng)IP地址:192.168.1.10 ?(靜態(tài)配置)
(2)無線WLAN的IP地址:192.168.0.109 ?(動(dòng)態(tài)獲取)
上述內(nèi)容描述了筆記本電腦上的網(wǎng)絡(luò)配置,接下來將配置VMware Workstation虛擬網(wǎng)絡(luò)。首先打開“虛擬網(wǎng)絡(luò)編輯器”:
打開后,如下圖所示:
選擇“更改設(shè)置”后,將如下圖所示:
選中VMnet2,然后選擇“橋接模式”,并在下拉菜單中選擇Intel(R) Ethernet Connection (11) I219-V以太網(wǎng)網(wǎng)卡。通過這種方式就將VMnet2橋接到了以太網(wǎng),用于虛擬機(jī)Linux與目標(biāo)硬件平臺之間通過網(wǎng)絡(luò)通信。
為了保證虛擬機(jī)Linux能訪問外網(wǎng),還需要添加一個(gè)網(wǎng)絡(luò):選擇下圖所示的“添加網(wǎng)絡(luò)”選項(xiàng):
然后點(diǎn)擊“確定”,將創(chuàng)建一個(gè)名為VMnet0的網(wǎng)絡(luò),同樣選中“VMnet0”網(wǎng)絡(luò),選擇“橋接模式”,在下拉菜單中選擇Intel(R) Wi-Fi 6 AX201 160MHz無線網(wǎng)卡,這樣便將VMnet0橋接到Intel(R) Wi-Fi 6 AX201 160MHz無線網(wǎng)卡了。
最后,依次點(diǎn)擊“應(yīng)用”->“確定”。
通過上述步驟,已經(jīng)在VMware Workstation配置了兩個(gè)虛擬網(wǎng)絡(luò):VMnet0、VMnet2。在下文中,我們將他們添加到虛擬機(jī)Ubuntu中。
首先選中需要運(yùn)行的虛擬機(jī),右鍵單擊,選擇“設(shè)置”,然后選擇“網(wǎng)絡(luò)適配器”,選中“自定義”,在下拉菜單中選擇VMnet0:
這樣,便將VMnet0添加到虛擬機(jī)Ubuntu中了,這時(shí)候,我們還需要添加VMnet2,步驟如下:
選中“添加”,選擇“網(wǎng)絡(luò)適配器”,接著點(diǎn)擊“完成”,完成后如下圖所示:
我們?nèi)匀贿x擇“自定義”模式,選擇“VMnet2”,完成后,如下圖所示:
通過以上步驟,我們完成了筆記本電腦上的網(wǎng)絡(luò)配置和VMware Workstation的虛擬網(wǎng)絡(luò)配置,讓我們理一下思路:目前虛擬網(wǎng)絡(luò)VMnet0是橋接到了無線WLAN,虛擬網(wǎng)絡(luò)VMnet2是橋接到了以太網(wǎng)。
接下來,啟動(dòng)虛擬機(jī)Ubuntu,進(jìn)入系統(tǒng)后,打開網(wǎng)絡(luò)配置,這時(shí)候會(huì)看到兩個(gè)網(wǎng)絡(luò):ens33、ens38
因?yàn)閑ns33表示的是VMnet0,該虛擬網(wǎng)絡(luò)橋接到了無線WLAN,所以配置ens33時(shí)選擇自動(dòng)獲取IP地址:
因?yàn)閑ns38是用于虛擬機(jī)Ubuntu連接目標(biāo)硬件平臺的,故需要設(shè)置該網(wǎng)絡(luò)的IP地址與筆記本電腦的以太網(wǎng)IP地址在同一個(gè)網(wǎng)段內(nèi):筆記本以太網(wǎng)IP地址為192.168.1.10,故此處小生設(shè)置虛擬機(jī)Ubuntu的ens38網(wǎng)絡(luò)的IP地址為192.168.1.30,如下圖所示:
網(wǎng)絡(luò)配置完成后,在Ubuntu終端下,輸入以下命令:
?
sudo?/etc/init.d/network-manager?restart
?
重啟網(wǎng)絡(luò)。
然后在終端下輸入ifconfig,可以查看IP地址信息,小生此處顯示如下:
可見網(wǎng)絡(luò)配置成功!
接下來就是測試一下整個(gè)網(wǎng)絡(luò)配置是否通暢了:
(1)在虛擬機(jī)Ubuntu中,ping一下外網(wǎng),能正常ping通,證明外網(wǎng)訪問成功。
(2)目標(biāo)硬件板卡、虛擬機(jī)Ubuntu、筆記本電腦三者之間互ping IP地址,如果能正常ping通,則證明嵌入式Linux網(wǎng)絡(luò)開發(fā)環(huán)境搭建成功。
注意:如果ping不通,可能筆記本電腦禁止了專用網(wǎng)絡(luò)訪問,這時(shí)候需要關(guān)閉訪問墻或者設(shè)置網(wǎng)絡(luò)準(zhǔn)入原則。還必須確保目標(biāo)硬件板卡、虛擬機(jī)Ubuntu、筆記本電腦三者之間的IP地址在同一個(gè)網(wǎng)段。
總結(jié)
本文的目的是既要保證嵌入式Linux平臺的網(wǎng)絡(luò)環(huán)境正常工作,又要保證筆記本電腦(Windows)端、虛擬機(jī)Ubuntu都能正常訪問外網(wǎng)。
實(shí)現(xiàn)的核心思路是:使用VMware Workstation虛擬兩個(gè)網(wǎng)絡(luò)VMnet0、VMnet2,VMnet0橋接到無線WLAN,實(shí)現(xiàn)外網(wǎng)的訪問;VMnet2橋接到以太網(wǎng),用于虛擬機(jī)Ubuntu與目標(biāo)硬件板卡之間通過網(wǎng)線通信,便于嵌入式Linux平臺下的開發(fā)和調(diào)試。
審核編輯:劉清
評論
查看更多