$ sudo apt-get install bochs
2. 修改配置文件$ cp /etc/bochs-init/bochsrc ./
$ vi bochsrc
因為我是用Bochs來調試boot.s(操作系統啟動代碼),所以要用軟盤做啟動盤,所以我做如下改動:
floppya: 1_44=/dev/fd0, status=inserted
改成
floppya: 1_44=a.img, status=inserted
其中,a.img是我的軟盤鏡像文件。如何制作,我會在下一篇中介紹。
boot:c
改成
boot:a
a盤即軟盤啟動
ips:1000000
改成
cpu: count=1, ips=1000000
Message:ROM:System BIOS must end at 0xfffff
解決辦法:
修改配置文件
$ vi bochsrc
romimage: file=/usr/share/bochs/BIOS-bochs-latest, address=0xf0000
改成
romimage:file=/usr/share/bochs/BIOS-bochs-latest
原因:
在2.2.5以前的版本,Bochs的BIOS大小為64K,需要指定起始地址為0xf0000.之後的版本可支持512K的BIOS鏡像。現在默認用的BIOS-bochs-latest的好像是128K(官方說法),我看了一下是132K.反正不需要指定起始地址了。
00000000000i[PAR ] parallel port 1 at 0x0378 irq 7
00000000000p[PAR ]>>PANIC<< Could not open '/dev/lp0' to write parport1 output
========================================================================
Event type:PANIC
Device:[PAR ]
Message:Could not open '/dev/lp0' to write parport1 output
解決辦法:
編輯配置文件
parport1: enabled=1, file="/dev/lp0"
改成
parport1: enabled=1, file="parport.out"
或直接在行首加#注釋掉。這個是並口設備,一般給打印機用。修改後,會把發往並口的數據寫到parport.out裡。
啟動後程序進入死循環,鼠標鍵盤都無法響應
解決辦法:
按Ctrl+Alt+F1,啟動另一個tty,以root身份登錄,然後
#top
在列表中找到進程bochs-bin的PID,按k,輸入那個PID直,回車,再按q退出;
#exit
退出root,按Ctrl+Alt+F7(也可能是別的,挨個試)回到原來的用戶,此時Bochs已被關閉。
如果Ctrl+Alt+F1不好使,那就想別的方法(比如遠程)登錄到你的機器,執行相同的操作。
差不多就碰到這麼多問題。