一、环境

ubuntu 14.04

一台有串口的PC(编号PC1,被调试机器)

另一台PC通过USB转串口线连接PC1(编号PC2,发起调试命令的机器)

二、串口线配置及测试

安装cutecom

USB转串口连上PC2,并和PC1相连

PC1和PC2使用sudo cutecom将串口软件打开

PC1上使用/dev/ttyUSB0 PC2上使用/dev/ttyS0 相同波特率115200

测试:PC1发送数据,PC2能够正常接收并回显。

三、编译并安装内核

在PC2中编译,编译好之后将生成的*header*.deb和*image*.deb放在PC1并安装。

sudo make menuconfig

使用串口线真机调试Linux内核-LMLPHP

sudo make-kpkg --initrd --revision 1.0 --append-to-version -2016 kernel_image kernel_headers

sudo dpkg -i *headers*.deb

sudo dpkg -i *image*.deb

四、PC1动态启动调试选项

echo ttyS0,115200 > /sys/module/kgdboc/parameters/kgdboc

五、测试配置结果

PC1运行如下命令

sudo su

echo g > /proc/sysrq-trigger

PC2进入Linux内核源码目录,并运行

gdb vmlinux

>set serial baud 115200

>target remote /dev/ttyUSB0

之后正常的话能够看到PC2进入Linux相应代码段

六、参考材料

通过KGDB进行双机内核调试 - 博客频道 - CSDN.NET

KGDB with VirtualBox: Debug a Live Kernel - Open Source For You

Kernel Debugging and Tracing Linux Update

gdb - KGDB remote debugging connection issue via USB and Serial connection - Stack Overflow

Chapter 5. Using kgdb / gdb

05-11 16:01