⑴ 怎麼用gdb和bochs調試內核
gdbstub可以使得Bochs程序在本地1234網路埠偵聽接收gdb的命令,並且向gdb發送命令執行結果。從而我們可以利用gdb對linux 0.11內核進行C語言級的調試。當然,Linux 0.11內核也需要進行使用-g選項重新編譯。
14.13.1 編譯帶gdbstub的Bochs系統{.j,
Bochs用戶手冊中介紹了自行編譯Bochs系統的方法。這里我們給出編譯帶gdbstub的Bochs系統的方法和步驟。首先從下面網站下載最新Bochs系統源代碼(例如:bochs-2.2.tar.gz):U
使用tar對軟體包解壓後會在當前目錄中生成一個bochs-2.2子目錄。進入該子目錄後帶選項「--enable-gdb-stub」運行配置程序configure,然後運行make和make install即可,見如下所示:
[root@plinux bochs-2.2]# ./configure --enable-gdb-stubI0B%
checking build system type... i686-pc-linux-gnu7.tY.
checking host system type... i686-pc-linux-gnuQ
checking target system type... i686-pc-linux-gnu{
...©OldLinux論壇 -- 有關早期Linux內核代碼發展的論壇。M
[root@plinux bochs-2.2]# makeQ
[root@plinux bochs-2.2]# make installN?
©OldLinux論壇 -- 有關早期Linux內核代碼發展的論壇。ufVz
若在運行./configure時我們碰到一些問題而不能生成編譯使用的Makefile文件,那麼這通常是由於沒有安裝X window開發環境軟體或相關庫文件造成的。此時我們就必須先安裝這些必要的軟體。>1z<z
14.13.2 編譯帶調試信息的Linux 0.11內核"jmg
通過把Bochs的模擬運行環境與gdb符號調試工具聯系起來,我們既可以使用Linux 0.11系統下編譯的帶調試信息的內核模塊來調試,也可以使用在RedHat 9環境下編譯的0.11內核模塊來調試。這兩種環境下都需要對0.11內核源代碼目錄中所有Makefile文件進行修改,即在其中編譯標志行上添加-g標志,並去掉鏈接標志行上的-s選項:2
LDFLAGS = -M -x // 去掉 -s 標志。XJFU)Y
CFLAGS =-Wall -O -g -fomit-frame-pointer / // 添加 -g 標志。iMN
進入內核源代碼目錄後,利用find命令我們可以找到以下所有需要修改的Makefile文件:_6
[root@plinux linux-0.11]# find ./ -name MakefileSn^
./fs/Makefile-
./kernel/Makefile/"`p%
./kernel/chr_drv/Makefile(pyM
./kernel/math/MakefileV
./kernel/blk_drv/Makefiles/CDu
./lib/Makefile[x~
./Makefile980
./mm/Makefile/zb
[root@plinux linux-0.11]#S9/Q
另外,由於此時編譯出的內核代碼模塊中含有調試信息,因此system模塊大小可能會超過寫入內核代碼映像文件的默認最大值SYSSIZE = 0x3000(定義在boot/bootsect.s文件第6行)。我們可以按以下方法修改源代碼根目錄中的Makefile文件中產生Image文件的規則,即把內核代碼模塊system中的符號信息去掉後再寫入Image文件中,而原始帶符號信息的system模塊保留用作gdb調試器使用。注意,目標的實現命令需要以一個製表符(TAB)作為一行的開始。pP
Image: boot/bootsect boot/setup tools/system tools/build)=1
cp -f tools/system system.tmp=-&a
strip system.tmphQ6n0S
tools/build boot/bootsect boot/setup system.tmp $(ROOT_DEV) $(SWAP_DEV) > ImageA-)
rm -f system.tmpY3w[/@
sync9=P2n
©OldLinux論壇 -- 有關早期Linux內核代碼發展的論壇。KuEo
當然,我們也可以把boot/bootsect.s和tools/build.c中的SYSSIZE值修改成0x8000來處理這種情況。a?g4
14.13.3 調試方法和步驟;M]3!
下面我們根據在現代Linux系統(例如RedHat 9)系統上和運行在Bochs中Linux 0.11系統上編譯出的內核代碼分別來說明調試方法和步驟。
1 調試現代Linux系統上編譯出的Linux 0.11內核?E
假設我們的Linux 0.11內核源代碼根目錄是linux-rh9-gdb/,則我們首先在該目錄中按照上面方法修改所有Makefile文件,然後在linux-rh9-gdb/目錄下創建一個bochs運行配置文件並下載一個配套使用的根文件系統映像文件。我們可以直接從網站下載已經設置好的如下軟體包來做實驗:
使用命令「tar zxvf linux-gdb-rh9-050619.tar.gz」解開這個軟體包後,可以看到其中包含以下幾個文件和目錄:MX{-
©OldLinux論壇 -- 有關早期Linux內核代碼發展的論壇。X
[root@plinux linux-gdb-rh9]# ll'*5tfq
total 1600bJT~Q
-rw-r--r-- 1 root root 18055 Jun 18 15:07 bochsrc-fd1-gdb.bxrcf%J2s
drwxr-xr-x 10 root root 4096 Jun 18 22:55 linux[dM&
-rw-r--r-- 1 root root 1474560 Jun 18 20:21 rootimage-0.11-for-orig8EIChk
-rwxr-xr-x 1 root root 35 Jun 18 16:54 run{gj
[root@plinux linux--gdb-rh9]#t|f
這里的bochs配置文件與其他Linux 0.11配置文件的主要區別是在文件頭部添加有以下一行內容,表示當bochs使用這個配置文件運行時將在本地網路埠1234上偵聽gdb調試器的命令:NhL
gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0J,i/6
運行這個實驗的基本步驟如下:@EkQ
(1).啟動X window系統後打開兩個終端窗口;(mPN
(2).在一個窗口中,把工作目錄切換進linux-gdb-rh9/目錄中,並運行程序「./run」,此時該窗口中會顯示一條等待gdb來連接的信息:「Wait for gdb connection on localhost:1234」,並且系統會創建一個Bochs主窗口(此時無內容);1P=VI<
(3).在另一個窗口中,我們把工作目錄切換到內核源代碼目錄中linux-gdb-rh9/linux/,並運行命令:「gdb tools/system」;iDqm8
(4).在運行gdb的窗口中鍵入命令「break main」和「target remote localhost:1234」,此時gdb會顯示已經連接到Bochs的信息;p
(5).在gdb環境中再執行命令「cont」,稍過一會gdb會顯示程序停止在init/main.c的main()函數處。v3L2
下面是運行gdb和在其中執行的一些命令示例。[2;jS
[root@plinux linux]# gdb tools/system hI/
GNU gdb Red Hat Linux (5.3post-0.20021129.18rh)!mC}
Copyright 2003 Free Software Foundation, Inc.|3
GDB is free software, covered by the GNU General Public License, and you areC$NY4
welcome to change it and/or distribute copies of it under certain conditions.boNdAL
Type "show ing" to see the conditions.3[nfHW
There is absolutely no warranty for GDB. Type "show warranty" for details.'1-V
This GDB was configured as "i386-redhat-linux-gnu"...Oq&*[
(gdb) break main }<;
Breakpoint 1 at 0x6621: file init/main.c, line 110.+%!.]{
(gdb) target remote localhost:12342 .yc
Remote debugging using localhost:1234X6X&7
0x0000fff0 in sys_mkdir (pathname=0x0, mode=0) at namei.c:481(
481 namei.c: No such file or directory.5QU
in namei.c&%P'
(gdb) cont Pv'/S$
Continuing.P:O_{
Breakpoint 1, main () at init/main.c:110 *
110 ROOT_DEV = ORIG_ROOT_DEV;T7PkpD
(gdb) list 5XT
105 { /* The startup routine assumes (well, ...) this */2L$
106 /*_c
107 * Interrupts are still disabled. Do necessary setups, then)Z0k
108 * enable themjZ@+wn
109 */u
110 ROOT_DEV = ORIG_ROOT_DEV;d&!*`
111 drive_info = DRIVE_INFO;#yRW,
112 memory_end = (1<<20) + (EXT_MEM_K<<10);9Uaw
113 memory_end &= 0xfffff000;`v8fAR
114 if (memory_end > 16*1024*1024)lA#
(gdb) next DH.zM
111 drive_info = DRIVE_INFO;X
(gdb) next ?+S:q
112 memory_end = (1<<20) + (EXT_MEM_K<<10);iXdDt
(gdb) print /x ROOT_DEV <W<
$3 = 0x21d }{%Q
(gdb) quit |
The program is running. Exit anyway? (y or n) yt
[root@plinux linux]#lixBs
=====================================================
14.1 利用bochs調試內核%UU
Bochs具有非常強大的操作系統內核調試功能。這也是本文選擇Bochs作為首選實驗環境的主要原因之一。有關Bochs調試功能的說明參見前面14.2節,這里基於Linux 0.11內核來說明Windows環境下Bochs系統調試操作的基本方法。m[2
14.1.1 運行Bochs調試程序.g8O
我們假設Bochs系統已被安裝在目錄「C:/Program Files/Bochs-2.1.1/」中,並且Linux 0.11系統的Bochs配置文件名稱是bochsrc-hd.bxrc。現在在包含內核Image文件的目錄下建立一個簡單的批處理文件run.bat,其內容如下:R
"C:/Program Files/Bochs-2.1.1/bochsdbg" -q -f bochsrc-hd.bxrcjFypV+
其中bochsdbg是Bochs系統的調試執行程序。運行該批處理命令即可進入調試環境。此時Bochs的主顯示窗口空白,而控制窗口將顯示以下類似內容:D8v~
C:/Documents and Settings/john1/桌面/Linux-0.11>"C:/Program Files/Bochs-2.1.1/boRW6RNY
chsdbg" -q -f bochsrc-hd.bxrc2
========================================================================`)2?os
Bochs x86 Emulator 2.1.13$O@R
February 08, 2004x2
========================================================================/26c3(
00000000000i[ ] reading configuration from bochsrc-hd.bxrcq4
00000000000i[ ] installing win32 mole as the Bochs GUI4UW
00000000000i[ ] Warning: no rc file specified.1dsv
00000000000i[ ] using log file bochsout.txtmM
Next at t=0*
(0) context not implemented because BX_HAVE_HASH_MAP=0c
[0x000ffff0] f000:fff0 (unk. ctxt): jmp f000:e05b ; ea5be000f0g$
<bochs:1>i/
此時Bochs調試系統已經准備好開始運行,CPU執行指針已指向ROM BIOS中地址0x000fffff0處的指令處。其中'<bochs:1>'是命令輸入提示符,其中的數字表示當前的命令序列號。在命令提示符'<bochs:1>'後面鍵入'help'命令,可以列出調試系統的基本命令。若要了解某個命令的具體使用方法,可以鍵入'help'命令並且後面跟隨一個用單引號括住的具體命令,例如:「help 'vbreak'」,如下面所示。V7
<bochs:1> help@n{L(
help - show list of debugger commands5&6^
help 'command'- show short command description~B
-*- Debugger control -*-e!/;l
help, q|quit|exit, set, instrument, show, trace-on, trace-off,u7J
record, playback, load-symbols, slistr2:
-*- Execution control -*-pOHjE
c|cont, s|step|stepi, p|n|next, modebpj
-*- Breakpoint management -*-|EQ
v|vbreak, lb|lbreak, pb|pbreak|b|break, sb, sba, blist,dL/rBI
bpe, bpd, d|del|deleteyR%|
-*- CPU and memory contents -*-xsMy
x, xp, u|disas|disassemble, r|reg|registers, setpmem, crc, info, mp_cpu,@|'p
set_cpu, ptime, print-stack, watch, unwatch, ?|calc7
<bochs:2> help 'vbreak'_t*<#o
help vbreak/?
vbreak seg:off - set a virtual address instruction breakpoint0
<bochs:3>flx+
為了讓Bochs直接模擬執行到Linux的引導啟動程序開始處,我們可以先使用斷點命令在0x7c00處設置一個斷點,然後讓系統連續運行到0x7c00處停下來。執行的命令序列如下:.Xfk
<bochs:3> vbreak 0x0000:0x7c00hDzuWy
<bochs:4> cfMH/'X
(0) Breakpoint 1, 0x7c00 (0x0:0x7c00))W&
Next at t=4409138<-0m5
(0) [0x00007c00] 0000:7c00 (unk. ctxt): mov ax, 0x7c0 ; b8c007b 03*
<bochs:5>3R28Q
此時,CPU執行到boot.s程序開始處的第1條指令處,Bochs主窗口將顯示出「Boot From floppy...」等一些信息。現在,我們可以利用單步執行命令's'或'n'(不跟蹤進入子程序)來跟蹤調試程序了。在調試時可以使用Bochs的斷點設置命令、反匯編命令、信息顯示命令等來輔助我們的調試操作。下面是一些常用命令的示例:J'P
<bochs:8> u /10 # 反匯編從當前地址開始的10條指令。,S/2
00007c00: ( ): mov ax, 0x7c0 ; b8c007Wvl
00007c03: ( ): mov ds, ax ; 8ed8)1f*
00007c05: ( ): mov ax, 0x9000 ; b80090WmD1
00007c08: ( ): mov es, ax ; 8ec0(`|
00007c0a: ( ): mov cx, 0x100 ; b90001iW1|1
00007c0d: ( ): sub si, si ; 29f6ze_QZY
00007c0f: ( ): sub di, di ; 29ffZStl
00007c11: ( ): rep movs word ptr [di], word ptr [si] ; f3a5=yF
00007c13: ( ): jmp 9000:0018 ; ea18000090!s?PR9
00007c18: ( ): mov ax, cs ; 8cc8(
<bochs:9> info r # 查看當前CPU寄存器的內容aM>/D
eax 0xaa55 436057a@`_
ecx 0x110001 1114113/$3$K"
edx 0x0 00j3G?
ebx 0x0 0gE
esp 0xfffe 0xfffee7{
ebp 0x0 0x0]*lX
esi 0x0 0m
edi 0xffe4 65508TD}Zo
eip 0x7c00 0x7c00e
eflags 0x282 642Wlg
cs 0x0 0b s=]
ss 0x0 0=Z'
ds 0x0 02R;%
es 0x0 0!
fs 0x0 0BX/
gs 0x0 0D*)}n{
⑵ Ubuntu bochs源碼安裝時出現: make: *** 沒有指明目標並且找不到 makefile。 停止。
用ubuntu中的ubuntu軟體安裝中心安裝的bochs不帶調試功能,所以我們要用源碼安裝bochs.
從http://sourceforge.net/projects/bochs/files/ 下載bochs-2.4.5.tar.gz
然後
tar vxzf bochs-2.4.5.tar.gz
cd bochs-2.4.5
./configure --enable-debugger --enable-disasm
make
sudo make install
結果出錯,解決的辦法是:
問題1:
checking for C compiler default output file name… configure: error: C compiler cannot create executables
解決辦法:
[thornbird@thornbird bochs-2.4]$ sudo apt-get install libc6-dev
問題2:
...
checking how to run the C++ preprocessor... /lib/cpp
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details.
解決方法:
[thornbird@thornbird bochs-2.4]$ sudo apt-get install build-essential
問題3:
[thornbird@thornbird bochs-2.4]$ make
make: *** 沒有指明目標並且找不到 makefile.停止。
解決方法:
[thornbird@thornbird bochs-2.4]$ sudo apt-get install build-essential
問題4:
...
checking for wxWidgets library version...
checking for default gui on this platform... x11
ERROR: X windows gui was selected, but X windows libraries were not found.
解決方法: 配置的時候加上"--with-nogui "
或者改成:[thornbird@thornbird bochs-2.4]$sudo apt-get install xorg-dev (建議)
問題5:
Package gtk+-2.0 was not found in the pkg-config search path.Perhaps you should add the directory containing `gtk+-2.0.pc'to the PKG_CONFIG_PATH environment variableNo package 'gtk+-2.0' foundERROR: pkg-config was not found, or unable to access the gtk+-2.0 package.Install pkg-config and the gtk+ development package,or disable the gui debugger, or the wxWidgets display library (whichever is being used).
解決方法:
[thornbird@thornbird bochs-2.4]$sudo apt-get install libgtk2.0-dev
問題6:
install: 無法獲取"./bochsdbg" 的文件狀態(stat): 沒有該文件或目錄
解決辦法:需要在make後,將bochs拷貝一份,命名為bochsdbg
[thornbird@thornbird bochs-2.4]$ cp bochs bochsdbg
⑶ bochs配置文件中的bochsre.txt中的megs是什麼意思
首先要明白我們為什麼要配置Bochs——配置的目的是什麼。原因很簡單,因為Bochs能夠模擬多種硬體平台,所以它需要知道你想模擬一個什麼樣的平台。
配置的方法:配置的方法有2種(應該是,我沒有仔細考證)1.運行Bochs後會自動讓你選擇進行配置;2.通過配置文件配置。第一種方法我覺得比較麻煩,沒有仔細研究,我選擇的是第二種通過配置文件配置的方法。
Bochs為我們提供了一個配置文件的模版,這個模版為bochsrc-sample.txt,可以在 bochs的安裝目錄中找到。稍微看一下,你就會知道:在配置文件中」#」為注釋符號,表明後面#後面的全部是注釋的內容(類似於C / C++ 中的行注釋「//」)
⑷ ubuntu12.04.5怎樣才算安裝好了bochs
安裝介質:U盤:使用linuxliveusbcreator軟體將U盤打造成安裝「光碟」1常用工具與系統安裝(1)刪除Unity工具,用回Gnomesudoapt-getinstallgnome-sessioin-fallback注銷重新登陸(2)在官網下載deb包或在軟體中心安裝Dropbox,Mendely,Truecrypt,Calibre管理電子書,Chrome,workrave,GIMP(3)安裝谷歌拼音輸入法sudoapt-getinstallibus-googlepinyin重新啟動輸入法生效(4)安裝vim:sudoapt-getinstallvim(5)通過Ubuntu的軟體中心安裝CherryTree(亦可直接到相應的官網下載對應的deb文件)說明,CherryTree在Windows下的數據文件在Ubuntu下無法打開,推測在兩個平台上使用的sqlite引擎不同(6)pdf閱讀整理標注除了mendeley自帶工具外,還可安裝Okular(7)增加對RAR壓縮文件的支持sudoapt-getinstallp7zip-rar說明,使用sudoapt-getinstallrar可能會遇到「無效的編碼「這一問題,原因在於該rar文件中的編碼與ubuntu的不同,推薦使用p7zip-rar(8)Libreoffice亂碼sudoapt-getinstallgnome-tweak-tool在系統工具->首選項->高級設置,defaultfont:默認的是ubuntu,換一個中文字體,然後就可以看到libreoffice的菜單已經不是亂碼了.如果你想調整好看的英文字體,則libreoffice的菜單很可能又成了亂碼徹底的解決方法是,在libreoffice的菜單---工具---選項,對話框左邊點"視圖",右邊有一項"將系統字體用於用戶界面",默認是打勾的,去掉這個勾,字體問題圓滿解決(9)PDF中文顯示亂碼的解決方案sudoapt-getinstallxpdfpoppler-data刪除/etc/fonts/conf.d/49-sansserif.conf文件(保險起見可以備份之,如下)sudomv/etc/fonts/conf.d/49-sansserif.conf/etc/fonts/conf.d/49-sansserif.conf.backup郵件thunderbird新建163郵箱時測試可能不成功,但不影響使用,使用「SSL/TLS+普通密碼」可正常收發郵件(10)詞典GoldenDict,使用星際譯王提供的詞典(11)chm文件閱讀sudoapt-getinstallchmsee,完美支持中文目錄書簽等(12)選做:安裝indicatorofubuntuone•sudoadd-apt-repositoryppa:rye/ubuntuone-extras•sudoapt-getupdate•sudoapt-getinstallindicator-ubuntuone=============================================2Texlive安裝$sudomount-oloop-tiso9660/home/likuan/textlive.iso/media/iso安裝perl-tk包,以便使用圖形界面進行安裝。sudoapt-getinstallperl-tksudo./install-tl–gui之後出現圖形界面。之後的操作就比較簡單了注意選擇最後一項「「,讓安裝程序自動創建語法鏈接。確定安裝,等待……配置環境變數。sudogedit/etc/bash.bashrc在此文件末尾添加PATH=/usr/local/texlive/2011/bin/i386-linux:$PATH;exportPATHMANPATH=/usr/local/texlive/2011/texmf/doc/man:$MANPATH;exportMANPATHINFOPATH=/usr/local/texlive/2011/texmf/doc/info:$INFOPATH;exportINFOPATH重啟或注銷後生效安裝Texworks,有兩種方式:(1)sudoapt-getinstalltexworks--without-recommends必須跟後面的參數,否則會和已經安裝好的texlive沖突(2)編譯安裝,在texworks官網上下載源代碼包step1解壓縮到特定文件夾step2安裝必要的編譯環境sudoapt-getinstallbuild-essentialsubversionlibpoppler-qt4-devlibhunspell-devlibdbus-1-devstep3qmake+make關於Qt的說明,此處使用的是系統自帶的QT4.8.1,未使用自行編譯的4.8.2(需要暫時從$HOME/.profile里吧QT_DIR相關變數刪除)至此,英文環境的tex編譯工具搭建完畢,測試一切正常。安裝中文環境安裝texlive的時,ctex和xecjk都會預裝安裝中文字體,在/usr/share/fonts/下新建一個目錄(假定/texfonts.)四款Adobe字體AdobeSongStd,AdobeHeitiStd,AdobeKaitiStd,AdobeFangsongStd六套win字體建立tex字體緩沖cd/usr/share/fonts/texfonts/-cache-fv至此,中文字體安裝完畢。fc-list:lang=zh-cn查看是否安裝成功。中文字體YouYuanKaiTi_GB2312SimSunSimHeiFangSong_GB2312並根據fc-list:lang=zh-cn查看到的fonts編輯ctex-xecjk-winfonts.defsudogedit/usr/local/texlive/2011/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def將其中字體名稱不一致部分修改掉%ctex-xecjk-winfonts.def:Windows的xeCJK字體設置,默認為六種中易字體%vim:ft=tex\setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi_GB2312}]{SimSun}\setCJKsansfont{SimHei}\setCJKmonofont{FangSong_GB2312}\setCJKfamilyfont{zhsong}{SimSun}\setCJKfamilyfont{zhhei}{SimHei}\setCJKfamilyfont{zhkai}{KaiT_GB2312}\setCJKfamilyfont{zhfs}{FangSong_GB2312}%\setCJKfamilyfont{zhli}{LiSu}%\setCJKfamilyfont{zhyou}{YouYuan}\newcommand*{\songti}{\CJKfamily{zhsong}}%宋體\newcommand*{\heiti}{\CJKfamily{zhhei}}%黑體\newcommand*{\kaishu}{\CJKfamily{zhkai}}%楷書\newcommand*{\fangsong}{\CJKfamily{zhfs}}%仿宋%\newcommand*{\lishu}{\CJKfamily{zhli}}%隸書%\newcommand*{\youyuan}{\CJKfamily{zhyou}}%幼圓\endinput注意按照fc-list中的名字來,不要有.ttf.ttc,也不要有[]按照同樣的方式修改/usr/local/texlive/2011/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def一定要使用xelatex進行編譯測試\documentclass[UTF8]{ctexart}\begin{document}\kaishu{中國}\heiti{中國}\songti{中國}\fangsong{中國}\end{document}如在輸出PDF時使用墨色更為均勻的Adobe中文字體,在使用ctexart類前要加上[adobefonts]選項測試:打開並復制其中的中文文字,沒有問題=============================================3開發環境安裝(1)安裝codeblocks(軟體中心),確保gcc/g++/gdb等組件(buildessentials)正確安裝(2)安裝UML工具Umbrellosudoapt-getinstallumbrello使用gitg管理代碼sudoapt-getinstallgitg(3)安裝QTUbuntu12.04中自帶Qt4.8.1及python2.7.3自己編譯Qt步驟如下:Step1下載對應的源碼包,解壓縮Step2執行./configure,選擇開源協議說明configure處可不指定參數,也可制定諸如靜態編譯,只編譯某些組件等等,現在暫時使用默認選項,隨著了解的深入再看其他在./configure階段出錯!原因就在於需要安裝libX11的開發包sudoapt-getinstalllibX11-devlibxext-devStep3執行make命令sudomakeinstall將編譯出來的東西安裝到/usr/local/Trolltech/Qt-4.8.2/下如果想更換目錄,可以在configure時使用參數-prefix,如/configure-prefix/usr/local/Qt-4.8.2Step4設置環境變數可以在home/用戶/.profile中增加QTDIR=/usr/local/Trolltech/Qt-4.8.2/(根據實際路徑修改)PATH=$QTDIR/bin:$PATHMANPATH=$QTDIR/man:$MANPATHLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATHexportQTDIRPATHMANPATHLD_LIBRARY_PATH測試到/usr/local/Trolltech/Qt-4.8.2/目錄下,輸入./qmake或雙擊designer等(4)安裝OpenCV第一種方式:apt-getUbuntu12.04providesapackageofOpenCV2.3.:sudoapt-getinstalllibopencv-dev第二種方式:編譯源碼Essentialssudoapt-getinstallbuild-essentialcheckinstallcmakepkg-configyasmImageIOsudoapt-getinstalllibtiff4-devlibjpeg-devlibjasper-devVideoI//encoding/.sudoapt-getinstalllibavcodec-devlibavformat-devlibswscale-devlibdc1394-22-devlibxine-devlibgstreamer0.10-devlibgstreamer-plugins-base0.10-devlibv4l-.sudoapt-getinstallpython-devpython-numpyOtherthird-.sudoapt-getinstalllibtbb-devGUIThedefaultback-endforhighguiinLinuxisGTK.n(seenextsection).sudoapt-getinstalllibqt4-devlibgtk2.0-devGetaofthesourcecodehere,:tar-xvfOpenCV-2.4.0.tar.bz2cdOpenCV-2.4.0/..ThisiswhatIuse:cmake-DWITH_QT=ON-DWITH_XINE=ON-DWITH_OPENGL=ON-DWITH_TBB=ON-DBUILD_EXAMPLES=ON..Notice,thatbyaddingthe-DWITH_QT=ON,..,lookattheCMakeLists.txtfile.,youcanstartcompiling:,youcaninstallbysaying:sudomakeinstallFinally,-/etc/ld.so.conf:/usr/local/-timebindings:OpenCVtestutilities.=============================================4影音播放(1)如果需要bt下載,使用qBittorrent,速度要比默認的TransmissionBittorrent快(2)播放電影使用smplayer(自帶的totem有時會卡)sudoapt-getinstallsmplayer(3)攝像頭問題,使用web 聊天時不啟動,懷疑是驅動問題,通過安裝cheese程序試著解決sudoapt-getinstallcheese(4)根據需要選做:安裝常見的解碼器。命令:sudoapt-getinstallnon-free-codecslibxine1-ffmpeggxinemencodertotem--script-audio--progs=============================================5其他(1)撥號連接sudopppoeconf根據提供的帳號和密碼進行設置如果是無線+撥號方式的話,不要選擇在系統啟動時自動連接ADSL手動連接命令:sudopondsl-providerADSL手動斷開:sudopoffdsl-provider查看日誌:plog(2)Ubuntu下軟鍵盤onboard(3)$sudoapt-getinstallnautilus-open-terminal這樣便會在每個文件夾的右鍵菜單中出現"在終端中打開"的一個選項,選擇便會打開一個終端,路徑為當前文件夾(4)重啟X服務命令(Ubuntu和別的linux發行版不同)rightalt+printscreen+k(5)ctl+alt+F1/F7切換偽終端,會出現中文亂碼,可使用LANG=C來切換(不具備記憶性,每次都要運行)(6)使用gedit打開文件,如果文件編碼是gb2312或者gbk,中文可能就會是顯示為亂碼。解決:使用gedit的打開菜單,選擇文件的同時選擇編碼(7)播放器(如totem)字幕亂碼時,可以在選項中設定編碼,將unicode設置為gbk=============================================6最後,根據需要,可對不用的功能進行清理Ubuntu軟體中心刪除即可,如游戲,thundermail,empathy聊天等
⑸ debian 源碼安裝 bochs
$dpkg-source -x bochs_2.4.5-1.dsc
$ cd bochs_2.4.5-1
$ fakeroot dpkg-buildpackage
編譯完成後,在源代碼的上級目錄會生成deb擴展名的包
#dpkg -i bochs*.deb
⑹ 如何編譯bochs源碼
bochs-2.62版本進行編譯安裝.
安裝前准備:安裝build-essential,主要是gcc/g++編譯器.
安裝gtk庫:libgtk2.0-dev
需要注意的是,如果make中出錯了,然後再安裝了一些庫後,必須全部重新執行,不能僅僅重新make。
a.解壓源代碼
b.執行如下命令,建議寫成shell腳本,便於修改.注意,此處並沒有指定安裝位置,不修改安裝位置則程序會安裝到默認路徑下.
./configure --with-x11 --with-wx --enable-debugger --enable-disasm --enable-all-optimizations --enable-readline --enable-long-phy-address --enable-debugger-gui
c.make
d.sudo make install
⑺ bochs這是怎麼回事
我不是這樣弄的,這是我的方法:Bochs源代碼:
適用於Bochs的WindowsXP系統鏡像
下載地址:
開始之前
你若嘗試過早期版本的Bochs,你可能還記得,那個時候的Bochs並沒有用戶界面,如果你想順利地在Bochs上運行Windows,則必須修改兩個配置文件:bochsout.txt和bochsrc.txt,並將其和Windows系統鏡像一起放置於手機內部存儲(或存儲卡)根目錄的SDL文件夾下。而現在,新版的Bochs已經有了圖形界面,你將可以在Bochs里更加直觀地配置硬體和修改參數。
開始安裝
首先,將apk格式的Bochs安裝包和img格式的Windows系統鏡像傳送到你的手機,放置於任何目錄下均可,前提是你可以找到它們。
安裝Bochs並打開它,你將看到硬體和參數的配置界面,
將ata0-master前面的復選框選中,然後點擊select;
選擇img格式的系統鏡像文件,答主這里的是Windows.img;
其他項無需更改;
點擊頂部的HARDWARE選項卡,按照以下設置方法完成設置:
CPUModel無需更改;
Chipset選擇i440fx;
內存的大小視你的手機的實際硬體配置而定,答主的手機內存為2GB,故在此項,答主將內存設置為517MB;
VGACard設置為cirrus_5446;
SoundCard設置為sb16;
EthernetCard設置為rtl8029;
PCI設置中,Slot1設置為cirrus,Slot2設置為ne2k,Slot3設置為es1370,Slot4設置為voodoo,Slot5設置為none。
設置完成後結果如下:
點擊頂部的MISC選項卡,
將Fullscreen前面的復選框選中以使Windows可以全屏運行;
點擊右上角綠色的Start按鈕以啟動Windows。