可能であれば、ブートローダでGPIOのデフォルト状態をハイ/ローにすることができます。または、以下のLinuxカーネルとデバイスツリーの変更を参照してください。
:アーチ/ XXX /ブーツ/ DTS/xxxx.dts
[email protected] {
label = "evmsk:green:heartbeat";
gpios = <&gpio1 7 0>;
linux,default-trigger = "heartbeat";
default-state = "off";
};
:ドライバー/ LEDは/ LEDの-gpio.c
state = of_get_property(child, "default-state", NULL);
if (state) {
if (!strcmp(state, "keep"))
led.default_state = LEDS_GPIO_DEFSTATE_KEEP;
else if (!strcmp(state, "on"))
led.default_state = LEDS_GPIO_DEFSTATE_ON;
else
led.default_state = LEDS_GPIO_DEFSTATE_OFF;
}
ret = gpio_direction_output(led_dat->gpio, led_dat->active_low^state);
プロジェクト*メタACPI *はGitHubの上でありここでは、ACPI経由でGPIO回線を操作する方法の例を見つけることができます。 UEFIアプリケーションでは、UEFIアプリケーションを作成して実行するか、ブートローダをハックする必要があります(LinuxはUEFIアプリケーションとしても読み込まれる可能性があります)。 – 0andriy