我有一个RaspberryPi,并且希望在没有xserver的情况下全屏显示图像-因此请将其直接写入帧缓冲区。没问题

但是将其全屏设置是行不通的。

cat /sys/class/graphics/fb0/modes

产量:
U:1024x768p-0
U:1920x1200p-0
U:1920x1080p-0
U:608x684p-0

所以我用
fbset -xres 1920 -yres 1200 -match

导致
>>fbset
mode "1920x1200"
geometry 1920 1200 1920 1200 16
timings 0 0 0 0 0 0 0
rgba 5/11,6/5,5/0,0/16
endmode

如果我现在使用fbi显示图像,或仅填充帧缓冲区/dev/urandom >> /dev/fb0,则仅填充部分屏幕。显示部分的长宽比等正确,周围只有一个大的黑色边界。

如果我使用其他分辨率,则一切都会按预期运行,例如fbi中的stats-line变大等。

我做错了什么?

最佳答案

为fbset尝试以下格式:

fbset -fb /dev/fb0 -g 1920 1200 1920 1200 16

并检查您是否真正在查看fb0而不是fb1:
fbset -fb /dev/fb0

仔细检查实际设置的内容:
cat /sys/class/graphics/fb0/mode

还尝试使用以下命令运行fbi(同样,确保使用的是fb0):
fbi -d /dev/fb0 image.png

您还可以通过执行以下操作将设置强制放入fb0中:
echo U:1920x1200p-0 > /sys/class/graphics/fb0/mode

从技术上讲,这就是fbset要做的。
只要确保fb1不会搞砸。

最后,请确保您的控制台正在使用fb0。我敢肯定
con2fbmap 1

您可能还需要重新启动,因此请检查您的设置是什么:
cat /proc/cmdline

如果不是1920x1200,请更新为1920x200。我认为它位于树莓派的/boot/cmdline.txt中。对我来说,它是/boot/uEnv.txt。

10-08 00:35