入门问答
这页用于收纳原先偏碎片的嵌入式问题,优先保留真正值得反复回看的概念边界。
Linux Kernel 是什么时候加载 DTB 的?
- 一般不是内核自己“主动去找” DTB,而是由 Bootloader 先把内核镜像和 DTB 放到内存里。
- Bootloader 跳进内核入口时,把 DTB 的物理地址一并传给内核。
- 内核早期启动阶段会保留这段内存,并把扁平设备树解析成运行时使用的内部树结构。
fdt_ 和 of_ 的区别是什么?
fdt_:面向启动早期的扁平设备树二进制数据,处理的是原始 DTB/FDT 内容。of_:面向内核运行期已经展开后的设备树结构,处理的是内核内部的device_node体系。
什么时候该看设备树,什么时候该看驱动?
- 硬件描述不对、节点没挂上、属性不生效,先看设备树。
- 驱动探测失败、资源申请失败、运行逻辑异常,再深入看驱动实现。