OpenHarmony适配开源图形驱动(旧框架)---RK3568
本文主要介绍Open Harmony如何接入开源图形驱动,在OpenHarmony上使能开源GPU。我们使用的基线版本是基于openharmony的闭源驱动+kernel4.19+Weston(旧框架)。
1.刷入openharmonyrk分支版本,确保基线闭源GPU使能且屏幕能正常点亮
1)基线版本是RK分支的OpenHarmony版本,选用此版本的原因是,该版本使能了闭源的GPU。
2)拉取代码,并进行编译与烧录,确定基线版本可以正常点亮。
拉取OH代码(我使用的是Ubantu20.0.4):
$ repo init -u https://gitee.com/openharmonyrk/manifest -b master -m rk.xml --no-repo-verify
$ repo sync -c
$ repo forall -c 'git lfs pull'
安装依赖工具,编译器,并进行编译,
$ sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev genext2fs liblz4-tool libtinfo5 lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby
$ sudo apt install openjdk-17-jre-headless
$ bash build/prebuilts_download.sh
$ ./build.sh --product-name rk3568 --ccache
编译完成后如下:
编译完成后进行烧录,生成的镜像文件在\out\ohos-arm-release\packages\phone\images,烧录时依次选择对应的固件,点击执行耐心等待下载完成即可
2.修改kernel5.10内核并重新编译
由于RK分支使用的是4.19的内核,1.10后主干才支持kernel5.10,因此编译kernel5.10需要采用的是Master 1.10以后的版本,拉取代码和编译的过程同上,此处不再描述(只有本小节使用的是主干1.10以后的版本,其它小节均使用的是RK分支版本)。编译完成后进入kernel 5.10源码路径\out\kernel\src_tmp\linux-5.10,进行如下操作:
2.1 修改DTS
打开.\out\kernel\src_tmp\linux-5.10\arch\arm64\boot\dts\rockchip\rk3568.dts进行修改,适配开源panfrost。diff如下:
修改后如下:
gpu: gpu@fde60000 {
compatible = "rockchip, rk3568-mali", "arm,mali-bifrost";
reg = <0x0 0xfde60000 0x0 0x2000