linux - 如何使 Linux 内核模块中的 LED 闪烁?

标签 linux linux-kernel led

我有一台带 Linux Mint 的笔记本电脑和 4.4.0-78 通用内核。

此外,我还有一些 LEDs/sys/class/leds 目录中,我可以通过在 Bash 中执行“echo 255 > brightness”在用户空间中打开和关闭它们。

但是,我想在我的内核模块中切换它们。比方说,这个模块将监听 UDP基于传入数据包数据的 socket 和开关 LED。

我用谷歌搜索并找到了名为“leds-base.c”、“leds-class.c”的内核源文件,其中包含控制 LED 的函数。然而,这个函数需要传递“struct led_classdev”,我不知道我应该从哪里得到它。

如何使用内核模块中/sys/class/leds 目录中的名称设置 LED 亮度?

附言。我看到过类似的问题,但它只是关于 keyboard LED,我想控制的 LED 不是键盘 LED,并且不能通过前面提到的问题代码控制。

最佳答案

实现一个led_trigger类并调用

led_trigger_event(led, LED_FULL);

和你的司机 friend 。您可以通过以下方式将触发器绑定(bind)到任何 LED:

echo my-trigger-name > /sys/class/leds/.../trigger

关于linux - 如何使 Linux 内核模块中的 LED 闪烁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44044871/

相关文章:

java - 为什么 Java/Linux 在文件末尾附加 0xa?

module - Linux内核模块参数的写入权限

linux - 为什么没有分配给 pci 设备的 BAR 地址?

c - C语言检测单片机ATmega328P按键信号

Android:屏幕关闭后保持摄像头 LED 亮起

linux - 我已按照 Linux From Scratch 中的说明配置 binutils 2.26,但出现错误 -'c compiler cannot create executable file '

python - 使用 Python 的 select 模块检查是否有更多数据可以从文件描述符中读取

linux - 在linux内核层面,如何读写硬盘的一个扇区

linux-kernel - 如何计算到电池充电结束的剩余时间

C# 将 char 转换为 8x8 二进制的方法