我有一个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。