用Qemu類比vexpress-a9 --- 配置 qemu 的網路功能

來源:互聯網
上載者:User

標籤:

轉載:http://wiki.sylixos.com/index.php/Linux%E7%8E%AF%E5%A2%83%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97

 

環境介紹:

Win7 64 + Vmware 11 + ubuntu12.04 32

u-boot 版本:u-boot-2015-04

Linux kernel版本:linux-3.16.y

busybox版本:1_24_stable

交叉編譯工具鏈:arm-linux-gnueabi-

 

qemu 支援多種網路連結方式,其中最常用的就是橋接(bridge)。 這需要依賴核心的 tun/tap 模組的支援。
  • 輸入如下命令安裝必要的工具包:
sudo apt-get install uml-utilitiessudo apt-get install bridge-utils
  • 輸入如下命令查看 /dev/net/tun 檔案:
ls -l /dev/net/tun crw-rw-rwT 1 root root 10, 200 Apr 15 02:23 /dev/net/tun
如果該檔案存在,這表明核心已經支援開啟了 tun 支援,在 ubuntu-12.04 中,這個功能預設已經開啟。
如果該檔案不存在,則需要載入 tun 模組,並建立 /dev/net/tun 檔案。
  • 修改 /etc/network/interfaces 檔案,筆者的檔案內容如下所示(樣本檔案位於 /home/user/sylixos_workspace/qemu-mini2440/ubuntu-12.04 目錄):
# This file describes the network interfaces available on your system# and how to activate them. For more information, see interfaces(5).# The loopback network interfaceauto loiface lo inet loopback# The primary network interfaceauto eth0#NetworkManager#iface eth0 inet dhcp
# 經過實驗發現,由於我用的是虛擬機器,添加了三塊虛擬網卡eth0對應的是NAT串連方式,eth2對應的是橋接方式,如果
# 將虛擬機器的VMnet8和VMnet1禁止掉的話,eth2就不能工作,此時下面如果是bridge_ports eth2的話,qemu就無法連網了
# 但是發現eth0讓然可用,所以這裡設定了bridge_ports eth0.auto br0iface br0 inet dhcp bridge_ports eth0
  • 添加 /etc/qemu-ifup 和 /etc/qemu-ifdown 指令碼。
預設情況下,當 qemu 使用 tap 裝置時,會執行 /etc/qemu-ifup 和 /etc/qemu-ifdown 這兩個指令碼。
我們需要建立這兩個指令碼,然後為它們加上可執行許可權(使用chmod +x)。
建立 /etc/qemu-ifup 指令碼,內容如下所示(樣本檔案位於 /home/user/sylixos_workspace/qemu-mini2440/ubuntu-12.04 目錄):
#!/bin/shecho sudo tunctl -u $(id -un) -t $1sudo tunctl -u $(id -un) -t $1echo sudo ifconfig $1 0.0.0.0 promisc upsudo ifconfig $1 0.0.0.0 promisc upecho sudo brctl addif br0 $1sudo brctl addif br0 $1echo brctl showbrctl showsudo ifconfig br0 192.168.11.20  
建立 /etc/qemu-ifdown 指令碼,內容如下所示(樣本檔案位於 /home/user/sylixos_workspace/qemu-mini2440/ubuntu-12.04 目錄):
#!/bin/shecho sudo brctl delif br0 $1sudo brctl delif br0 $1echo sudo tunctl -d $1sudo tunctl -d $1 echo brctl showbrctl show
輸入如下命令為 /etc/qemu-ifup 和 /etc/qemu-ifdown 指令碼加上可執行許可權:
chmod +x /etc/qemu-ifupchmod +x /etc/qemu-ifdown
  • 最後需要重啟電腦,使新的 /etc/network/interfaces 設定檔生效。

 

  運行測試:

./qemu-system-arm ......  -net nic,vlan=0 -net tap,vlan=0,ifname=tap0
如果出現如下資訊:
warning: could not configure /dev/net/tun: no virtual network emulationCould not initialize device ‘tap‘
那麼先手動執行如下命令:
/etc/qemu-ifup tap0
注意:不可使用 sudo 執行上一條命令,每次啟動 ubuntu 後都需要手動執行一次上一條命令。

用Qemu類比vexpress-a9 --- 配置 qemu 的網路功能

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.