mac mojave安裝bochs 2.6.9問題解決
為什麼特定版本?
因為不同作業系統和不同軟體版本的庫和程式碼都有差異,你在這個系統上編譯通過,換個不同系統(mac,redhat,centOS,Fedora等)或同一系統的不同版本都有可能因為庫的差異編譯不了,或者你換個bochs版本因為原始碼不同也一樣可能編譯不過去。
所以以下解決的問題有方法在其它條件下是否有用那就不一定了。
首先我試過用brew安裝,但是keymap配置不起來。之前說的註釋掉什麼的都沒有用,註釋掉虛擬機器就起不來,一個白屏介面,修改多次也沒有用,所以打算編譯安裝試一下。
安裝SDL2,我是直接用brew安裝的。
然後手工補丁:
1.去修改cdrom_osx.cpp(低版本的叫cdrom_osx.cc),go 到194行,在strrchr(devpath, '/')前加 (char *),就是和else裡一樣。
2.複製 檔案
cp misc/bximage.cpp misc/bximage.cc
cp iodev/hdimage/hdimage.cpp iodev/hdimage/hdimage.cc
cp iodev/hdimage/vmware3.cpp iodev/hdimage/vmware3.cc
cp iodev/hdimage/vmware4.cpp iodev/hdimage/vmware4.cc
cp iodev/hdimage/vpc-img.cpp iodev/hdimage/vpc-img.cc
cp iodev/hdimage/vbox.cpp iodev/hdimage/vbox.cc
3.使用下面的選項,沒有科學性,就是去掉沒法編譯的選項保證能編譯過去。
./configure --with-sdl2 --enable-debugger --enable-disasm --enable-all-optimizations --enable-readline --enable-long-phy-address --enable-ltdl-install --enable-plugins --enable-a20-pin --enable-x86-64 --enable-smp --enable-cpu-level=6 --enable-large-ramfile --enable-repeat-speedups --enable-fast-function-calls --enable-handlers-chaining --enable-trace-linking --enable-configurable-msrs --enable-show-ips --enable-cpp --enable-debugger-gui --enable-iodebug --enable-logging --enable-assert-checks --enable-fpu --enable-vmx=2 --enable-svm --enable-3dnow --enable-alignment-check --enable-monitor-mwait --enable-avx --enable-evex --enable-x86-debugger --enable-pci --enable-usb --enable-voodoo --prefix=/opt/bochs
4.make
5.sudo make install
這樣基本能跑起來了。
配置檔案:
megs:32
romimage:file=/opt/bochs//share/bochs/BIOS-bochs-latest
vgaromimage:file=/opt/bochs/share/bochs/VGABIOS-lgpl-latest
floppya:1_44=boot.img,status=inserted
boot:floppy
log:bochsout.txt
mouse:enabled=0
keyboard:keymap=/opt/bochs/share/bochs/keymaps/sdl-pc-us.map