如果我尝试从 shell 使用设备驱动程序并且该驱动程序已被内核使用,会发生什么情况?

如果我尝试从 shell 使用设备驱动程序并且该驱动程序已被内核使用,会发生什么情况?

情况就是这样。我是嵌入式 Linux 新手,我正在尝试测试 LED 驱动器 LP5521 的一些命令。我的主板有一个带有该控制器 IC 的 RGB LED,并且直接在设备树中使用“心跳”模式对其进行初始化。因此,开发板一启动,LED 就会开始闪烁。

我被要求尝试从命令行更改控制器的闪烁模式,并总体使用 LP5521 来熟悉它。

我在LP5521驱动文档中找到了https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/leds/leds-lp55xx.txt这个例子:

For example, run blinking pattern in engine #1 of LP5521
echo 1 > /sys/bus/i2c/devices/xxxx/select_engine
echo 1 > /sys/class/firmware/lp5521/loading
echo "4000600040FF6000" > /sys/class/firmware/lp5521/data
echo 0 > /sys/class/firmware/lp5521/loading
echo 1 > /sys/bus/i2c/devices/xxxx/run_engine

问题是,当我尝试第一行时,我收到错误:

lp5521 的直接固件加载失败,错误为 -2

我完全不知道为什么会发生这种情况。我认为我无法从 shell 发送任何内容,因为内核已经使用心跳模式的驱动程序,但我对此不确定。

谢谢!!

相关内容