AM335x Linux LCD休眠时间设置方法

原创 2022-03-03 00:25:43

       在Linux中,一般都会将LCD作为终端输出,此时如果长时间没有操作,则会自动关闭LCD,此时LCD上显示的东西就会丢失,或者我们需要设定这个超时的时间。


  下面我们看一下具体的代码中是如何操作的:

  Drivers/tty/vt/vt.c文件中

  static int blankinterval = 10*60;

  这里表示默认超时时间是10分钟


  case 9: /* set blanking interval */

  blankinterval = ((vc->vc_par[1] < 60) ? vc->vc_par[1] : 60) * 60;

  lsd_dbg(LSD_DBG,"blankinterval=%d,vc->vc_par[1]=%d\n",blankinterval,vc->vc_par[1]);

  poke_blanked_console();

  break;

  case 10: /* set bell frequency in Hz */

   

  这个函数是设定超时时间,如果设定为0 ,则不超时

       if (blankinterval) {

  blank_state = blank_normal_wait;

  mod_timer(&console_timer, jiffies + (blankinterval * HZ));

  }

   

  如果blankinterval为0,则不开启定时器其中定时器中的功能就是开关lcd。

  如果我们在内核中定死blankinterval,太过于死板了,因此我们建议在应用层进行操作

  方法一:

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

  这里是设定blankinterval等于0,如果使用


       echo -e "\033[9;1]" > /dev/tty0    

  则设定blankinterval等于1分钟


  方法二:

  使用C程序的方法:

      #include

   #include

   #include

  int main()

  {

    int f;

    f = open("/dev/tty0", O_RDWR);

    write(f, "\033[9;0]", 8);

    close(f);

    return 0

  }

    

  备注:如果写成write(f, "/033[9;0]", 8);,这个是不对的

  注意:无论使用什么方法,注意操作/dev/console /dev/fb0 /dev/ttyO0都是没有效果的,只有tty0 tty1 这些有效果

  另外code中包含了kernel中增加调试的patch

  以下是增加了调试信息后的输出log  


  [root@YuGe-AM1808 /test/hxzd]#./lcd-nosleep

  [ 13.634552] ---ALL---DBG---file=vt.c,func=setterm_command,line=1524++++ blankinterval=0,vc->vc_par[1]=0

  [root@YuGe-AM1808 /test/hxzd]#

  [root@YuGe-AM1808 /test/hxzd]#echo -e "\033[9;0]" > /dev/tty0

  [ 135.126953] ---ALL---DBG---file=vt.c,func=setterm_command,line=1524++++ blankinterval=0,vc->vc_par[1]=0

  [root@YuGe-AM1808 /test/hxzd]#

   

       维芯科 AM335x核心板:https://www.weathink.cn/products/hexinban/2.html


相关产品>

  • T153工控板

    ●CPU:T153,4核处理器,最高主频1 6GHz●MCU:600-MHz RISC-V E907●RAM:256MB 512MB 1GB DDR3●NAND:256MB 512MB NAND Flash●eM


    了解详情
    T153工控板
  • 全志T153核心板

    ●CPU:T153,4核处理器,最高主频1 6GHz●MCU:600-MHz RISC-V E907●RAM:256MB 512MB 1GB DDR3...


    了解详情
    全志T153核心板
  • RK3588工控板

    ●CPU:Rockchip RK3588●架构:四核Cortex-A76 + 四核Cortex-A55●NPU:6TOPS●内存:4GB 8GB 16GB LPDDR4x●Flash:32GB


    了解详情
    RK3588工控板
  • 瑞芯微RK3588核心板

    ●CPU:RK3588 RK3588J●架构:四核Cortex-A76 +四核Cortex-A55●NPU:6TOPS●RAM:4GB(默认) 8GB 16GB LPDDR4x●ROM:32GB(默认


    了解详情
    瑞芯微RK3588核心板