<div dir="ltr">榮樂様:<div><br></div><div>ご丁寧なご回答をありがとうございました。</div><div>頂いた情報を参考にまた進めていこうと思います。</div><div><br></div><div>また進展がありましたらご報告いたします。</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>----------------------------------------------------------------------</div><div>高 直我</div><div>国立豊田工業高等専門学校 情報科学専攻1年</div><div>〒473-0902</div><div>愛知県豊田市大林町11-2-7</div><div>電話番号:0565-29-0169</div><div>携帯番号:090-2937-8074</div><div>-----------------------------------------------------------------------</div></div></div></div>
<br><div class="gmail_quote">2017年10月26日 17:03 Hideki EIRAKU <span dir="ltr"><<a href="mailto:hdk@igel.co.jp" target="_blank">hdk@igel.co.jp</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">イーゲル 榮樂です。<br>
<br>
From: 高直我 <<a href="mailto:naoga.taka@gmail.com">naoga.taka@gmail.com</a>><br>
Subject: [BitVisor-devel:110] iMac上でBitVisorを動作させることについて<br>
Date: Tue, 17 Oct 2017 21:27:12 +0900<br>
<span class=""><br>
> 1つはMacOS(Sierra 10.12.6) 上でBitVisorを動作させたいと考えております。<wbr>BitVisor Advent Calendar<br>
> 2015の4日目に掲載されているMacでBitVisor<br>
><br>
> (<a href="https://qiita.com/hdk_2/items/6c73aac9df758dc896c1)" rel="noreferrer" target="_blank">https://qiita.com/hdk_2/<wbr>items/6c73aac9df758dc896c1)</a>という<wbr>ページを参考にして、EFIShellから<br>
> USBブートによってBitVisorを起動し、<wbr>MacOSを起動することはできました。<wbr>ですが起動後BitVisor、ゲストOS<br>
> 共にネットワークに繋がりません。<wbr>上記した参照ページに記載されている、<wbr>ネットワークドライバのアンロードは行っています。<br>
<br>
</span># BitVisor は OS の下で動くものです (^^)<br>
<br>
<a href="https://bitbucket.org/bitvisor/bitvisor" rel="noreferrer" target="_blank">https://bitbucket.org/<wbr>bitvisor/bitvisor</a> にある開発版をご利用であれば、<br>
アンロードに関しては、BitVisor が自動的に行うよう改良されています。(リ<br>
ビジョン bc2682729058, 2017-03-03)<br>
<br>
もし、macOS の起動開始前に BitVisor との通信ができないようでしたら、何<br>
か変です。Broadcom Gigabit Ethernet Driver のアンロードを手動でされた<br>
ようですので、<wbr>参照されているページにある起動方法による問題ではないと思<br>
いますが、今のところ、MacBook Air 等での Thunderbolt Ethernet アダプター<br>
を含め、Mac の Startup Manager 経由での起動で、BitVisor 起動後・OS 起<br>
動前に通信不可能という問題は見つかっていません。<br>
<span class=""><br>
> NICはBroadcom社のものを使っているため、<wbr>config.vmm.driver.pci="class_<wbr>code=020000,<br>
> id=14e4:1686, number=0, driver=bnx, net=ippass, virtio=1"と指定しています。またbitvisor<br>
> のipを192.168.1.235と静的に与えており、<wbr>BitVisorのIPが正常に割り当てられていることをdbg<wbr>shから確認しました。また、MacOS<br>
> 上でethernetカードがvirtioデバイスとして認識さ<wbr>れていることも確認しています。<wbr>ゲストOSに組み込んだvirtio-netモジュールは<br>
> GitHub上で公開されていたvirtio-net-osx(<a href="https://github.com/pmj/virtio-net-osx)%E3%82%92%E7%94%A8%E3%81%84%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99" rel="noreferrer" target="_blank"><wbr>https://github.com/pmj/virtio-<wbr>net-osx)を用いています</a>。<br>
<br>
</span>こちらで公開されているデバイスドライバーには署名がなされてい<wbr>ないようで<br>
すので、署名したものを用意するか、System Integrity Protecton を無効化<br>
しないと使用できないかと思いますが、システム情報の Ethernet カードの項<br>
目で、デバイスが認識されているのであれば、<wbr>大きな問題はないかと思います。<br>
ただし、Thunderbolt で使えないとか、インターフェイスの down/up 後に使<br>
えないとか、いくつかの細かい問題はあるようです。<br>
<br>
まずは、OS 起動開始前時点で通信ができないと、virtio-net を使用しても通<br>
信はできません。そこを直したうえで、macOS 起動後に BitVisor との通信が<br>
できなくなる場合や、BitVisor との通信はできるものの macOS 上での通信が<br>
できない場合というのも考えられます。iMac の内蔵の Ethernet デバイスに<br>
ついては影響のないものがほとんどですが、<wbr>開発版では修正済みです。macOS<br>
の前に、Linux を試してみるほうが簡単かも知れません。<br>
<br>
> 2つ目として、<wbr>私は研究でBitVisor1上のahciドライバにストレージ<wbr>IOの監視システムを組み込む、ということを行っています。<wbr>そしてそのシステムを<br>
> MacOS(バージョンは前述のとおりです)<wbr>で動作させたいと考えております。<wbr>そこでdefconfigにahciを捕捉するように記述をして<wbr>、EFIShell<br>
> からUSBブートの形でBitVisorを起動したあとにゲスト<wbr>OSを起動(/System/Libray/<wbr>CoreServices/boot.efiを実行)<br>
> しようとすると、/<wbr>System以下のディレクトリへアクセスできなくなってしまい<wbr>ます。ahciをパススルーさせると/<wbr>System以下のディレクトリへcd<br>
> でき、boot.efiを実行することでOSの起動ができます。<wbr>MacOSの環境下ではahciを捕捉できないのでしょうか。<br>
<br>
EFI 上でのディスクアクセスは一応動いたのではないかと思うのですが<wbr>、少し<br>
特殊な動きをします。UEFI の Ahci ドライバーの実装を見ていただくとわか<br>
るかと思いますが、<wbr>コマンド完了時にデバイスからホストに返されるデータを、<br>
メモリ上でポーリングして完了を待ちます。しかし、<wbr>BitVisor の ahci ドラ<br>
イバーは、AHCI コントローラーのレジスターがアクセスされたタイミングで<br>
完了チェックを行い、読み取りアクセス完了の場合は、<wbr>読み取られたデータの<br>
コピー (暗号化使用時は復号) を行います。ここで、BitVisor はデバイスか<br>
らホストに返されるデータの格納先アドレスを変更しないため、<wbr>実際には<br>
BitVisor より先に EFI 側の Ahci ドライバーが完了を検知します。しかし、<br>
読み取りコマンドの場合、<wbr>その時点ではまだバッファーにデータがコピーされ<br>
ていないことになります。その後、<wbr>ステータスか何かのレジスターがアクセス<br>
されたタイミングで、BitVisor は完了を確認し、コピーが行われます。<br>
<br>
他に、ひとつのコマンドで 4MiB (4194304 バイト) を超えるアクセスが行わ<br>
れると ASSERT (totalsize <= 4 * 1024 * 1024) に引っ掛かって落ちる、と<br>
いう問題がありますが、/System ディレクトリにアクセスできないだけで<br>
panic していないのであれば、これではなさそうです。<wbr>アクセスできないとい<br>
うのは、何かエラーが表示されるのでしょうか? もしかすると、EFI ファーム<br>
ウェアの挙動が以前のものとは変わっているのかも知れません。<br>
<br>
あるいは、暗号化設定を間違えていれてしまっていると、<wbr>データが化けてしまっ<br>
て動かないかと思いますが、記載していただいた defconfig を見る限り、<br>
storage の項目は書かれていないようですので、<wbr>そうであれば暗号化はされま<br>
せん。<br>
<br>
Fusion Drive は未確認です。また、Marvell SSD を搭載している MacBook<br>
Air では、以下の panic が発生する問題が見つかっています:<br>
<br>
  SATACR0 0x12 SATACR1 0x48 Revision error<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Hideki EIRAKU <<a href="mailto:hdk@igel.co.jp">hdk@igel.co.jp</a>><br>
______________________________<wbr>_________________<br>
BitVisor-devel mailing list<br>
<a href="mailto:BitVisor-devel@bitvisor.org">BitVisor-devel@bitvisor.org</a><br>
<a href="https://www.bitvisor.org/mailman/listinfo/bitvisor-devel" rel="noreferrer" target="_blank">https://www.bitvisor.org/<wbr>mailman/listinfo/bitvisor-<wbr>devel</a><br>
</font></span></blockquote></div><br></div>