linux内核consoleblank参数忽略

rta7y2nd  于 2023-04-11  发布在  Linux
关注(0)|答案(2)|浏览(256)

我正在运行一个嵌入式Linux开发板,该开发板只有一个基于i.MX6和自定义Yocto构建的控制台(没有图形环境)。
我试图阻止屏幕在15分钟不活动后关闭。我认为正确的方法是将consoleblank=传递给 Boot 参数,我已经这样做了。问题是当我这样做时
cat /sys/module/kernel/parameters/consoleblank
我得到900。cat /proc/cmdline的结果是:
console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw consoleblank=0
有谁知道这个参数还可以在哪里设置?
谢谢
马龙

t0ybt7op

t0ybt7op1#

要避免控制台在一段时间后变为空白,需要更改两件事:

  • consoleblank=0作为内核参数
  • 禁用端子消隐:setterm -空白0 -断电0

你在proc中看到的值,我怀疑在 Boot 过程中设置了 setterm 参数,这将改变 consoleblank 参数,为了确定这一点,你可以做一个简单的测试:

setterm -blank 600
cat /sys/module/kernel/parameters/consoleblank
# This must be 600

setterm -blank 0
cat /sys/module/kernel/parameters/consoleblank
# This must be 0

您可以在此问题中查看其他信息:https://unix.stackexchange.com/questions/8056/disable-screen-blanking-on-text-console

zour9fqk

zour9fqk2#

我知道这是一个超级老的问题,但我最近遇到了一个非常类似的问题,发现15分钟的空白超时是由Qt引起的。如果你正在运行任何Qt程序,这可能是问题的根源。
在Qt的源代码中有一个名为setTTYCursor的函数。如果你看一下链接文件中的代码,它通过在Qt应用加载时将超时设置为0来禁用消隐,然后当它退出时,它将消隐更改为15分钟的超时。在此之后,/sys/module/kernel/parameters/consoleblank报告值900,不管你最初在内核命令行中提供了什么,我花了很多时间质疑自己的理智,直到我发现Qt在背后改变了这一点。
你可以通过在启动Qt应用程序之前设置一个环境变量来绕过这个奇怪的行为:
export QT_QPA_PRESERVE_CONSOLE_STATE=1

相关问题