目前我正在为我的项目开发 Yocto OS。我关于调试的问题。正常情况下,调试信息是通过串口发送的。我知道 ssh 调试。我有两个问题:
- 为什么一般设备都支持串口调试?
- 有没有可能通过 Yocto 中的 USB 端口进行调试(不使用串口转 USB 转换器)?
最佳答案
因为串行驱动程序可以很简单并且无需中断即可实现(Linux 内核控制台实际上就是这样做的)。这是由于紧急情况下的要求,应尽可能多地发送崩溃日志并尽可能完整。
您有几个选择:
- a) 使用 USB-2-Serial 和
/dev/ttyUSB0
、或 - b) 使用 USB-2-以太网并设置
netconsole
、或 - c)(仅在最新的 xHCI 硬件上具有调试功能并且需要编写额外的代码)您可以为 USB 启用earlyprintk。 注意,它需要特殊 debug cable要连接(注意,蓝色不相同,您需要橙色),或
- d) USB2 (EHCI) 支持调试功能,需要在其间连接特殊设备,而 USB3 则不需要(请参阅上面的选项 c))。
变体c)在v4.13-rc1 Linux内核中部分支持,有HOWTO file (在内核源代码树Documentation/driver-api/usb/usb3-debug-port.rst中)。
关于embedded - 我可以获取 USB 上的调试信息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45511533/