【每周学习摘要13(23/12/16-23/12/22)】

RK3566 Drm Panel 驱动配置

1.dt-binding解读-2022-03-24 RK3566 MIPI屏 调试记录,panel-init-sequence 命令格式介绍
2.配置生成工具-original_mipi_init_sequence-to-rk_dts_panel_init_sequence-convert Public
panel节点是挂载在dsi0节点下面,如果对应spi屏幕的drm驱动,则是将panel节点挂载在spi0节点下面,参考嵌入式Linux使用TFT屏幕:使用树莓派4B的MIPI-DSI接口点亮ST7701S屏幕

关于怎么解读屏幕参数和时序,然后填写dts,参考RK3588-MIPI屏幕调试笔记:RK3588-MIPI-DSI之屏参配置
再具体的话,可以参考rockchip官方bsp仓库-drivers/gpu/drm/panel/panel-simple.c
arch/arm64/boot/dts/rockchip

eDP屏幕相关

RK3568 EDP接口调试

RockChip编译教程

其实可以单独下载github上rockchip-linux的官方bsp linux,u-boot仓库单独编译
也可以设置上次那个H616里面的工具链
但是在make.sh的第273行需要把none加进去
然后需要clone rkbin到同级目录

CROSS_COMPILE_ARM64=$(cd `dirname ${CROSS_COMPILE_ARM64}`; pwd)"/aarch64-none-linux-gnu-"

具体操作可以看toybrick的仓库里面的make.sh,也可以使用官方推荐的
比如
软件开发/U-Boot

具体编译

Rockchip-linux kernel-5.10

git clone https://github.com/rockchip-linux/kernel.git -b develop-5.10 --depth 1
cd kernel
ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- make rockchip_linux_defconfig
ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- make -j32

Rockchip-linux uboot

直接根据toybrick的进行编译,clone 他们自己的编译工具链后然后照做

./make.sh rk3566

rkdevelop-tool

需要切换到gcc-7/g++-7编译
具体操作自己看rkdeveloptool

在rk3566上编译taisei-v1.3

没什么好说的,甚至可以用自带的SDL
之前我以为自带的SDL有bug,其实是因为可能在mingw上面编译的缘故,编译完了有些东西针对mingw平台的没开,然后就启动不了窗口,只能通过pacman安装
想不到1G内存+tf卡这种丐版配置都能编译SDL2+taiseiv1.3
但是taisei和extreme-tux-tracer这两个游戏,以及glxinfo监测的时候都只察觉到了llvmpipe 这个软件渲染器。
但是glmark2-es2就可以完美利用GLES2
后来我才知道原来GLES2 API不一定需要EGL作为后端,也可以在GLX上面使用,然后glmark2-es2就是在X11上面通过GLX使用了GLES2的API
taisei和etr估计在链接的时候就用的是gl的API,所以fallback了到llvmpipe上面的api(mesa库提供的)
然后他们在运行的时候会显示

libGL error: unable to load driver: rockchip_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: rockchip

但是跑glmark2-es2就不会出现这些
根据那个Richardn2002兄弟的在stm32MP157上的源码STM32MP157F-DK2/blob/main/src/gl-test.c
可以知道,程序链接时需要链接GLESv2库而非GL,然后gl头文件需要用GLES2/gl2.h而非GL/gl.h
看SDL2的做法好像是用他们自己的头文件套了一层?这个有待研究。先准备math241 mid3先
然后找到的Xorg加载GLX的流程:Firefly3568-libGL error: failed to load driver: rockchip
3588上运行qt报错,请指教
GPU/Driver/libGL error on Rock 4C plus on Debian

GL4ES

将gl call 转换成gles call,且自己创建一个context。
用的时候把编译产生的libGL.so.1放到LD_LIBRARY_PATH就行。
然后只能运行gles2.0
然后可以玩etr但是很鬼畜,玩不了taisei

查看GPU使用率

RK查看gpu占用率方法

cat /sys/devices/platform/fde60000.gpu/devfreq/fde60000.gpu/load

转接板

st7701的屏幕:(0.5mm pitch),fl7703np(0.3mm pitch)

fl7703np转接板

排线 31pin 0.3mm 3块钱一根
31pin 0.3mm 排座 0.3一个,要两个
然后是3.3V转1.8V点LDO芯片,芯片准备用ME6206A18XG,输出电压1.8V,那个屏幕没说需要多大电流,然后SOT23-3封装最大功率300mW,所以没关系的。主要这个也便宜
这个转接板成本加起来可能就5块钱,所以还好
注意转接板要连接
泰山派上面的屏幕背光驱动芯片是SY7201,电流计算公式是I=0.2V/R
所以说驱动st7701s 20mA需要200mV/20mA=10Ohm作为反馈电阻,可以买两个20欧的电阻并联或者直接一个10欧电阻

Leave a Reply

Your email address will not be published. Required fields are marked *