web-dev-qa-db-ja.com

QEMUにネットワークインターフェイスがありません

ネットワークインターフェイスがゲストコンピューターに表示されません。

Linuxカーネル(3.3だと思います)をデフォルト設定で最初からコンパイルしています+

Symbol: NE2K_PCI [=y]
Type  : tristate
Prompt: PCI NE2000 and clones support (see help) 

これがqemuが使用するデフォルトのドライバーであることをどこかで読んだので。

次に、次のコマンドで起動します:qemu-system-x86_64 -kernel repo/linux/Arch/x86/boot/bzImage -boot d -initrd rootfs.img.gz -append "root=/dev/ram rdinit=/sbin/init"

qemu-system-x86_64 -nographic -kernel repo/linux/Arch/x86/boot/bzImage -boot d -initrd rootfs.img -append "root =/dev/ram rdinit =/sbin/init console = ttyS0"

Rootfsは単にbusyboxの_install dir +/proc/devなどなど/init.d/rcSです。

#!/bin/sh
mount -t proc none /proc
mount -t sysfs none /sys
/sbin/mdev -s

しかし、起動後にインターフェイスが見つかりません。 ifconfig -aは、単にループバックインターフェイスを示しています。

From http://www.tldp.org/HOWTO/Ethernet-HOWTO-2.htmlSystem.mapのような名前の?? ne_probeファイルを確認する必要があることを理解しました。しかし、それについては本当に何も見つかりません。

私のブート出力は次のとおりです: http://Pastebin.com/C2SmKjQA

そして、猫/ proc/ioportsは、予想どおり、ne2k-pciについて何も表示しません http://www.h7.dion.ne.jp/~qemu-win/HowToNetwork-en。 html

3
netigger

デフォルトでは、ドキュメントで説明されているように、ユーザーモードネットワークが必要です。

デフォルトでは、QEMUはSLiRPユーザーネットワークバックエンドとゲスト用の適切な仮想ネットワークデバイス(たとえば、ほとんどのx86 PCゲスト用のE1000 PCIカード)を作成します

より良いものが必要な場合は、tapネットワーキングを検討してください。

次のようなものをqemuコマンドに追加します。

-netdev tap,id=tap0 -device e1000,netdev=tap0

または、古いバージョンのqemuの場合:

-net nic -net tap,ifname=tap0,script=no,downscript=no

ルートとしてqemuを起動する必要があること、およびホストネットワークの構成が必要になる場合があることに注意してください。

詳細については、 Wikibooks および QEMU Networking docs を参照してください。

2
garethTheRed