主要观点:在构建自定义 Linux 内核镜像启动时,LCD 驱动未被探测,需了解 Linux 内核中设备和驱动的注册等相关知识。问题在于使用的 SPI TFT LCD 面板所需的st7735r
驱动需要基于 GPIO 的背光设备,其相关设备树片段显示了背光节点的配置,驱动的探测回调会根据设备树信息获取背光设备,若未找到则返回-EPROBE_DEFER
错误,导致设备进入延迟探测列表,作者的问题是内核中所需驱动未启用导致背光设备未注册使面板设备无限期延迟探测。在基于设备树的系统中这是常见问题,之前作者需花费大量时间排查原因,后来添加了/sys/kernel/debug/devices_deferred
调试文件系统条目来暴露延迟探测的设备列表及原因,如cat /sys/kernel/debug/devices_deferred
可查看相关信息,比查看内核日志和添加调试打印更方便。
关键信息:自定义内核镜像启动时 LCD 驱动未探测;st7735r
驱动与背光设备的关系;设备树片段中背光节点配置;驱动探测回调及-EPROBE_DEFER
;延迟探测列表及遍历;添加调试文件系统条目及作用。
重要细节:提到了相关代码文件及函数的位置;示例cat /sys/kernel/debug/devices_deferred
的输出及含义。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。