關於Linux核心自帶GPIO LED控制

Tyler77發表於2024-08-31

正點原子Linux開發板IMX6ULL上的呼吸燈如何停止?

學習到驅動開發Linux系統自帶的LED驅動控制的時候,才知道,原來該呼吸燈經過裝置樹配置好之後,直接由Linux核心程式配置為呼吸燈(前提是在核心中配置過,可以使用make menuconfig來去配置核心)。

所以在之前寫led燈的驅動的時候,因為這個呼吸燈無法看到實驗現象,查詢資料才知道,正點原子他們預設配置為了呼吸燈(透過Linux核心自帶的驅動)

  • 差評一下這個,教程裡是錯的,路徑不對,根本沒用,當時困惑好久
    image

正確做法

當希望停止掉這個呼吸燈的時候,透過Linux核心自帶的驅動程式來改變觸發方式。具體為,可以用MobaXterm進入/sys/devices/platform/dtsleds/這個路徑。其中dtsleds為裝置樹中自己寫的節點名字,正點原子寫成了dtsleds(可以在裝置樹中,查閱繫結文件自己修改)。所以,教程裡錯的是因為,在/sys/class/leds/下沒用sys-led這個,因為這是裝置樹自己配置的節點名字而已!!!。

在這個路徑下,可以看到
image
其中leds是配置的led集合,進入之後可以見到red(也是裝置樹自己配置命名的)。

進去之後可以看到有很多項。其實都是Linux自帶的驅動程式。brightness可以調節亮度。但是得首先改變trigger觸發方式。
image

透過cat trigger可以查閱,目前配置方式為heartbeat。中括號括起來的
image

所以要先修改觸發方式為none,再去修改brightness或者做相關操作。
echo none > trigger // 注意當前的路徑實在/red裡頭

相關文章