一、环境
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
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