【发布时间】:2020-11-19 20:39:52
【问题描述】:
我有一个小型嵌入式系统板(很像 RasPi),运行 Yocto Linux 发行版(来自第三方供应商,而不是开放嵌入的原始存储库)。在那块电子板上有一排 LED 灯,每个 LED 灯都分配了一个特定的 GPIO。我可以使用 sysfs 轻松切换它们(例如:echo 1 >/sys/class/gpio/gpio123/value)。
我想指出内核启动序列的进度(不是在 u-boot 期间,不是在 systemd 期间,实际上是在加载驱动程序的各个步骤期间,等等。在我的板上持续大约 2 或 3 秒)就像一个闪屏,而是使用物理 LED 作为进度条“类似于闪屏”的指示器。
是否有预定义的最佳方式或“推荐”方法/地点/脚本/任何方法?这很可能是一件很常见的事情,我似乎找不到任何其他人这样做(我知道,我知道,我很可能只是没有搜索/谷歌搜索正确的词)。
谢谢!
【问题讨论】:
-
正确的方法是使用led子系统,但根本问题是鸡与蛋的困境。在内核启动的早期阶段,led 驱动程序将不可用(即尚未初始化)。在您还希望使驱动程序能够维护该硬件的同时直接操作硬件是通常可以避免的问题。 IOW 驱动程序通常在硬件静止时启用,即已知状态。
-
并且内核驱动探测顺序是不确定的。
标签: linux-kernel yocto