ARM Mali GPU

跳转到:导航搜索

上游软件,又称 Lima/Panfrost

内核模块

内核模块包含在 kernel 5.2+ 中。但是,您需要 kernel 5.10+ 才能支持 Bifrost: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=72ef7fe96fd20d3d0e538e165b393819f99870ad

  • Lima 支持 Utgard Mali GPU:Mali-400 / Mali-450 GPU
  • Panfrost 支持 BifrostMidgardValhalla Mali GPU:Mali-Gxx GPU 和 Mali-T6xx / Mali-T7xx / Mali-T8xx GPU

用户空间

对于用户空间,您需要 Mesa 19.2+(19.1.x 对于 lima/panfrost 来说不够稳定或可用)和 kernel 5.2+。要安装的软件包是 Mesa-gallium
您可以安装一些测试二进制文件来尝试它,例如 kmscubeglmark2Mesa-demoMesa-demo-x

Mesa/Lima

Mesa/Lima 支持 Arm Mali Utgard 400/450 嵌入式 GPU。

对于 LIMA,您可能需要通过创建 /etc/X11/xorg.conf.d/20-lima.conf 文件来调整 xorg 配置:(来源: https://gitlab.freedesktop.org/lima/web/-/blob/519a5b26596cfe46c3e4dc80d802780b2b3c61b1/README.md#xorgconf

Section "ServerFlags"
       Option  "AutoAddGPU" "off"
       Option "Debug" "dmabuf_capable"
EndSection

Section "OutputClass"
       Identifier "Lima"
       MatchDriver "<display DRM driver>"
       Driver "modesetting"
       Option "PrimaryGPU" "true"
EndSection

您需要将 <display DRM driver> 替换为正确的 DRM 驱动程序名称,具体取决于您的 SoC

  • Allwinner:sun4i-drm
  • Amlogic:meson
  • Ericsson MCDE:mcde
  • Exynos:exynos
  • Rockchip:rockchip
  • Tinydrm:tinydrm

Mesa/Panfrost

Mesa/Panfrost 支持 Arm Mali Midgard、Bifrost 和 Valhalla GPU。

Mali GPU 的 Mesa 支持矩阵
GPU 在 SoC 中找到 Mesa 版本 说明
T600 Exynos 5250 24.1+
T620 Exynos 5420/5422/5430/5800 22.3+
T720 Exynos 7580, MT6735, 和 MT6753 20.0+
T760 RK3288 19.3+
T820 S912 19.3+
T830 Kirin 65x 22.0+
T860 RK3399 19.3+
T880 Kirin 95x 和 MediaTek Helio X20/X27 22.0+
G31 Amlogic S905, RK3326 和 Allwinner H616 SoC 20.3 kernel 5.10+
G51 Kirin 710 22.0
G52 Amlogic S922, RK3530, Kirin 810 和 Helio P65/G70/G80/G85 20.3 kernel 5.10+
G52r1 RK3566 和 RK3568 21.2
G57 MediaTek MT8192 22.2+ kernel 5.20+
G71 Exynos 8895 22.0
G72 Exynos 7 9610, Exynos 9 9810, Helio P60/P70 和 Kirin 970 20.3 kernel 5.10+
G76 Helio G90T/G95 22.0
G310 RK3688 24.1+ kernel 6.10+
G610 RK3588 24.1+ kernel 6.10+
G720 CIX CP8180 25.1+ kernel 6.18+
G725 25.1+ kernel 6.18+

如果您尝试在不受支持的 Mali 版本上运行它,您将收到 panfrost: Unsupported model %X 错误消息。(请参阅最新支持的型号列表: [1])。

下游软件

内核模块

安装

Mali 内核软件包可在 devel:ARM:Factory:Contrib:Mali 中找到

  • mali-bifrost-kmp:Mali-Gxx GPU 内核模块
  • mali-midgard-kmp:Mali-T6xx / Mali-T7xx / Mali-T8xx GPU 内核模块。请注意,mali-bifrost-kmp 应该也能在这些平台上工作,因为内核驱动程序源代码到目前为止是共享的
  • mali-utgard-kmp:Mali-400 / Mali-450 GPU 内核模块

您可能需要更新您的设备树才能启用它。您可以使用以下命令检查您的设备树中是否已经存在 mali 节点:

sudo dtc -I fs /proc/device-tree | grep mali

有关如何添加 mali 节点的详细信息,请参阅软件包源代码中的 driver/product/kernel/Documentation/devicetree/bindings/* 文件: devel:ARM:Factory:Contrib:Mali

以下是如何为 HiKey960 添加 mali 节点的示例: https://git.linaro.org/people/manivannan.sadhasivam/hikey.git/commit/?id=a20633b159f885bc8a62234831e9b7a0151a151b

参数

您可以使用以下命令设置 power_policy/sys/module/mali_kbase/drivers/platform:mali/e82c0000.mali/power_policy

  • coarse_demand(默认)
  • always_on

二进制用户空间

安装

请参阅 https://developer.arm.com/products/software/mali-drivers/user-space 以下载并安装取决于您主板的二进制库。


启用 OpenCL

安装内核驱动程序和用户空间库后,您可以使用以下命令启用 OpenCL 支持:

echo "libmali.so" | sudo tee /etc/OpenCL/vendors/mali.icd

并检查它是否已找到:

sudo clinfo

参见