我正在探索linux帧缓冲区,/dev/fb0,当我sudo fbset -i
从 Fedora 23 上的 Gnome 3(使用终结者)中的虚拟控制台运行时,它报告帧缓冲区的尺寸为 1280x768,但我的 Gnome 桌面分辨率为 1680x1050。为什么是FB集告诉我帧缓冲区是 1280x768?
完整输出fbset -i
:
mode "1280x768"
geometry 1280 768 2048 2048 32
timings 0 0 0 0 0 0 0
rgba 8/16,8/8,8/0,0/0
endmode
Frame buffer device information:
Name : svgadrmfb
Address : (nil)
Size : 16777216
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 1
YPanStep : 1
YWrapStep : 0
LineLength : 8192
Accelerator : No
答案1
简短的回答您正在一个显示中运行该命令,而 fbset 正在告诉您有关另一显示的信息。这两个显示器分别是帧缓冲区,哪个运行 tty? CLI 屏幕和显示管理器,它提供您的 Gnome 会话。
较长的答案这帧缓冲区在启动时使用,对于文本控制台,您通常使用Alt- F1、F2等访问。
侏儒是一个显示管理器它还为图形应用程序提供了 X 服务器。它们大多彼此独立,但在大多数系统中,它们共享一个通用的“直接渲染管理器”或 DRM 驱动程序。这允许您在它们之间进行交换,而无需重置视频硬件或看到奇怪的图形垃圾(就像我们几年前必须做的那样,当时 X 服务器完全在用户空间中运行并直接与硬件对话)。它还允许从基于帧缓冲区的启动屏幕到基于显示管理器的问候屏幕的平滑过渡。
您可能会发现,当您Alt-F2进入framebuffer tty2 控制台时,然后登录并尝试使用fbset
它会更有意义。尽管我需要以一些警告作为结束。它可能仍然无法像您想象的那样工作。许多现代帧缓冲区实际上并不改变硬件分辨率,而只是改变该屏幕的“窗口”。因此,您可以在 fbset 中选择较低的分辨率,但它不会使图像变大,它只会将文本输出限制为与屏幕左上角对齐的较小块。如果有人能回答如何使其正常工作,我会非常感兴趣。
如果您真的想深入挖掘,请查看这个网站。有一张漂亮的图片将所有的东西联系在一起。
答案2
Gnome 正在使用不同的帧缓冲区设备,并更改其分辨率;而 fb0 是虚拟控制台使用的。