阅读:5872回复:12
[原创]如何在vmware上搭建环境调试内核
如何在vmware上搭建环境调试内核
author: cyliu 一 安装linux虚拟机 1 在vmware上安装新的linux虚拟机.创建一个新的虚拟机,并一定要用IDE硬盘 2 从Internet下载源代码 1、linux-2.6.18(www.kernel.org -ftp站点) 2、kgdb-2.6.18 patch 3、gdbmod-2.4(可选):调试module使用此gdb 3 编译内核 a、将kgdb-2.6.18补丁打到Linux内核源码里。注意按照顺序打patch,因为此版本的patch是散的,需要手动一个一个添加,共12个文件。 b、编译内核(make clean , make mrproper, make menuconfig, make, make modules , make modules_install, make install) 在内核配置菜单的Kernel hacking选项中选择kgdb调试项,例如: [*] KGDB: kernel debugging with remote gdb [*] KGDB: Console messages through gdb Method for KGDB communication (KGDB: On generic serial port (8250)) ---> < > KGDB: On ethernet [*] Simple selection of KGDB serial port (115200) Debug serial port baud rate (0) Serial port number for KGDB 在device drivers选择项中选择kgdb相关项,例如 Character devices--> KGDB: On generic serial port(8250) c、安装gdbmod-2.4 4 修改grub.conf 例如: title Fedora Core (2.6.16) root (hd0,0) kernel /vmlinuz-2.6.16 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.16.img 改为: title Fedora Core (2.6.18) root (hd0,0) kernel /vmlinuz-2.6.18 ro root=/dev/VolGroup00/LogVol00 kgdb8250=0,115200 (kgdbwait) initrd /initrd-2.6.18.img 5 请检验新编译的内核是否可用。如果不能启动,可能是编译选项没有选好。如果没有问题,关闭这个linux虚拟机,进入下一步。 二 Clone linux虚拟机(请参考vmware手册) 1 Clone linux.在vmware上选择刚安装的linux虚拟机,然后vmware的clone方式。建议选择链接copy. 2 两台虚拟机:一台作target机,一台作develop机。 3 配置两台虚拟机串行通信 a、在每个虚拟机中分别添加一个串口设备,并配置成命名管道 \\.\pipe\com_1 b、指定target虚拟机的串口为server端,并选择"The other end is a virtual machine"属性,对于IO mode属性,选中"Yield CPU on poll"复选择框; c、指定develop虚拟机的串口为client端,并选择"The other end is a virtual machine"属性。 4 注意:这里的delelop的Linux虚拟机不要使用打了kgdb patch的linux系统,否则无法配置串行口。因为kgdb占用了ttyS0口,禁止使用。我这里使用的是2.6.16内核的系统。 三 调试内核(以调试网络功能为例) 1、启动target虚拟机 2、在develop虚拟机的linux-2.6.18源代码目录下,执行下面的命令: gdb ./vmlinux (gdb) set remotebaud 115200 (gdb) target remote /dev/ttyS0 (gdb) break ip_rcv (gdb) c 3、给target 虚拟机发数据包(如ping) 4、现在就像调试应用程序那样调试内核了。 |
|
|
沙发#
发布于:2007-05-29 16:51
作了一些修改,主要是调试内核变为2.6.18,同时给出一些注意事项.
|
|
|
板凳#
发布于:2007-06-27 17:02
kgdb-2.6.18网站上有,但不是打包的,分散的。需要一个个按照顺序Pack,顺序不能错,否则内核编译不过。
|
|
|
地板#
发布于:2007-07-04 22:36
|
|
|