Linux kgdboe kgdb内核在启动时调试

Linux kgdboe kgdb内核在启动时调试,linux,linux-kernel,gdb,kernel-module,kgdb,Linux,Linux Kernel,Gdb,Kernel Module,Kgdb,我正在尝试让内核调试在引导期间正常工作。我已经按照所有步骤安装了它(),在加载insmod后可以很好地连接,但是如果我添加这个 BOOT_IMAGE=/vmlinuz-4.0.0-rc7+ root=UUID=<my_root> ro drm.debug=0x04 kgdbwait kgdboe=@<src_ip>/eth1,@<target_ip>/ vt.handoff=7 顺便说一下,我有eth0和eth1,但只有eth1连接 有什么建议吗?是否只是p

我正在尝试让内核调试在引导期间正常工作。我已经按照所有步骤安装了它(),在加载insmod后可以很好地连接,但是如果我添加这个

BOOT_IMAGE=/vmlinuz-4.0.0-rc7+ root=UUID=<my_root> ro drm.debug=0x04 kgdbwait kgdboe=@<src_ip>/eth1,@<target_ip>/ vt.handoff=7
顺便说一下,我有eth0和eth1,但只有eth1连接

有什么建议吗?是否只是pcie网卡在引导后才加载,导致了问题

另外,为什么我需要指定源或目标ip地址?有没有办法让kgdboe接受所有ip地址,即使在引导时尝试加载它


谢谢,因为早期的内核调试kgdboe并没有真正起作用。有几个问题,有些容易解决,有些无法解决。您可以硬链接所需的模块,而不是要求加载它们来解决简单的问题。但核心问题是kgdb早期等待将暂停所有工作线程,并且几乎所有以太网PCIe卡驱动程序都需要工作线程,或者需要IRQ。即使在轮询的以太网驱动程序支持上(非常有限),IRQ也可以被抢占(或非法持有锁),并阻止轮询的以太网驱动程序运行。因此,早期的内核调试不能可靠地与kgdboe以及一些以太网驱动程序一起工作。(例如GRUB2引导线路上的kgdbwait。)偶尔会有人谈论黑客攻击各种以太网驱动程序源,试图通过专用以太网驱动程序提供kgdboe支持,但据我所知,没有一个是分布式的。您最好还是使用一个串行端口,为了获得完整的功能,可以使用一个串行控制台,如果需要,可以使用kgdboc(代理代理)将其多路复用到一个串行端口上。如果需要真正的远程访问,则远程访问将进入启动串行连接的调试系统

您也可以使用USB端口,但需要一个不再出售的特定USB串行USB加密狗。(Ajays Blue dongle)。这些产品在大约6个月前已经停产,目前还没有替代产品。(这是一款适用于Linux的Windows调试设备,Windows已经转向了本机USB3.0调试功能,Linux还没有赶上。)因此,除非您有所需的USB转换器,或者有其他源,或者有其他适配器,否则您在USB2.0上就不走运了

不幸的是,即使在2016年,连续剧仍然是你的最佳选择。 见:

kgdboe: eth0 does not have a in_ifaddr struct associated. Cannot get default IP address.