33947


buildrootで生成したlinuxをqemuで実行したところ、ホスト-ゲスト間のネットワークが疎通しません。  
ホスト環境は、ubuntu 16.04 LTS。 qemuは、ubuntuのパッケージをそのまま使用しており

[code]

        qemu-system-arm -version
        QEMU emulator version 2.5.0 (Debian 1:2.5+dfsg-5ubuntu10.10), Copyright (c) 2003-2008 Fabrice Bellard
    
[/code]

です。  
qemuの起動は、以下のコマンドで起動しています。

[code]

        sudo qemu-system-arm -machine vexpress-a9 -smp cores=4 -kernel output/images/zImage \
         -drive file=output/images/rootfs.ext2,if=sd,format=raw -append "root=/dev/mmcblk0 rw console=ttyAMA0" \
         -dtb output/images/vexpress-v2p-ca9.dtb -m 512 -serial mon:stdio -nographic \
         -net nic -netdev tap,id=guest0,ifname=tap0
    
[/code]

起動後、ホストOSの別ターミナルで

[code]

        $sudo ifconfig tap0 inet 192.168.0.1
    
[/code]

とし、ゲストOSで

[code]

        #ifconfig eth0 inet 192.168.0.2
    
[/code]

としてます。  
ここで、ゲストOSから

[code]

        #ping 192.168.0.1
    
[/code]

としても、応答が帰ってきません。

気になる点として、qemuの起動時に

> Warning: vlan 0 is not connected to host network  
>  Warning: netdev tap0 has no peer

というwarningがでます。

ゲストOSのNICがホストOSのtap0につながっていると考えているのですが、  
なにか根本的に勘違いしているのでしょうか？

ホスト-ゲスト間のネットワークを疎通させるにはどうすればいいのでしょうか？


CC BY-SA 3.0
2017-04-12T02:14:29.070
33939
2017-04-12T08:36:25.703
7844
question
linux
qemuでホスト-ゲスト間のネットワークが疎通しない


自己回答です。  
qemu-system-arm のオプション`-net nic`を`-net nic,netdev=guest0`とすることで解決しました。


CC BY-SA 3.0
2017-04-12T08:36:25.703
33947
2017-04-12T08:36:25.703
7844
33939
answer