linux内核驱动程序调试环境搭建-kgdb

1. redhat6 _x64 内核2.6.32

编译2.6内核,步骤如下:
make menuconfig
make
make modules_install
make install


(附:编译2.4内核,步骤如下:
make menuconfig
make dep
make bzimage
make modules
make modules_install
make install)

make install后出现以下信息,忽略。

sh /usr/src/linux-2.6.32/arch/x86/boot/install.sh 2.6.32 arch/x86/boot/bzImage \
       System.map "/boot"
ERROR: modinfo: could not find module xt_CHECKSUM
ERROR: modinfo: could not find module vmhgfs
ERROR: modinfo: could not find module nf_defrag_ipv6
ERROR: modinfo: could not find module vsock
ERROR: modinfo: could not find module vhost_net
ERROR: modinfo: could not find module macvtap
ERROR: modinfo: could not find module vmware_balloon
ERROR: modinfo: could not find module vmci


2.kgdb 需要两台计算机通过串口进行远程调试,两台计算机分别为:

  • Client(Development):开发机,也称客户机,将在该计算机上进行程序的开发,GDB将在本计算机上运行.用于输入命令控制Server(target)的运行.

  • Server(Target): 目标机,也称服务器,就是被调试的计算机,在Development机上开发好的内核模块程序将拷贝到Target上运行,其运行受到Development命令的控制.

关闭计算机,分别为两个系统增加一个串口,以"Output to named pipe"方式,其中:
  • Client端选择"this end is the client", "the other end is a virtual machine"

  • Server端选择"this end is the server", "the other end is a virtual machine"

  • 备注: 两个pipe的名称要相同,并且选中下面的Connect at power on,及Advanced里面的Yield CPU on poll

以后的部分,Server上的操作与Client上的操作将以不同的背景色显示,输入的命令将以不同的字体颜色并带下划线显示.请注意:

    Server(Target) 输入:cat /dev/ttyS0

   系统输出的信息: hello

   Client(Development) 输入:echo "hello" >/dev/ttuS0

   串口添加完成后,使用如果命令测试:

   在Server上cat /dev/ttyS0

   然后到Client上echo "hello" > /dev/ttyS0

   这时回到Server上,如果能看到输入的hello,说明串口通讯正常.

linux内核驱动程序调试环境搭建-kgdb,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。