如何在 linux 内核模块中闪烁 LED?

How to blink leds in a linux kernel module?


我有一台装有 Linux Mint 和 4.4.0-78-generic 内核的笔记本电脑。
此外,我在 /sys/class/leds 目录中有一些 LED,我可以通过在 bash.
[=13 中执行 "echo 255 > brightness" 在用户空间中打开和关闭它们=] 但是我想在我的内核模块中切换它们。
比方说,这个模块将监听一个 udp 套接字并根据传入的数据包数据切换 led。
我用谷歌搜索并找到了名为 "leds-base.c"、"leds-class.c" 的内核源文件,其中包含控制 LED 的功能。不过这个函数需要传"struct led_classdev",不知道去哪里弄

所以,问题是:如何使用内核模块中 /sys/class/leds 目录中的名称设置 LED 亮度?

PS。我看过类似的问题,不过是关于KEYBOARD led的,我要控制的led不是键盘的,不能用前面提到的问题代码控制。

实施 led_trigger class 并调用

led_trigger_event(led, LED_FULL);

和您 driver 中的朋友。您可以将触发器绑定到任何由

领导的
echo my-trigger-name > /sys/class/leds/.../trigger