Linux下LCD 10分钟自动关屏的问题总结
记录一下,防止博客丢失。来自:http://blog.csdn.net/mao0514/article/details/46562057
Linux下的LCD驱动默认10分钟后会自动关闭屏幕,我们可以修改一下代码让其不自动关屏
在有一个 drivers/char/vt.c 文件其中有一个变量(blankinterval)可以设置它来修改自动关屏的时间,也可以在函数(blank_screen_t)开头直接返回,这样就永远不会关屏了
在用LCD显示的时候,发现10分钟LCD就不再工作了。确实,Linux下有一个参数blankinterval的值就是10*60*Hz。
它决定了LCD只显示10分钟,然后LCD控制器就被关掉了。
具体细节请参考http://blog.csdn.net/dongliqiang2006/article/details/4262950
但是这篇文章最后给出的程序是不能用的,有一处错误,在write那行应该是\0,原文是/0。
#include <stdio.h>
#include <sys/ioctl.h>
int main(int argc ,char *argv[])
{
int f0;
f0 = open("/dev/tty0", O_RDWR);
write(f0, "\033[9;0]", 8);
close(f0);
return 0;
}
{
const char *display_desc = NULL;
struct vc_data *vc;
unsigned int currcons = 0;
display_desc = conswitchp->con_startup();
if (!display_desc) {
fg_console = 0;
release_console_sem();
return 0;
}
console_timer.function = blank_screen_t;
if (blankinterval) {
blank_state = blank_normal_wait;
mod_timer(&console_timer, jiffies + blankinterval);
}
* kmalloc is not running yet - we use the bootmem allocator.
*/
for (currcons = 0; currcons < MIN_NR_CONSOLES; currcons++) {
vc_cons[currcons].d = vc = alloc_bootmem(sizeof(struct vc_data));
visual_init(vc, currcons, 1);
vc->vc_screenbuf = (unsigned short *)alloc_bootmem(vc->vc_screenbuf_size);
vc->vc_kmalloced = 0;
vc_init(vc, vc->vc_rows, vc->vc_cols,
currcons || !vc->vc_sw->con_save_screen);
}
currcons = fg_console = 0;
master_display_fg = vc = vc_cons[currcons].d;
set_origin(vc);
save_screen(vc);
gotoxy(vc, vc->vc_x, vc->vc_y);
csi_J(vc, 0);
update_screen(vc);
printk("Console: %s %s %dx%d",
vc->vc_can_do_color ? "colour" : "mono",
display_desc, vc->vc_cols, vc->vc_rows);
printable = 1;
printk("/n");
register_console(&vt_console_driver);
#endif
return 0;
}
其中引用了一个叫blankinterval的全局变量和一个console_time,我不知道内核的定时器是具体是怎么工作,但是 这样的代码已经很明显了。这个定时器和电源管理宏PM_CONFIG没有任何关系,它是控制台的一部分。再看下blank_screen_t():
{
blank_timer_expired = 1;
schedule_work(&console_work);
}
{
acquire_console_sem();
if (want_console != fg_console &&
vc_cons_allocated(want_console)) {
hide_cursor(vc_cons[fg_console].d);
change_console(vc_cons[want_console].d);
/* we only changed when the console had already
been allocated - a new console is not created
in an interrupt routine */
}
want_console = -1;
}
if (do_poke_blanked_console) { /* do not unblank for a LED change */
do_poke_blanked_console = 0;
poke_blanked_console();
}
if (scrollback_delta) {
struct vc_data *vc = vc_cons[fg_console].d;
clear_selection();
if (vc->vc_mode == KD_TEXT)
vc->vc_sw->con_scrolldelta(vc, scrollback_delta);
scrollback_delta = 0;
}
if (blank_timer_expired) {
do_blank_screen(0);
blank_timer_expired = 0;
}
}
.open = con_open,
.close = con_close,
.write = con_write,
.write_room = con_write_room,
.put_char = con_put_char,
.flush_chars = con_flush_chars,
.chars_in_buffer = con_chars_in_buffer,
.ioctl = vt_ioctl,
.stop = con_stop,
.start = con_start,
.throttle = con_throttle,
.unthrottle = con_unthrottle,
};
if (opt_blank && vcterm)
printf("/033[9;%d]", opt_bl_min);
还可以这样:echo 0 > /sys/class/graphics/fb0/blank,可以修改为不息屏。非0情况就可以息屏,或者不刷新屏幕了。
Linux下LCD 10分钟自动关屏的问题总结相关推荐
- Linux下LCD自动关闭解决方法,一般就自动十分钟黑屏的原因
Linux下LCD自动关闭解决方法 主机环境:Gentoo Linux 11.2 内核版本:Linux Kernel 3.2.1 原创作品,转载请表明http://blog.csdn.net/ymin ...
- linux 录屏软件 按键,linux下常用的截图、录屏工具
linux下常用的截图.录屏工具 (2010-01-05 10:47:21) 由于和老公一起做一个百度俱乐部的小项目,在编写测试文档时要使用截图.录屏的小工具,于是展开搜索什么工具比较好使. 录屏: ...
- Linux下文件夹的自动同步
Linux下文件夹的自动同步 问题:服务器a每天21:00给服务器B发送日志文件,服务器B接受到日志文件后,如果磁盘大小小于10G则选择创建时间最早的文件删除,保证磁盘剩余空间大于等于10G. 安装的 ...
- w10系统老是自动息屏_大师解答win10系统无法自动关屏/待机和睡眠的恢复教程
许多win10系统用户在工作中经常会遇到win10系统无法自动关屏/待机和睡眠的情况,比如近日有用户到本站反映说win10系统无法自动关屏/待机和睡眠的问题,但是却不知道要怎么解决win10系统无法自 ...
- linux查看并口设备,如何在LINUX下实现硬件的自动检测(下)
本文是<如何在LINUX下实现硬件的自动检测>一文的下部分,作者将继续向我们讲述如何自动检测另外几种总线类型硬件设备. 5 .USB设备的自动检测 5.1 USB设备检测的一般过程 USB ...
- linux下执行shell脚本文件,Linux下使用shell脚本自动执行脚本文件
搜索热词 以下实例本人在Centos6.5 64位操作系统中使用 一.定时复制文件 a.在/usr/local/wfjb_web_back目录下创建 tomcatBack.sh文件 #将tomcat中 ...
- Linux下Jenkins与GitHub自动构建NetCore与部署
今天我们来谈谈NetCore在Linux底下的持续集成与部署.NetCore我就不多介绍了,持续集成用的是Jenkins,源代码管理器用的是GitHub.我们就跟着博文往下走吧. 1.Linux环境 ...
- linux 程序定时重启tomcat,linux下实现tomcat定时自动重启
tomcat自带的脚本中没有提供直接restart的模式,但是有start和shutdown两种模式.要实现restart模式,实际上只需要判断是否已经启动tomcat,若已经启动则限制性shutdo ...
- linux自动重启电脑脚本,linux下通过脚本实现自动重启程序的方法
烈火建站学院(LieHuo.Net)转载无论什么程序都不可能完美无缺,理论上,任何程序都有 Core Dump 的一天,正式运营的程序,尤其是服务器程序,一旦 Core Dump ,后果不堪设想,有过 ...
最新文章
- oracle netca 乱码,Oracle 11g 安装及netca,dbca乱码之解决
- 为什么 Django 能持续统治 Python 开发世界
- Android获取apk信息(版本、包名等)
- springmvc整合redis架构搭建实例
- HDOJ 4883 TIANKENG’s restaurant
- 浅谈 JSON.stringify 方法
- iptables (2) 基本配置
- oracle常用的字符串函数,Oracle的常用字符函数实验展示
- angularjs modal模态框----创建可拖动的指令
- 解决离线安装依赖包的方法
- Freemarker简单封装
- android 动态改变listview的内容
- 数据可视化图表ECharts
- 推荐一款颜值逆天且功能齐全的开源Shell工具
- 人脸关键点检测论文总结
- svm神经网络葡萄酒matlab,【转载】SVM的数据分类预测----意大利葡萄酒种类识别...
- Python学习笔记——变量(图灵学院)
- 记一次线上微信公众号迁移遇到的坑
- 《操作系统学习总结》
- Stata基础33讲(连享会公开课)
热门文章
- 武鸣高中2021高考成绩查询,2019年广西两大重点高中成绩大比拼
- html 复制文本按钮,js实现点击按钮复制文本功能
- 嵌入式 说明书 软件著作权_软件著作权详细解读
- 个人计算机上常用的操作系统,个人计算机常用的输出设备 操作系统的发展史(3)...
- Apache Flink 零基础入门(十三)Flink 计数器
- There is no Action mapped for namespace [/] and action name [LoginAction_home] associ
- 京东扳回一城,拼多多该小心了?
- 那些年,杜蕾斯紧跟热点的骚包文案有哪些?
- 推荐一位BAT数据大神!(附联系方式)
- 现在还有没有人不学 Python 的?