内核调试一般比应用层程序调试困难很多,主要因为内核是系统开机后执行的第一个程序,这使得用于一般应用程序的调试方法无法使用在内核上。*软件社群开发了一些特殊方法解决这问题。 这些方法中最方便的方法莫过于 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