DietPi配置问题(1)

2020-08-11 18:09:25 浏览数 (1)

代码语言:javascript复制

来源是这里,一脸懵逼,都不晓得是什么东西

vc4-kms-v3d是什么东西

代码语言:javascript复制
https://gitlab.freedesktop.org/mesa/mesa/

Mesa的库

提供了两种GPU模型的驱动程序代码。VideoCore IV驱动程序的代号为VC4,VideoCore VI驱动程序的代号为V3D。没有下游存储库-所有开发都直接在上游进行,这为最终用户带来了许多好处:

  1. 对于喜欢冒险的用户来说,试用驱动程序的开发版本相对容易。
  2. 通过跟踪带有V3DVC4标签的合并请求来跟踪开发活动非常简单。

目前,V3D驱动程序公开了OpenGL ES 3.0和OpenGL 2.1。如上所述,VideoCore VI GPU可以执行OpenGL ES 3.2,但不能执行OpenGL 3.0,因此将来的功能工作将集中在OpenGL ES上。

取决于实际驱动视频缩放器(HVS),像素阀和输出显示块(HDMI / VEC / DSI / DPI)的因素。

对于vc4-fkms-v3d,此内容仍保留在固件中,并且该固件仍允许DispmanX或MMAL添加额外的层。

有了vc4-kms-v3d,Linux内核就可以发挥很多作用,并且DRM禁止多个客户端同时添加层。

代码语言:javascript复制
https://www.kernel.org/doc/html/latest/gpu/drm-internals.html

要想看懂这个,要参考这一份文档

现在,您无法使用fkms的功能更少,主要功能是精确的时间戳记。

可以实现大多数其他功能。

如果您发现缺少的东西,我们将竭尽所能。

为Pi4添加vc4-kms-v3d驱动程序仍在任务列表中,但主要是出于完整性的考虑,而不是为了尽快在默认情况下切换到该驱动程序。

KMS是指Kernel Mode-Setting,理论上该模式会更有效率,因为是通过内核输出的,而Fake KMS则有更好的兼容性,比如打开Full KMS后使用realvnc远程会黑屏等。 需要注意的是,打开该选项可能会导致标准摄像头或者基于OpenGL ES(OpenGL的子集)的视频渲染软件失效(比如kodi),不支持DSI接口的官方显示屏。

代码语言:javascript复制
sudo raspi-config
//打开Advanced Options→GL Driver,选择第一GL (Full KMS) Desktop Drivers或第二选项GL (Fake KMS) Desktop Driver

测试是否打开

代码语言:javascript复制
sudo apt-get install mesa-utils
glxgears

如果使用的是标准的软件渲染模式,可见三个齿轮运转大概30帧/s并伴有闪烁卡顿,颜色显示也不正常。如果使用的是opengl硬件加速模式,则有60帧/s,不会伴有闪烁,颜色也显示正常。

vc4-fkms-v3d 是树莓派的开源 GPU 驱动,支持 OpenGL 2.1。

正确配置的情况下 mesa 应该使用 V3D 驱动而不是 llvmpipe,后者使用的是 CPU。

树莓派本来就贫弱的 CPU 并不经得起桌面渲染的折腾。

首先需要切换到开源驱动。前往 raspi-config -> Advanced Options -> GL Driver -> GL (Fake KMS)。树莓派 4 是默认使用这个开源驱动的。

然后我在桌面环境使用 screenfetch 的时候发现桌面渲染使用的是 llvmpipe 而不是 V3D。这个问题出在 /usr/share/X11/xorg.conf.d/99-fbturbo.conf 这个文件。理论上从闭源驱动切换至开源驱动的时候 raspi-config 应当自动修改这个文件。我曾尝试直接删除这个文件,虽然这样可以使用 V3D 驱动了,但是无法自动检测屏幕分辨率,Chrome 的硬件加速也不正常。可行的修改方式是进入这个文件,删除 Driver “fbturbo” 这一行,保留其他设置。

代码语言:javascript复制
# This is a minimal sample config file, which can be copied to
# /etc/X11/xorg.conf in order to make the Xorg server pick up
# and load xf86-video-fbturbo driver installed in the system.
#
# When troubleshooting, check /var/log/Xorg.0.log for the debugging
# output and error messages.
#
# Run "man fbturbo" to get additional information about the extra
# configuration options for tuning the driver.
 
Section "Device"
        Identifier      "Allwinner A10/A13 FBDEV"
        # Driver          "fbturbo"
        Option          "fbdev" "/dev/fb0"
 
        Option          "SwapbuffersWait" "true"
EndSection

0 人点赞