【发布时间】:2016-07-05 03:39:44
【问题描述】:
我正在使用 Qt 做一个嵌入式 Linux 项目,当 Qt 程序运行时,它不在 7" LCD 的中间,所以我使用 "fbset -move -step" 来移动它,然后它是好的。
但是当板子关闭再打开时,设置丢失了,Qt程序仍然没有坐在LCD中间。我检查了etc/fb.modes,我也修改了它,但问题仍然存在。谁能帮帮我?
【问题讨论】:
标签: qt embedded framebuffer
我正在使用 Qt 做一个嵌入式 Linux 项目,当 Qt 程序运行时,它不在 7" LCD 的中间,所以我使用 "fbset -move -step" 来移动它,然后它是好的。
但是当板子关闭再打开时,设置丢失了,Qt程序仍然没有坐在LCD中间。我检查了etc/fb.modes,我也修改了它,但问题仍然存在。谁能帮帮我?
【问题讨论】:
标签: qt embedded framebuffer
这次很幸运,我自己解决了这个问题。在“fbset -move -step”之后,我使用“fbset”命令打印了当前设置,然后将这些设置写入/etc/fb.modes。如果你想在每次启动时都使用这个设置,你应该在 /etc/rc.local 中添加一行:fbset mymode(你在 fb.modes 中设置的名称)。
【讨论】:
您可以通过运行fbset 来输出当前设置,除了-s/--show 或-fb 之外没有其他参数:
# fbset
mode "1024x768-60"
# D: 65.003 MHz, H: 48.365 kHz, V: 60.006 Hz
geometry 1024 768 1024 768 16
timings 15384 160 24 29 3 136 6
hsync high
vsync high
rgba 5/11,6/5,5/0,0/0
endmode
您可以将其写入文件:
fbset >>/etc/local.fb.modes
编辑重命名模式,添加任何你想要的cmets;然后,您可以使用带有 -db 参数的新文件:
fbset -db /etc/local.fb.modes --all "1024x768-60"
您可以将该命令放入您的/etc/rc.local 以在每次启动时生效。
【讨论】:
提示:如果 /etc/rc.local 中的设置模式失败:
systemctl status rc-local.service -l
"open /dev/fb0: No such file or directory"
然后在设置模式之前简单地运行“fbset”1st:
/etc/rc.local
fbset
fbset -g 800 600 800 600 32
在 VMWare 中遇到过这个问题..
【讨论】: