在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