分类: LINUX
2012-08-27 21:44:39
这个系列的文章介绍如何使用KGDB调试linux kernel,本篇主要搭建基本的debug环境。使用kgdb调试kernel一般需要两台机器:一台host机器和一台target机器,使用串口或者网口将host机器和target机器连接起来,在host机器上执行GDB命令,target机器响应GDB命令,从而达到debug的目的。也就是说host是执行debug操作的机器,target机器是被debug的机器。 如下图所示:
因为这篇blog的出发点是方便在校学生学习如何debug linux kernel,因此在此host机器我用的是ubuntu 10.04, target机器用Virtual box。结构图如下所示
根据上图所示,我们需要如下软硬件环境:
1:需要一台安装了Linux操作系统的机器,该机器作为host机。我的机器是一台 ubuntu PC;
2:在host机器上安装Virtual Box软件;
3:在Virtual Box上安装一个Linux操作系统,我装的也是ubuntu 10.04,我们把虚拟机当做
target机器;
4:在host机器上安装socat程序,Socat程序用来建立虚拟串口连接;
5:Linux source code,我们需要编译一个包含了kgdb的新内核,然后替换到target机器上;
6:搭建一个NFS,方便在host机器和target机器共享文件;
配置host 机器
1, 安装VirtualBox OSE;
sudo apt-get install virtualbox-ose
2, 新建一个ubuntu虚拟机,并且在虚拟机上安装一个linux操作系统,本例中装的是
ubuntu10.04
3,设置虚拟机的串口,右键单击ubuntu虚拟机,选择“设置”选项,在设置选项卡中选择
“串口”,再选择“端口1“ 按照下图所示进行配置;
注:端口/文件位置只需要指定一个有效的地址即可,虚拟机启动的时候会在home目录下创建一个
serial0文件,你也可以指定自己喜欢的任意的路径;
4,安装socat
sudo apt-get install socat
5, 搭建NFS服务
基本的环境配置好以后,我们就可以开始抓kernel的源码,build包含KGDB的kernel,配置boot loader,然后就可以调试了,下一篇会将如何编译和替换linux kernel以及如何修改boot loader