Firefly开源社区

打印 上一主题 下一主题

[Linux] JD4的电源按键是怎么调用的?

9

积分

0

威望

0

贡献

吃瓜的群众

积分
9

JD4的电源按键是怎么调用的?

发表于 2022-7-3 09:52:28      浏览:2627 | 回复:2        打印      只看该作者   [复制链接] 楼主
问题描述及复现步骤:
目前在用的UBUNTU20。04固件,官方固件,上电即启动,按电源按键,系统直接关机,进入poweroff,

请教各位大牛,这个文件系统是怎么调用电源按键的event的?固件的内核已集成gpio-key功能,已设定power按键,配合18。04的UBUNTU文件系统,按电源键时是可以调出关机注销挂起等的对话框的,不会直接关机,但这个20.04的文件系统是直接关机断电,好生迷惑。

看了一般的UBUNTU,是有PM功能或ACPI的,这个官方固件没有,查了很久也没有找着调用入口,哪位高手指点一下!!

系统etc下有Powermanager文件夹,也有相应的脚本

下面是sh代码
#!/bin/sh

EVENT=${1:-short-press}

TIMEOUT=3 # s
PIDFILE="/tmp/$(basename $0).pid"
LOCKFILE=/tmp/.power_key

short_press()
{
    logger -t $(basename $0) "[$$]: Power key short press..."

    if type pm-suspend &>/dev/null; then
        SUSPEND_CMD="pm-suspend"
    else
        SUSPEND_CMD="echo -n mem > /sys/power/state"
    fi

    if [ ! -f $LOCKFILE ]; then
        logger -t $(basename $0) "[$$]: Prepare to suspend..."

        touch $LOCKFILE
        sh -c "$SUSPEND_CMD"
        { sleep 2 && rm $LOCKFILE; }&
    fi
}

long_press()
{
    logger -t $(basename $0) "[$$]: Power key long press (${TIMEOUT}s)..."

    logger -t $(basename $0) "[$$]: Prepare to power off..."

    poweroff
}

logger -t $(basename $0) "[$$]: Received power key event: $@..."

case "$EVENT" in
    press)
        # Lock it
        exec 3<$0
        flock -x 3

        start-stop-daemon -K -q -p $PIDFILE || true
        start-stop-daemon -S -q -b -m -p $PIDFILE -x /bin/sh -- \
            -c "sleep $TIMEOUT; $0 long-press"

        # Unlock
        flock -u 3
        ;;
    release)
        # Avoid race with press event
        sleep .5

        start-stop-daemon -K -q -p $PIDFILE && short_press
        ;;
    short-press)
        short_press
        ;;
    long-press)
        long_press
        ;;
esac

——————————————————————————————
很奇怪的是一直没有得到调用。


新建文本文档.txt

6 Bytes, 下载次数: 0, 下载积分: 灯泡 -1 , 经验 -1

回复

使用道具 举报

899

积分

0

威望

6

贡献

技术大神

Rank: 8Rank: 8

积分
899
发表于 2022-7-7 15:08:03        只看该作者  板凳
你现在是想实现什么。18和20对按键事件输入处理不一样,你现在是想直接关机是吗
回复

使用道具 举报

9

积分

0

威望

0

贡献

吃瓜的群众

积分
9
发表于 2022-7-3 10:10:33        只看该作者  沙发
# support power management
if [ -e "/usr/sbin/pm-suspend" -a -e /etc/Powermanager ] ;
then
    mv /etc/Powermanager/power-key.sh /usr/bin/
    mv /etc/Powermanager/power-key.conf /etc/triggerhappy/triggers.d/
    if [[ "$CHIPNAME" == "rk3399pro" ]];
    then
        mv /etc/Powermanager/01npu /usr/lib/pm-utils/sleep.d/
        mv /etc/Powermanager/02npu /lib/systemd/system-sleep/
    fi
    mv /etc/Powermanager/triggerhappy /etc/init.d/triggerhappy

    rm /etc/Powermanager -rf
    service triggerhappy restart
fi
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表