一、资料
1.第三方开源内核下载地址:https://github.com/armbian/linux-rockchip
2.根文件系统下载地址:https://github.com/radxa-build/rock-5t/releases/download/rsdk-r5/rock-5t_bookworm_kde_r5.output_512.img.xz
3.kernel官网最新版内核(6.18)中才包含panthor驱动,mesa3D v24.1开始支持panthor驱动(panfrost/drm-shim/panfrost_noop.c)
二、准备
1.提取rootfs:下载完后解压img镜像文件,通过fdisk -l查看img分区,找到第三个分区开始扇区和扇区长度,通过dd命令将第三分区提取出来(如:dd if=rock-5t_bookworm_kde_r5.output_512.img of=rootfs.img bs=512 count=66142 skip=1542)。
2.修改root密码:挂载rootfs.img文件到/mnt目录,打开/mnt/etc/shadow文件更改root密码(密码需要hash算法转换,不会可以先从系统shadow文件中复制一个密码用)
3.配置内核defconfig:1)配置defconfig文件GPU驱动,关闭mali bifrost驱动并开启Panthor驱动( Device Drivers > Graphics support > Panthor (DRM support for ARM Mali CSF-based GPUs))。2)通过配置defconfig捆绑GPU固件文件到内核img内(CONFIG_EXTRA_FIRMWARE="mali_csffw.bin" CONFIG_EXTRA_FIRMWARE_DIR="drivers/gpu/arm/bifrost/")
4.配置内核设备树:关闭GPU(&gpu{status:disable};)开启panthor(&panthor{status:okey};)
三、编译内核
1.将开源内核解压到rk3588 sdk根目录并创建软连接kernel指向该目录(原SDK kernel也是指向kernel-6.1的软连接文件,删除即可)。
2.编译:./build.sh kernel
四、刷写镜像
1.由于本次移植没有编译完整镜像,需要先在HMI上刷写hmi 5.1版完整镜像文件。
2.刷写完镜像后再单独刷写通过第三方内核编译出来的boot.img和第三方img文件提取出来的三个分区镜像文件rootfs.img
五、确认驱动是否开启
1.登录系统后先创建一个普通用户(如:adduser test),将用户添加到/etc/sudoer文件内。
2.切换到普通用户内(su test)并设置好显示环境变量(export DISPLAY=:0),执行glxinfo | grep "OpenGL renderer",如能看到 Mali-G610 (Panfrost)表明开源GPU驱动已启用。