1. 程式人生 > 實用技巧 >在rk3399(rockpi 4b)上部署gpu的應用層驅動(linux-5.3)

在rk3399(rockpi 4b)上部署gpu的應用層驅動(linux-5.3)

之前介紹過gpu的驅動分為核心和應用層兩部分,之前一直5.3的核心完成了核心部分的配置,接下來進行使用者層部分的配置

安裝weston

weston 是負責對各種應用繪製的圖層進行合成的軟體框架,它是按照 Wayland 標準實現的,目標是替代在 Linux PC 端存在了很久的 X11,

如果對 Android 圖形系統比較瞭解的話,它相當於 Android 中的 HWC。

root@localhost:/home/gpu# apt install weston

安裝依賴庫

這是為了進一步安裝mesa做的準備

root@localhost:/home/gpu# apt install flex bison python3-mako libwayland-egl-backend-dev libxcb-dri3-dev libxcb-dri2-0-dev libxcb-glx0-dev libx11-xcb-dev libxcb-present-dev libxcb-sync-dev libxxf86vm-dev libxshmfence-dev libxrandr-dev libwayland-dev libxdamage-dev libxext-dev libxfixes-dev x11proto-dri2-dev x11proto-dri3-dev x11proto-present-dev x11proto-gl-dev x11proto-xf86vidmode-dev libexpat1-dev libudev-dev gettext mesa-utils xutils-dev libpthread-stubs0-dev ninja-build bc python-pip flex bison cmake git valgrind llvm llvm-8-dev python3-pip pkg-config zlib1g-dev wayland-protocols meson

安裝libdrm

libdrm 是一個封裝了和 Linux Kernel DRM 驅動互動的 api 庫

#拉取
root@localhost:/home/gpu# git clone git://anongit.freedesktop.org/mesa/drm
 
#編譯安裝
root@localhost:/home/gpu# cd drm
root@localhost:/home/gpu/drm# meson build --prefix=/usr
root@localhost:/home/gpu/drm# ninja -C build
root@localhost:/home/gpu/drm# sudo -E ninja -C build install

安裝 mesa

mesa 中實現了 Panfrost GPU 驅動的 userspace 部分,它向下操作核心中的 GPU 驅動,向上提供標準的 opengl 介面供各種繪圖應用使用

#拉取庫
root@localhost:/home/gpu/drm# git clone git://anongit.freedesktop.org/mesa/mesa
 
#編譯--這裡需要注意:mesa要求0.46+的版本meson可以用pip3 install --user meson進行安裝
root@localhost:/home/gpu/mesa# /root/.local/bin/meson -Ddri-drivers= -Dvulkan-drivers= -Dgallium-drivers=panfrost,kmsro -Dlibunwind=false -Dprefix=/usr build/ 
root@localhost:/home/gpu/mesa# ninja -C build/
root@localhost:/home/gpu/mesa# sudo ninja -C build/ install

到這裡所有的使用者層的gpu庫就安裝完了,重啟

執行 cat /proc/interrupt 可以看到 gpu和job 的中斷數不斷上漲,至此 gpu的所有驅動安裝完成

我這裡執行的aarch64-ubuntu18.04

介面採用的是gnome