ここから本文です

Debian(Raspbian)でモニタースリープを検知、若しくはスリープ時に任意のスクリ...

fre********さん

2016/4/510:18:10

Debian(Raspbian)でモニタースリープを検知、若しくはスリープ時に任意のスクリプトを実行するにはどうすれば良いでしょうか?

systemdを利用するのかなー?

と思って試してみましたがうまく出来ませんでした。
https://wiki.archlinuxjp.org/index.php/%E9%9B%BB%E6%BA%90%E7%AE%A1%...

利用目的はRaspberryPiに繋いだPiTFTというモニターのバックライトの制御をするためです。

PiTFTはモニタスリープ時に真っ黒の画面になりますがバックライトが点灯したままです。GPIO18からPWM信号でバックライトの輝度が設定出来るのでスリープを感知させてpythonでスクリプトでバックライトを消灯させるのが目的です。

他にも何か良い方法がありましたらご教授願います。

閲覧数:
360
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

nan********さん

2016/4/515:34:44

ちょっと探したけど、Raspbian で動きそうなのは無いです。
仕方が無いので自分で作りましょう。

X Window のライブラリの関数を使うを結構簡単に作成できます。
こんな感じで。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <memory.h>
#include <unistd.h>

extern "C" {
#include <X11/Xlib.h>
#include <X11/Xproto.h>
#include <X11/extensions/dpms.h>

}

Display *dpy = NULL;
CARD16 standby, suspend, off;

int main(int argc, const char **argv)
{
dpy = XOpenDisplay(NULL);
if (! dpy) {
fprintf(stderr, "XOpenDisplay failed.\n");
exit(1);
}

CARD16 state;
BOOL onoff = False;
for(;;){
usleep(300000);
DPMSInfo(dpy, &state, &onoff);
if(state != 0 && access("/usr/local/bin/blankevent",0)==0){
system("/usr/local/bin/blankevent");
for(;;){
usleep(300000);
DPMSInfo(dpy, &state, &onoff);
if(state == 0) break;
}
}
}
}

これを、dodpms.cpp に保存して

gcc -o dodpms dodpms.cpp -lXext -lX11
sudo cp dodpms /usr/local/bin

とかすると出来ます。
/etc/rc.local

/usr/local/bin/dodpms &
と書いておいて、
実行したいものを、
/usr/local/bin/blankevent
に放り込んで実行権を立てておけばいいです。

  • nan********さん

    2016/4/516:15:18

    あ、
    /etc/rc.local は、駄目ですね。
    ディスプレイをオープン出来ないエラーです。

    ちょっと、Raspbian で起動時スタートは難しいです。

    /etc/lightdm/lightdm.conf

    #session-setup-script=

    session-setup-script=/usr/bin/startscript
    とでも設定して、
    /usr/bin/startscript

    #!/bin/sh
    /usr/local/bin/dodpms &
    exit 0
    とでも書いて実行権を立てるのですね。
    そうしないと何故か起動しませんでした。

  • その他の返信を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2016/4/8 10:52:17

解決に至までの再度の質問に何度もお付き合いいただきありがとうございました!

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo!知恵袋カテゴリ

一覧を見る

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる