[BitVisor-devel:110] iMac上でBitVisorを動作させることについて

高直我 naoga.taka @ gmail.com
2017年 10月 17日 (火) 21:27:12 JST


豊田工業高等専門学校情報科学専攻1年の高直我と申します。

現在、BitVisorを用いたシステムの開発を行っております。



お聞きしたいことが2点ございます。



1つはMacOS(Sierra 10.12.6) 上でBitVisorを動作させたいと考えております。BitVisor Advent Calendar
2015の4日目に掲載されているMacでBitVisor

(https://qiita.com/hdk_2/items/6c73aac9df758dc896c1)というページを参考にして、EFIShellから
USBブートによってBitVisorを起動し、MacOSを起動することはできました。ですが起動後BitVisor、ゲストOS
共にネットワークに繋がりません。上記した参照ページに記載されている、ネットワークドライバのアンロードは行っています。

NICはBroadcom社のものを使っているため、config.vmm.driver.pci="class_code=020000,
id=14e4:1686, number=0, driver=bnx, net=ippass, virtio=1"と指定しています。またbitvisor
のipを192.168.1.235と静的に与えており、BitVisorのIPが正常に割り当てられていることをdbgshから確認しました。また、MacOS
上でethernetカードがvirtioデバイスとして認識されていることも確認しています。ゲストOSに組み込んだvirtio-netモジュールは
GitHub上で公開されていたvirtio-net-osx(https://github.com/pmj/virtio-net-osx)を用いています。



2つ目として、私は研究でBitVisor1上のahciドライバにストレージIOの監視システムを組み込む、ということを行っています。そしてそのシステムを
MacOS(バージョンは前述のとおりです)で動作させたいと考えております。そこでdefconfigにahciを捕捉するように記述をして、EFIShell
からUSBブートの形でBitVisorを起動したあとにゲストOSを起動(/System/Libray/CoreServices/boot.efiを実行)
しようとすると、/System以下のディレクトリへアクセスできなくなってしまいます。ahciをパススルーさせると/System以下のディレクトリへcd
でき、boot.efiを実行することでOSの起動ができます。MacOSの環境下ではahciを捕捉できないのでしょうか。



よろしくお願いします。以下に環境やスペック等を記載しておきます。



iMac:2015年製、MK142J/A

BitVisor:2017年夏ごろのものを使用









・defconfig

struct config_data config = {

                 .vmm = {

                                  .f11panic = 1,

                                  .f12msg = 1,

                                  .auto_reboot = 1,

                                  .panic_reboot = 0,

                                  .shell = 1,

                                  .dbgsh = 1,

                                  .no_intr_intercept = 0,

                                  .ignore_tsc_invariant = 0,

                                  .unsafe_nested_virtualization = 0,

                                  (中略)

                         //.pci = "device=bnx, number=0, driver=bnx,
net=ippass, virtio=1, and, device=ahci, number=0, driver=ahci"

                                  .pci = "class_code=020000, id=14e4:1686,
number=0, driver=bnx, net=ippass, virtio=1"

                                  (中略)

                                  },



                 },

            .ip = {

                         .use_dhcp = 0,

                                  .ipaddr = {192, 168, 1, 235},

                                  .netmask = {255, 255, 255, 0},

                                  .gateway = {192, 168, 1, 1},

            },

};



・.config

CONFIG_64=1#64bit VMM

CONFIG_DEBUG_GDB=0#gdb remote debug support (32bit only)

CONFIG_TTY_SERIAL=0#VMM uses a serial port (COM1) for output

CONFIG_TTY_X540=1#VMM output to LAN

CONFIG_CPU_MMU_SPT_1=0#Shadow type 1 (very slow and stable)

CONFIG_CPU_MMU_SPT_2=0#Shadow type 2 (faster and unstable)

CONFIG_CPU_MMU_SPT_3=1#Shadow type 3 (faster and unstable)

CONFIG_CPU_MMU_SPT_DISABLE=0#Disable SPT (fast, insecure and no MMIO)

CONFIG_CPU_MMU_SPT_USE_PAE=1#Shadow page table uses PAE

CONFIG_PS2KBD_F11PANIC=0#Panic when F11 is pressed (PS/2 only)

CONFIG_PS2KBD_F12MSG=1#Print when F12 is pressed (PS/2 only)

CONFIG_DBGSH=1#Debug shell access from guest

CONFIG_STATUS=0#Provide VMM status for guest

CONFIG_LOG_TO_GUEST=0#Log to guest memory

CONFIG_LOG_TO_IEEE1394=1#Log to IEEE 1394 host

CONFIG_ATA_DRIVER=1#Enable ATA driver

CONFIG_STORAGE=1#Enable storage encryption

CONFIG_CRYPTO=1#Crypto library

CONFIG_VPN=1#Enable IPsec VPN Client

CONFIG_USB_DRIVER=1#Enable USB driver

CONFIG_SHADOW_UHCI=1#Shadow UHCI(USB1) transfers

CONFIG_SHADOW_EHCI=1#Shadow EHCI(USB2) transfers

CONFIG_HANDLE_USBMSC=1#Handle USB mass storage class devices

CONFIG_HANDLE_USBHUB=1#Handle USB hub class devices

CONFIG_CONCEAL_USBCCID=1#Conceal USB ccid class device

CONFIG_PS2KBD_F10USB=0#Run a test for USB ICCD when F10 pressed

CONFIG_PS2KBD_F12USB=0#Dump EHCI async. list when F12 pressed

CONFIG_IEEE1394_CONCEALER=1#Conceal OHCI IEEE 1394 host controllers

CONFIG_ACPI_DSDT=1#Parse ACPI DSDT

CONFIG_DISABLE_SLEEP=0#Disable ACPI S2 and S3

CONFIG_ENABLE_ASSERT=1#Enable checking assertion failure

CONFIG_DEBUG_ATA=0#Enable debugging ATA driver

CONFIG_SELECT_AES_GLADMAN=0#Select Dr. Gladmans AES assembler code

CONFIG_CARDSTATUS=1#Panic if an IC card is ejected (IDMAN)

CONFIG_IDMAN=1#IDMAN (CRYPTO must be enabled)

CONFIG_NET_DRIVER=1#Enable NIC drivers

CONFIG_NET_PRO100=1#Intel PRO/100 driver

CONFIG_NET_PRO1000=1#Intel PRO/1000 driver

CONFIG_NET_RTL8169=0#Realtek RTL8169 driver

CONFIG_NET_BNX=1#Broadcom NetXtreme GbE driver

CONFIG_NET_VIRTIO_NET=1#Enable virtio-net for PRO1000/BNX

CONFIG_VPN_VE=0#Enable ve (Virtual Ethernet) driver

CONFIG_VTD_TRANS=0#Enable VT-d translation

CONFIG_STORAGE_PD=0#Storage encrypting in protection domain

CONFIG_IDMAN_PD=0#IDMan in protection domain

CONFIG_VPN_PD=0#VPN in protection domain

CONFIG_DISABLE_TCG_BIOS=0#Disable TCG BIOS (TPM related)

CONFIG_ACPI_TIME_SOURCE=1#Use ACPI PM Timer as time source

CONFIG_TCG_BIOS=1#TCG BIOS support

CONFIG_BACKTRACE=0#Enable backtrace in panic

CONFIG_VGA_INTEL_DRIVER=0#Enable vga_intel driver

CONFIG_TTY_VGA=0#VMM output using VGA driver

CONFIG_SHIFT_KEY_DEBUG=0#Debug shell with shift key while booting

CONFIG_DUMP_PCI_DEV_LIST=1#Dump list of PCI devices

CONFIG_IP=1#Enable TCP/IP stack

CONFIG_PCI_MONITOR=1#PCI I/O monitor driver
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://www.bitvisor.org/archives/bitvisor-devel/attachments/20171017/461f5888/attachment-0001.html>


BitVisor-devel メーリングリストの案内