如何检查是否启用了帧缓冲区

Min*_*ael 4 framebuffer

我怎么知道我是否启用了帧缓冲区?我实际上不太明白帧缓冲区是什么。

我的/etc/initramfs-tools/conf.d/splash文件有这个:(echo FRAMEBUFFER=y因为我正在关注这个答案)。

显示了检测它是否已启用的两种方法。该ls -l /dev/fb*测试是肯定的,但grep -i "frame buffer" /var/log/syslog检测结果为阴性!哈哈哈哈哈XD

Ser*_*nyy 5

简而言之,内存的一部分负责包含屏幕或“框架”的当前外观,因此称为framebuffer.

在 Linux 下(如果我们还记得“一切都是文件”的 Unix 哲学)您可以(以 root 用户身份)写入的实际帧缓冲设备是/dev/fb0. 图形 X 服务器和其他几个程序,例如fbifbterm能够写入它。我在这个网站上用过这里来回答这样的问题:

如何自定义全屏控制台背景 (TTY)?

坦率地说,我不太确定为什么您链接的答案可以通过/etc/initramfs-tools/conf.d/splash. 根据,framebuffer支持的东西,会在内核模块被激活。例如,这是我的dmesg日志输出:它显示为帧缓冲区分配了内存,尽管我没有/etc/initramfs-tools/conf.d/splash

$ grep -i 'frame.*buffer' /var/log/dmesg                       
[    0.847413] vesafb: framebuffer at 0xd0000000, mapped to 0xffffc90001000000, using 3072k, total 3072k
[    1.016865] Console: switching to colour frame buffer device 128x48
[    1.185527] fb0: VESA VGA frame buffer device
[    7.648201] Console: switching to colour frame buffer device 170x48
[    7.730459] radeon 0000:01:05.0: fb0: radeondrmfb frame buffer device
Run Code Online (Sandbox Code Playgroud)

也许您链接的答案适用于前几年引用的解决方案,但不能保证该信息仍然相关 - linux 内核已添加对许多模块的支持并更改为支持许多不同的硬件,因此可能的解决方案已更改

考虑提出与 Nvidia 图形相关的实际问题。与弄清楚所有小细节相比,它会为您节省更多时间