[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 メーリングリストの案内