KDB是针对官方版本的linux内核代码,所以无法使用Ubuntu自带的linux内核版本,需从官网上下载。
1、从ftp://oss.sgi.com/www/projects/kdb/download上下载对应内核代码版本的KDB补丁,
如linux内核2.6.18版本,需下载kdb-v4.4-2.6.18-common-1.bz2和kdb-v4.4-2.6.18-i386-1.bz这2个文件。
2、问价下载完后,存放到/usr/src目录下,使用bzip2工具解压:
$sudo bzip2 -d kdb-v4.4-2.6.18-common-1.bz2
$sudo bzip2 -d kdb-v4.4-2.6.18-i386-1.bz
3、进入/usr/src/linux目录,该目录存放了2.6.18的内核代码。使用patch工具对内核代码打补丁:
$ patch -p1 < ../kdb-v4.4-2.6.18-common-1.bz2
$ patch -p1< ../kdb-v4.4-2.6.18-i386-1.bz
如果没有提示出错,这表示成功。
4、编译内核
更新ubuntu的内核编译软件包:
$sudo apt-get install kernel-package
$sudo apt-get install libncurses5-dev
$sudo apt-get install fakeroot
$sudo apt-get install wget
之后使用make oldconfig导入到前版本的内核配置。导入配置之后,使用make menuconfig进入内核配置界面,进入Kernel hacking 菜单,打开Built-in Kernel Debugger support,然后打开KDB off by default和KDB modules两个选项,保存退出。
接下来编译并安装内核:
$sudo make
$sudo make modules_install
$sudo make install
安装完后,会在GRUB的启动菜单添加一项2.6.18版本的内核启动菜单。
从新启动机器,选择从2.6.18版本内核启动。
启动后通过/proc文件系统打开KDB:
$sudo echo "1" > /proc/sys/kernel/kdb
回车后如果没有任何提示,表示打开KDB成功。
按下Pause/Break键,会进入KDB的调试界面。
退出界面时,输入go然后回车即可。