在Ubuntu下使用QEMU連網

目錄

目的

準備工作

ifconfig查看信息

添加tap虛擬網卡

修改qemu.sh

橋接

運行qemu


目的

在ubuntu下運行QEMU,並進行連網。

準備工作

首先要在ubuntu下下載rtt源碼,並使用 qemu-vexpress-a9 BSP。根據官方文檔 https://www.rt-thread.org/document/site/application-note/setup/qemu/ubuntu/an0005-qemu-ubuntu/  將QEMU運行起來。如下所示。

但是此時的qume不能上網。在qemu中 ping 不通

ifconfig(獲取到的 IP 地址時 10.0.x.x 說明沒有添加啓動參數,詳見下面的 修改qemu.sh 添加參數) 

我們通過添加一個虛擬網卡,並將網卡橋接到 PC 上進行上網。以下是詳細的步驟。

ifconfig查看信息

顯示或配置網絡設備(網絡接口卡)。(ens33,172.16.85.128)

添加tap虛擬網卡

添加虛擬網卡有好幾種方法【詳見 https://blog.csdn.net/White_Idiot/article/details/82934338】,這裏我們添加tap虛擬網卡。

添加虛擬網卡TAP,首先請先加載 tun 模塊:modprobe tun

安裝 uml-utilities:

 使用 tunctl 添加虛擬網卡: sudo tunctl -b,該命令會生成一個TAP,後綴會從0開始遞增(如tap0、tap1):

激活創建的TAP:sudo ip link set tap0 up ,之後就可以使用 ifconfig 命令查看 tap網卡的信息了。使用ifconfig後,會發現比之前多了一個tap0網卡。

修改qemu.sh

在qemu.sh文件中追加參數 -net nic -net tap,ifname=tap0 ,後保存qemu.sh文件。

  • net nic 這個是必須的參數,表明這是一個網卡的配置

  • -net tap 使用tap模式

  • ifname=tap0 tap網卡名tap0

橋接

新建網橋 br0,將tap0網卡橋接到PC的網卡(ens33,172.16.85.128)上:

  1. 獲取橋接工具:sudo apt install bridge-utils
  2. 生成網橋 br0 :sudo brctl addbr br0
  3. 將 ens33 加入網橋【brctl addif <bridge> <device>    add interface to bridge】:sudo brctl addif br0 ens33
  4. 將 ens33 的 ip 信息配置到br0中:sudo ifconfig br0 172.16.85.128
  5. 如果是dhcp則使用:sudo dhclient br0
  6. 將tap0加入到br0中【brctl addif <bridge> <device>    add interface to bridge】:sudo brctl addif br0 tap0

運行qemu

執行 sudo ./qemu.sh 運行 QEMU

可以ping通,ifconfig也有ip信息了。

 

 

 

 

 

 

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