贫穷贵公子 发表于 2023-8-13 21:02:15

【米尔瑞萨RZ/G2L开发板-创新应用】KGDB调试指南-续集

u-boot,内核的cmdline参数如下所示

在文件yocto/myir-renesas-uboot/configs/myc-rzg2l_ddr1gb_defconfig,配置uboot向kernel的cmdline参数

CONFIG_BOOTARGS="rw rootwait earlycon root=/dev/mmcblk0p2 nokaslr console=ttySC0,115200 kgdboc=ttySC0,115200 kgdbcon"

区别于,上一章节的cmdline参数配置,主要是变更kgdbwait到kgdbcon,两者的区别,可以参考kernel下的Documentation下的kgdb.rst文档。
kgdbcon不会影响kernel的启动,kgdbwait会影响kernel的启动,会导致kernel的启动过程暂停,等待host端的gdb连接。

agent-proxy工具

具体使用方法,可以参考下述链接网址;
https://elinux.org/Kdmx

通常,都是代理ttyUSB节点到网络上,agent-proxy 5550^5551 0 /dev/ttyUSB0,115200
但是,对于RZG2L开发板,上述方式,经测试,发现未能生效,原因未知。
本文介绍agent-proxy提供的另一种方式,同样是代理ttyUSB节点,但是kdmx工具,会虚拟出两个pts的伪串口节点,方便后续的kgdb调试。
1)步骤一:
链接开发板的调试串口,到ubuntu主机当中,假定设备节点是/dev/ttyUSB0
2)Host端使用下述命令,代理ttyUSB0节点
kdmx -n -d -p/dev/ttyUSB0 -b115200



3)查看kdmx的输出信息,/dev/pts/4用于查看kernel的输出日志,/dev/pts/5用于kgdb调试
/dev/pts/4 is slave pty for terminal emulator
/dev/pts/5 is slave pty for gdb4)ubuntu环境当中,在开启一个shell窗口,使用minicom命令,用于查看kernel的日志信息
minicom -o -w -p /dev/pts/4

5)minicom窗口当中,输入如下指令,开启kgdb
echo g > /proc/sysrq-trigger

6)输入以下命令序列,配置gdb的调试环境
source /mnt/hdd/code/RZG2L/sdk/environment-setup-aarch64-poky-linux
aarch64-poky-linux-gdb linux-myir-5.10.83+git999/vmlinux -tui
add-auto-load-safe-path linux-myir-5.10.83+git999/
source linux-myir-5.10.83+git999/vmlinux-gdb.py
set detach-on-fork on
target remote /dev/pts/5注意,使用target remote /dev/pts/5,建立与开发板的kgdb链接。


至此,KGDB所需的调试环境,搭建完毕。后续,在介绍KGDB如何调试内核的ko模块。
      
页: [1]
查看完整版本: 【米尔瑞萨RZ/G2L开发板-创新应用】KGDB调试指南-续集