[BitVisor-devel:72] Re: Bitvisor上でのlwIPの使い方について
Hideki EIRAKU
hdk @ igel.co.jp
2015年 12月 9日 (水) 17:01:18 JST
海野様
榮樂です。こんにちは。
From: umino tomoki <t.umino.nit @ gmail.com>
Subject: [BitVisor-devel:71] Re: Bitvisor上でのlwIPの使い方について
Date: Wed, 9 Dec 2015 14:17:02 +0900
> bitvisorの設定ファイルは、bitvisor.confとdefconfigの2つがありますが
> vmm.driver.pciの設定は2つのファイルで共有されている必要があるのでしょうか?
boot/login または boot/login-simple をお使いの場合は bitvisor.conf の
設定のみが有効になります。defconfig は boot/login または
boot/login-simple を使わない場合のデフォルト設定になります。
> そこで、bitvisor.confにも同じ設定(””を入れたままだと、文法エラーがでたので、""を外しました)を追加したところ、
> 起動時のログから、IPアドレスが割り振られているところは確認できましたが、
> ゲストOSの起動後にクラッシュしてしまいました。
> その際に出力されたメッセージが以下のものです。
> panic(CPU0): Assertion failed!(h < NUM_OF_RDESC) function receive_physnic
> file drivers/net/pro1000.c line 999
ゲスト OS の起動中に BitVisor からデバイスが見えなくなって、レジスター
の値が 0xFFFFFFFF になってしまい、このようなエラーが出たことがあります。
ネットワークデバイスが接続されている PCI Express のブリッジをゲスト OS
が触ると、このようなエラーになることがあるようです。
net=ip の場合、ゲスト OS からネットワークデバイスが見えない状態になる
ようにできていますが、それが悪さをしているかも知れません。以下のいずれ
かを試してみてください。
1. net=ip ではなく net=ippass にする
この設定ではゲスト OS からもネットワークが使える状態となり、ゲスト
OS のネットワーク初期化後に lwIP が使える状態になります。ただし、ゲ
スト OS と BitVisor の両方で DHCP によるアドレス割り当てを使用する
とおそらくトラブルの元になるので設定に気をつけてください。ゲスト OS
でネットワークのインターフェイスの使用を停止すると BitVisor の通信
もできなくなります。
2. net=ip のままで virtio=1 を追加する (net=ip,tty=1,virtio=1)
Bitbucket にある最新版 BitVisor にはゲスト OS に virtio-net デバイ
スとして見せる機能が入っています。これを使うと BitVisor 起動直後か
ら lwIP が使えます。また、ゲスト OS に virtio-net デバイスドライバー
がインストールされていれば、ゲスト OS もネットワークデバイスを検出
しますが、net=ip としてあればゲスト OS は何も通信できない状態となり
ますので、DHCP の設定のままでも問題ありません。
3. ネットワークデバイスが接続されているブリッジを特定して隠蔽する
lspci -tv コマンドなどを用いてネットワークデバイスが接続されている
ブリッジを特定し、根元のブリッジを隠蔽する設定を追加します。そうす
るとゲスト OS がブリッジを触ることがなくなりますので、ゲスト OS か
らネットワークデバイスが見えない状態でも、トラブルが起きなくなりま
す。
例えば 00:1c.4 のブリッジを隠蔽する場合は以下のようになります。
vmm.driver.pci=slot=00:1c.4, driver=conceal, and, slot=02:06.0, driver=pro1000, net=ip, tty=1
--
Hideki EIRAKU <hdk @ igel.co.jp>
BitVisor-devel メーリングリストの案内