內核調試一般比應用層程序調試困難很多,主要因爲內核是系統開機後執行的第一個程序,這使得用於一般應用程序的調試方法無法使用在內核上。自由軟件社羣開發了一些特殊方法解決這問題。 這些方法中最方便的方法莫過於 KGDB 的使用。KGDB 是個一特殊的內核輔助工具,除了在內核代碼中加入了一些調試代碼外也提供一個 gdbstub 用於和遠程 gdb 調試程序聯機用。以前,這樣一個使用遠程 gdb 調試內核的開發需要在一般linux內核上打 KGDB 補丁(patches)同時編譯時使用特殊編譯設置來完成。 可喜的是,至 linux-2.6.xx(xx多少記不清了)後的版本內核已經正式將 kgdb 加入爲主流核心發佈的一部份。換句話說,內核開發者幾乎不需花任何額外的功夫就可使用 kgdb。 此外,kgdb 成爲主流內核發行一部份也代表他的穩定性及實用性受到社羣的肯定。
由於kgdb的方便易用,大大提高了linux平臺下驅動開發者的效率。本文以及後面一系列文章從最基本的開始詳細描述瞭如何搭建一個linux驅動調試環境。如何加載模塊開始調試內核模塊,如何調試模塊的初始化函數。
kvm系統的前端是qemu-kvm,工作在用戶空間,給用戶提供一套方便的kvm虛擬化工具集合。下面來介紹一下qemu-kvm-0.11.0的編譯過程。
1、下載
wget http://sourceforge.net/projects/kvm/files/qemu-kvm/0.11.0/qemu-kvm-0.11.0.tar.gz/download
mv download qemu-kvm-0.11.0.tar.gz
tar -xzvf qemu-kvm-0.11.0.tar.gz
2、安裝其他庫
sudo apt-get install libpci-dev
sudo apt-get install libsdl1.2-dev
3、編譯安裝qemu
cd qemu-kvm-0.11.0
./configure
make
sudo make install
4、將qemu添加到環境變量
進入目錄 /usr/local/bin
爲 qemu-system-x86_64創建符號鏈接:
$ sudo ln -s qemu-system-x86_64 qem
打開/etc/profile文件在末尾添加
PATH="$PATH:/usr/local/bin"
export PATH
使環境變量生效,在終端輸入:
source /etc/profile
另外打開一個終端輸入qemu可見可以正常啓動。
但是發現這時提示找不到kvm。
Ubuntu10.10系統有自帶的kvm內核模塊。
打開文件/etc/modules
在其中加入想要加載的模塊名
kvm
kvm-amd
這樣在再次重啓的時候會自動加載模塊 kvm kvm-amd
注意不要加擴展名 .ko
文章出處:http://blog.csdn.net/xsckernel/article/details/8159548