Ubuntu环境下安装Bochs
首先說一下我的Ubuntu版本,敲命令
sudo lsb_release -a
就可以看到
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
所以,我的Ubuntu版本是14.04
也可以用
cat /etc/issue
查看版本號。
怎樣查看系統是32位還是64位呢?
用命令 uname -m
然后顯示:x86_64,這就說明是64位。
安裝:
1.去http://bochs.sourceforge.net/下載最新版本。
下文以bochs-2.4.5.tar.gz為例說明。
2.解壓下載的源代碼:
sudo tar zxvf bochs-2.4.5.tar.gz
3.進入bochs-2.4.5目錄,運行configure腳本:
sudo ./configure -enable-debugger -enable-disasm
(-enable-debugger和 -enable-disasm 表示開啟調試和反匯編功能)
4.第3步正確運行后,會產生一個Makefile文件,于是可以編譯:
sudo make
5.安裝:
sudo make install
至此,bochs安裝已經結束。
但是你也許不會成功。不要著急,下面是編譯安裝過程中可能出現的一些問題及解決方法:
【錯誤1】
error: C++ preprocessor “/lib/cpp” fails sanity check
因為Bochs是用C++寫的,所以這里要安裝GNU g++編譯器。
解決方法:
sudo apt-get install build-essential
sudo apt-get install g++
【錯誤2】
checking for default gui on this platform… x11
ERROR: X windows gui was selected, but X windows libraries were not found.
解決方法:
sudo apt-get install xorg-dev
【錯誤3】
ERROR: pkg-config was not found, or unable to access the gtk+-2.0 package.
解決方法:
sudo apt-get install libgtk2.0-dev
【錯誤4】
make的時候提示 /usr/bin/ld: gui/libgui.a(gtk_enh_dbg_osdep.o): undefined
reference to symbol pthread_create@@GLIBC_2.1 //
lib/i386-linux-gnu/libpthread.so.0: error adding symbols: DSO missing
from command line collect2: error: ld r
解決方法:
在makefile的“LIBS = ”這一行的最后面添加如下內容 :
-lz -lrt -lm -lpthread
于是變成了:
LIBS = -lm -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft 2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontcon fig -lgobject-2.0 -lglib-2.0 -lfreetype -lz -lrt -lm -lpthread
【2017-3-12,我在ubuntu 16.04上安裝bochs2.6.8,在make的時候出現了以下錯誤。羅列如下】
【錯誤5】
X11/Xlib.h: 沒有那個文件或目錄
解決方法:
sudo apt-get install libx11-dev
【錯誤6】
X11/extensions/Xrandr.h:沒有那個文件或目錄
sudo apt-get install libxrandr-dev
【錯誤7】
undefined reference to symbol ‘XSetForeground’
解決方法:
./configure –enable-debugger LDFLAGS=’-pthread’
如果沒有報錯,再次
sudo make
如果已經安裝成功,那么我們肯定迫不及待地想用起來。
怎么用呢?這里舉一個例子。
1.下載linux0.11的鏡像文件
下載地址是:
http://www.oldlinux.org/Linux.old/images/bootroot-0.11
2.寫一個簡單的Bochs配置文件
#注意'#'后面為注內容megs:128 #模擬器的內存 romimage:file=/usr/local/share/bochs/BIOS-bochs-latest #這個是BIOS-bochs-latest的路徑,自己慢慢找,不一定和我的一樣vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest #這個是VGABIOS-lgpl-latest的路徑,自己慢慢找floppya:1_44=bootroot-0.11,status=inserted #這個是啟動軟盤,就是我們下載的那個,就在當前目錄下,如果不在當前目錄,需要指明路徑 boot:floppy #表示從軟盤啟動log:bochsout.txt #日志輸出文件#選項還有很多,想了解更多可以參照原始的.bochsrc(在bochs-2.4.5/目錄下)=================小貼士==============
romimage:file=/usr/local/share/bochs/BIOS-bochs-latest
vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest
以上這兩行的路徑如何找?
一個方法是:點擊左側的文件圖標,再點擊計算機,再點擊搜索。
在搜索欄輸入“bochs”,如下圖
找到BIOS-bochs-latest, 右鍵查看屬性,即可找到位置。一般情況下,VGABIOS-lgpl-latest 也在這個路徑下.
另外,floppya:1_44=bootroot-0.11,一定要注意bootroot-0.11的路徑。
請確認bootroot-0.11在你運行bochs的當前路徑下。
舉例來說,如果你是在/home/Tom/Downloads/路徑下啟動的bochs,那么bootroot-0.11一定要在/home/Tom/Downloads/路徑下。
否則會出現如下提示:
還有一點要說明,在配置文件中不要出現~(表示家目錄),假如用戶名是Tom, 那么請用/home/Tom代替~。否則也會出現上面的提示。
——2017-3-12 補充=========================================
假設我們保存為bochs_cfg.txt
3.啟動Bochs
我們敲命令:
bochs -f bochs_cfg.txt
(-f 選項表示指定配置文件)
然后我們就看到:
輸入6,回車
然后看到:
咦?怎么是一片漆黑呢?
注意到了嗎?屏幕底端顯示:
[0xfffffff0] f000:fff0 (unk. ctxt): jmp far f000:e05b
處理器在加電啟動時,CS=0xF000; IP=0xFFF0,也就是說地址線的低20位是0xFFFF0,且其他地址線被強制為高電平,所以方括號中的地址就是0xfffffff0,此處是一條跳轉指令jmp far f000:e05b ,這個地址指向了ROM-BIOS.
此時,Bochs停了下來,在等我們的調試命令。
我們輸入c(表示continue),回車
注意看Bochs的窗口,可以看到Linux-0.11啟動了!最后的畫面是:
哈哈,是不是很驚喜?!
今天的學習就到這里,下回見:)
總結
以上是生活随笔為你收集整理的Ubuntu环境下安装Bochs的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: stm32 输入捕获学习(二)
- 下一篇: 低配,比又穷又忙更可怕