在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

posted @ 2020-07-28 10:02  tccxy  阅读(2205)  评论(1编辑  收藏  举报