Linux下LCD自動消灯解決方法
1273 ワード
通常、Linuxは一定時間後にデフォルトで画面を閉じ、デフォルトでは10分です.最初はGnomeやKDEなどのデスクトップ環境に設定されていると思われていたスクリーンセーバーや電源管理機能は、デスクトップ環境をインストールしなくても自動的にオフになります.
原因を分析してみましょう.
ネット上の資料を見るとvt駆動で設定されているという.
次にカーネルソースディレクトリのdriversフォルダに入り、実行します.
[cpp] view plain
copy
grep blankinterval ./* -R
そのファイルにこの変数が設定されていることを検索します.
検索結果は次のとおりです.
./tty/vt/vt.c:static void blank_screen_t(unsigned long dummy); ./tty/vt/vt.c:static DEFINE_TIMER(console_timer, blank_screen_t, 0, 0); ./tty/vt/vt.c:static void blank_screen_t(unsigned long dummy)
次に、ファイルを開いて約180行の位置を変更します.
もう1つの方法は、自分のアプリケーションに追加することです.
もちろん他にも解決策がありますが、以下にまとめます.
1.LCDドライバを修正し、LCDコントローラを閉じる関数を空にする(推奨しない)
2.vt.cのblank_を修正するscreen_t()関数を空にします(システムが表示機能を閉じる必要がない場合に推奨します)
3.vt.cのblankintervalを0にするように変更します(システムは表示を閉じる機能を使用する必要がある場合がありますが、システムの電源が入ってから正常な状態で表示を閉じないことを推奨します)
4.ユーザプログラムを修正し、blankintervalを設定するコード(推奨)を加える
原因を分析してみましょう.
ネット上の資料を見るとvt駆動で設定されているという.
次にカーネルソースディレクトリのdriversフォルダに入り、実行します.
[cpp] view plain
copy
grep blankinterval ./* -R
そのファイルにこの変数が設定されていることを検索します.
検索結果は次のとおりです.
./tty/vt/vt.c:static void blank_screen_t(unsigned long dummy); ./tty/vt/vt.c:static DEFINE_TIMER(console_timer, blank_screen_t, 0, 0); ./tty/vt/vt.c:static void blank_screen_t(unsigned long dummy)
次に、ファイルを開いて約180行の位置を変更します.
static int vesa_blank_mode; /* 0:none 1:suspendV 2:suspendH 3:powerdown */
static int vesa_off_interval;
//static int blankinterval = 10*60;
static int blankinterval = 0;
core_param(consoleblank, blankinterval, int, 0444);
blankinterval初期化を0に設定すればよいもう1つの方法は、自分のアプリケーションに追加することです.
system("echo -e \"\033[9;0]\" > /dev/tty0");
もちろん他にも解決策がありますが、以下にまとめます.
1.LCDドライバを修正し、LCDコントローラを閉じる関数を空にする(推奨しない)
2.vt.cのblank_を修正するscreen_t()関数を空にします(システムが表示機能を閉じる必要がない場合に推奨します)
3.vt.cのblankintervalを0にするように変更します(システムは表示を閉じる機能を使用する必要がある場合がありますが、システムの電源が入ってから正常な状態で表示を閉じないことを推奨します)
4.ユーザプログラムを修正し、blankintervalを設定するコード(推奨)を加える