insmod bifrost_kbase.ko fail, can't run glmak2-es2

固件类型:自行编译的固件
SDK包名称:rk356x_linux_release_20211019
SDK修改内容:arch/arm64/boot/dts/rockchip/rk3568-firefly-port.dtsi:
Log日志:compile_kernel.log

本帖最后由 qianqian321 于 2022-8-1 14:55 编辑

  1. cd kernel,
    make menuconfig CONFIG_MALI_BIFROST=m
  2. cd ../
    ./build.sh uboot

./build.sh kernel
./build.sh recovery
./mkfirmware.sh
./build.sh rawimg
3. use balena-etcher-electron-1.4.9-linux-x64 flash to SD, then power on the board
4. after boot, insmod bifrost_kbase.ko
encounter follow error:
dev_pm_opp_set_regulators: no regulator (shadercores) found: -19
devfreq fde60000.gpu: Couldn’t update frequency transition information.

and can’t run glmark2-es2:
arm_release_ver of this libmali is ‘g2p0-01eac0’, rk_so_ver is ‘4’.
arm_release_ver of this libmali is ‘g2p0-01eac0’, rk_so_ver is ‘4’.
Error: eglInitialize() failed with error: 0x3001
arm_release_ver of this libmali is ‘g2p0-01eac0’, rk_so_ver is ‘4’.
Error: eglInitialize() failed with error: 0x3001
Error: main: Could not initialize canvas

另外如果我采用built-in的方式,将mali直接编译进内核,即直接运行build.sh,这样启动后是可以运行的glmark2-es2的。

tchip_askquestions
compile_kernel.log (9.53 KB)

有没有人可以帮我看看,非常感谢

你一定要用模块方式?
你编译成模块后有没有把ko文件安装到板子里?

Liuth 发表于 2022-8-1 15:40
你一定要用模块方式?
你编译成模块后有没有把ko文件安装到板子里?

insmod bifrost_kbase.ko
我执行了这句

嗯,我要用模块的方式的

补充信息:
用模块加载的方式,在dmesg搜到的mali相关的打印和built-in的打印是一样的:
[ 700.571013] mali fde60000.gpu: Kernel DDK version g7p1-01bet0
[ 700.571365] mali fde60000.gpu: Looking up mali-supply from device tree
[ 700.571451] mali fde60000.gpu: Linked as a consumer to regulator.18
[ 700.571457] mali fde60000.gpu: Looking up shadercores-supply from device tree
[ 700.571467] mali fde60000.gpu: Looking up shadercores-supply property in node /gpu@fde60000 failed
[ 700.571532] mali fde60000.gpu: Looking up mali-supply from device tree
[ 700.571571] mali fde60000.gpu: Looking up shadercores-supply from device tree
[ 700.571579] mali fde60000.gpu: Looking up shadercores-supply property in node /gpu@fde60000 failed
[ 700.571603] mali fde60000.gpu: dev_pm_opp_set_regulators: no regulator (shadercores) found: -19
[ 700.571720] mali fde60000.gpu: leakage=6
[ 700.572173] mali fde60000.gpu: avs=0
[ 700.572186] W : [File] : drivers/gpu/arm/bifrost/platform/rk/mali_kbase_config_rk.c; [Line] : 112; [Func] : kbase_platform_rk_init(); power-off-delay-ms not available.
[ 700.572603] mali fde60000.gpu: GPU identified as 0x2 arch 7.4.0 r1p0 status 0
[ 700.572685] mali fde60000.gpu: No priority control manager is configured
[ 700.572692] mali fde60000.gpu: No memory group manager is configured
[ 700.573412] mali fde60000.gpu: l=-2147483648 h=2147483647 hyst=0 l_limit=0 h_limit=0 h_table=0
[ 700.577607] mali fde60000.gpu: Probed as mali0

raw_no_built_in.zip (40.1 KB)

arm_release_ver of this libmali is ‘g2p0-01eac0’, rk_so_ver is ‘4’.
arm_release_ver of this libmali is ‘g2p0-01eac0’, rk_so_ver is ‘4’.
Error: eglInitialize() failed with error: 0x3001
arm_release_ver of this libmali is ‘g2p0-01eac0’, rk_so_ver is ‘4’.
Error: eglInitialize() failed with error: 0x3001
Error: main: Could not initialize canvas

我试过了没问题,步骤如下:
SDK 更新到最新
CONFIG_MALI_BIFROST改为m并保存
./build.sh extboot 编译内核
sudo upgrade_tool di -b extboot.img 烧录内核
执行lsmod可以看到系统已经自动找到模块并已经在使用了,根本无需手动insmod
执行glmark2-es2没有问题

Liuth 发表于 2022-8-2 09:28
我试过了没问题,步骤如下:
SDK 更新到最新
CONFIG_MALI_BIFROST改为m并保存

请问这个extboot.img是包含uboot, kernel, rootfs的吗?你也是通过烧到SD卡启动的吗?

不是,extboot.img就是单纯内核,如果你要用sd卡,那你修改完成后执行./build.sh rawimg,编译完整固件

Liuth 发表于 2022-8-2 14:34
不是,extboot.img就是单纯内核,如果你要用sd卡,那你修改完成后执行./build.sh rawimg,编译完整固件

sudo upgrade_tool di -b extboot.img 烧录内核
请问你这个烧录内核,是烧到开发板上吗,是可以只烧录内核的吗?文件系统呢?

qianqian321 发表于 2022-8-2 14:38
sudo upgrade_tool di -b extboot.img 烧录内核
请问你这个烧录内核,是烧到开发板上吗,是可以只烧录内 …

我是装在emmc的,所以我可以只烧录内核
你的话需要把你步骤中的./build.sh kernel替换成./build.sh extboot,然后其他步骤不变,最后生成rawimg烧录sd卡

Liuth 发表于 2022-8-2 14:50
我是装在emmc的,所以我可以只烧录内核
你的话需要把你步骤中的./build.sh kernel替换成./build.sh extb …

我更新SDK的时候报以下错:
error: buildroot/dl/: discarding 43 commits removed from upstream
error: Cannot checkout buildroot-dl

error: Exited sync due to checkout errors

请问你可知道是什么原因?

Liuth 发表于 2022-8-2 14:50
我是装在emmc的,所以我可以只烧录内核
你的话需要把你步骤中的./build.sh kernel替换成./build.sh extb …

另外我insmod bifrost_kbase.ko之后,是可以运行glmark2-es2-drm的,请问这个和glmark2-es2是什么区别,对于验证gpu有什么区别?

qianqian321 发表于 2022-8-2 15:10
我更新SDK的时候报以下错:
error: buildroot/dl/: discarding 43 commits removed from upstream
erro …

关于这个error,我删掉buildroot/dl/, 再重新同步就可以了,:slight_smile: