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 支持 Bifrost、Midgard 和 Valhalla 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。
您可以安装一些测试二进制文件来尝试它,例如 kmscube、glmark2、Mesa-demo 或 Mesa-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。
| 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