Linux下LCD自动熄屏解决方法

来源:互联网 发布:苹果优酷网络连接失败 编辑:程序博客网 时间:2024/06/10 20:43

正常情况下Linux会在一段时间后默认关闭屏幕,默认为10分钟。开始一直认为是Gnome或KDE等桌面环境设置的屏幕保护程序或电源管理功能,即使不安装桌面环境屏幕照样会自动关闭。

下面就来分析下原因。

看到网上的资料说这是由vt驱动来设置的。

下面进入内核源码目录下的drivers文件夹,后执行

[cpp] view plain copy
  1. 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即可


还有一种方法就是在自己的应用程序中添加:

 system("echo -e \"\033[9;0]\" > /dev/tty0");


当然还有其他的解决方法,总结如下:

1.修改LCD驱动,把关闭LCD控制器的函数变为空(不推荐)
2.修改vt.c中的blank_screen_t()函数,让其为空(在系统不需要使用关闭显示功能时推荐)
3.修改vt.c中的blankinterval,让其为0(系统可能需要使用关闭显示功能,而且希望系统上电后正常状态下不会关闭显示时推荐)
4.修改用户程序,加入设置blankinterval的代码(推荐)
0 0
原创粉丝点击