You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过gpio-keys中断唤醒系统?Android端配置咨询

GPIO按键无法唤醒LineageOS 14.1系统(三星Galaxy S2-i777)

硬件与系统背景

我的硬件是三星Galaxy S2-i777,基于Exynos4210 SoC(ARM架构),运行LineageOS 14.1系统。目前尝试通过gpio-keys中断唤醒休眠的系统,但只有电源按键能成功唤醒,音量按键(配置为gpio-key)无法实现唤醒。

已完成的配置与验证

内核端(板级文件配置)

因为内核版本较旧,未使用设备树,直接在板级文件中定义了gpio-keys,相关代码片段如下:

struct gpio_keys_button u1_buttons[] = {
    {
        .code = KEY_VOLUMEUP,
        .gpio = GPIO_VOL_UP,
        .active_low = 1,
        .type = EV_KEY,
        .wakeup = 1,
        .isr_hook = sec_debug_check_crash_key,
        .debounce_interval = 10,
    },
};

平台注册等相关步骤已完成,这里省略。配置中已将wakeup属性设为1,指定GPIO_VOL_UP为唤醒源。

Android端(按键布局配置)

修改了按键布局文件gpio-keys.kl,初始配置如下:

key 115 VOLUME_UP WAKE
key 114 VOLUME_DOWN WAKE

验证操作

在LineageOS本地终端执行以下操作确认状态:

  • 执行cat /proc/interrupts,确认音量按键能正常产生中断;
  • 确认gpio-keys已被标记为wakeup_sources且wakeup功能已启用。

关键更新说明

我尝试将gpio-keys.kl修改为以下内容:

key 115 POWER WAKE
key 114 POWER WAKE

此时音量按键在Android中被注册为POWER键,系统可以被正常唤醒。这让我推测问题可能出在Android端而非Linux内核端,但不确定具体原因。

核心疑问

  1. 当前配置下音量按键无法唤醒系统的问题可能出在哪里?
  2. 通过gpio-keys中断唤醒Android系统的通用步骤或注意事项有哪些?哪怕不针对我的硬件,通用排查逻辑也能帮助我定位问题,感谢支持!

内容的提问来源于stack exchange,提问作者JoeG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:47:41