6.1 Kernel GPU firmware update
-
Version 6.1 of the kernel requires updating the GPU's bin file by replacing the attached bin file in the system /lib/firmware directory. Otherwise, the old bin file will cause a black screen during system startup.
mali_csffw.bin -
@george Many thanks for sharing.
I will try it with kernel 6.1
-
Tried to compile kernel 6.1 but fail.
make[4]: *** [scripts/Makefile.build:500: drivers/media/platform/rockchip] Error 2 make[3]: *** [scripts/Makefile.build:500: drivers/media/platform] Error 2 make[2]: *** [scripts/Makefile.build:500: drivers/media] Error 2 make[1]: *** [scripts/Makefile.build:500: drivers] Error 2 make: *** [Makefile:2012: .] Error 2 cp: cannot stat 'arch/arm64/boot/Image.gz': No such file or directory cp: cannot stat 'arch/arm64/boot/Image': No such file or directory sed: can't read modules.order: No such file or directory make: *** [Makefile:1576: __modinst_pre] Error 2 cp: cannot stat 'vmlinuz': No such file or directory cp: cannot stat 'Image': No such file or directory
and
CC drivers/media/platform/rockchip/ispp/ispp.o AR drivers/media/firewire/built-in.a AR drivers/media/platform/rockchip/rkisp1/built-in.a AR drivers/media/spi/built-in.a CC [M] drivers/media/spi/cxd2880-spi.o cc1: all warnings being treated as errors make[6]: *** [scripts/Makefile.build:250: drivers/media/platform/rockchip/cif/capture.o] Error 1 make[5]: *** [scripts/Makefile.build:500: drivers/media/platform/rockchip/cif] Error 2 make[5]: *** Waiting for unfinished jobs.... AR drivers/media/test-drivers/built-in.a AR drivers/media/radio/built-in.a
CC [M] drivers/media/tuners/tda8290.o CC [M] drivers/media/tuners/tda9887.o CC drivers/media/common/videobuf2/videobuf2-dma-contig.o CC drivers/media/v4l2-core/v4l2-i2c.o drivers/media/platform/rockchip/cif/capture.c:4929:6: error: conflicting types for ‘rkcif_do_stop_stream’ due to enum/integer mismatch; have ‘void(struct rkcif_stream *, unsigned int)’ [-Werror=enum-int-mismatch] 4929 | void rkcif_do_stop_stream(struct rkcif_stream *stream, | ^~~~~~~~~~~~~~~~~~~~ In file included from drivers/media/platform/rockchip/cif/capture.c:24: drivers/media/platform/rockchip/cif/dev.h:934:6: note: previous declaration of ‘rkcif_do_stop_stream’ with type ‘void(struct rkcif_stream *, enum rkcif_stream_mode)’ 934 | void rkcif_do_stop_stream(struct rkcif_stream *stream, | ^~~~~~~~~~~~~~~~~~~~ drivers/media/platform/rockchip/cif/capture.c:6090:5: error: conflicting types for ‘rkcif_do_start_stream’ due to enum/integer mismatch; have ‘int(struct rkcif_stream *, unsigned int)’ [-Werror=enum-int-mismatch] 6090 | int rkcif_do_start_stream(struct rkcif_stream *stream, unsigned int mode) | ^~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/rockchip/cif/dev.h:932:5: note: previous declaration of ‘rkcif_do_start_stream’ with type ‘int(struct rkcif_stream *, enum rkcif_stream_mode)’ 932 | int rkcif_do_start_stream(struct rkcif_stream *stream, | ^~~~~~~~~~~~~~~~~~~~~ CC [M] drivers/media/dvb-frontends/l64781.o CC [M] drivers/media/dvb-frontends/lg2160.o CC [M] drivers/media/tuners/tea5761.o
-
反复测试了几次,发现是RTW8852 网卡的模块编译不通过,难不成和我换网卡有关系么?
make[2]: *** [scripts/Makefile.build:500: drivers/media] Error 2 make[1]: *** [scripts/Makefile.build:500: drivers] Error 2 make: *** [Makefile:2012: .] Error 2 CALL scripts/checksyscalls.sh CC drivers/media/platform/rockchip/cif/capture.o CC [M] drivers/net/wireless/rockchip_wlan/rtw8852be/core/rtw_vht.o drivers/media/platform/rockchip/cif/capture.c:4929:6: error: conflicting types for ‘rkcif_do_stop_stream’ due to enum/integer mismatch; have ‘void(struct rkcif_stream *, unsigned int)’ [-Werror=enum-int-mismatch] 4929 | void rkcif_do_stop_stream(struct rkcif_stream *stream, | ^~~~~~~~~~~~~~~~~~~~ In file included from drivers/media/platform/rockchip/cif/capture.c:24: drivers/media/platform/rockchip/cif/dev.h:934:6: note: previous declaration of ‘rkcif_do_stop_stream’ with type ‘void(struct rkcif_stream *, enum rkcif_stream_mode)’ 934 | void rkcif_do_stop_stream(struct rkcif_stream *stream, | ^~~~~~~~~~~~~~~~~~~~ drivers/media/platform/rockchip/cif/capture.c:6090:5: error: conflicting types for ‘rkcif_do_start_stream’ due to enum/integer mismatch; have ‘int(struct rkcif_stream *, unsigned int)’ [-Werror=enum-int-mismatch] 6090 | int rkcif_do_start_stream(struct rkcif_stream *stream, unsigned int mode) | ^~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/rockchip/cif/dev.h:932:5: note: previous declaration of ‘rkcif_do_start_stream’ with type ‘int(struct rkcif_stream *, enum rkcif_stream_mode)’ 932 | int rkcif_do_start_stream(struct rkcif_stream *stream, | ^~~~~~~~~~~~~~~~~~~~~ CC drivers/clocksource/timer-of.o CC drivers/clocksource/timer-probe.o drivers/net/wireless/rockchip_wlan/rtw8852be/core/rtw_vht.c: In function ‘rtw_reattach_vht_ies’: drivers/net/wireless/rockchip_wlan/rtw8852be/core/rtw_vht.c:1419:27: error: the comparison will always evaluate as ‘true’ for the address of ‘IEs’ will never be NULL [-Werror=address] 1419 | if (pnetwork->IEs != NULL) { | ^~ In file included from drivers/net/wireless/rockchip_wlan/rtw8852be/include/drv_types.h:27, from drivers/net/wireless/rockchip_wlan/rtw8852be/core/rtw_vht.c:17: drivers/net/wireless/rockchip_wlan/rtw8852be/include/wlan_bssdef.h:249:13: note: ‘IEs’ declared here 249 | u8 IEs[MAX_IE_SZ]; /* (timestamp, beacon interval, and capability information) */ | ^~~ cc1: all warnings being treated as errors make[6]: *** [scripts/Makefile.build:250: drivers/net/wireless/rockchip_wlan/rtw8852be/core/rtw_vht.o] Error 1 make[5]: *** [scripts/Makefile.build:500: drivers/net/wireless/rockchip_wlan/rtw8852be] Error 2 make[4]: *** [scripts/Makefile.build:500: drivers/net/wireless/rockchip_wlan] Error 2 make[3]: *** [scripts/Makefile.build:500: drivers/net/wireless] Error 2 make[2]: *** [scripts/Makefile.build:500: drivers/net] Error 2 make[2]: *** Waiting for unfinished jobs.... CC drivers/clocksource/mmio.o CC drivers/clocksource/timer-rockchip.o CC drivers/clocksource/arm_arch_timer.o CC drivers/clocksource/dummy_timer.o CC drivers/media/platform/rockchip/hdmirx/rk_hdmirx_class.o CC drivers/media/platform/rockchip/hdmirx/rk_hdmirx.o CC drivers/media/platform/rockchip/hdmirx/rk_hdmirx_cec.o AR drivers/clocksource/built-in.a CC drivers/media/platform/rockchip/hdmirx/rk_hdmirx_hdcp.o cc1: all warnings being treated as errors make[6]: *** [scripts/Makefile.build:250: drivers/media/platform/rockchip/cif/capture.o] Error 1 make[5]: *** [scripts/Makefile.build:500: drivers/media/platform/rockchip/cif] Error 2 make[5]: *** Waiting for unfinished jobs.... AR drivers/media/platform/rockchip/hdmirx/built-in.a make[4]: *** [scripts/Makefile.build:500: drivers/media/platform/rockchip] Error 2 make[3]: *** [scripts/Makefile.build:500: drivers/media/platform] Error 2 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [scripts/Makefile.build:500: drivers/media] Error 2 make[1]: *** [scripts/Makefile.build:500: drivers] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:2012: .] Error 2 cp: cannot stat 'arch/arm64/boot/Image.gz': No such file or directory cp: cannot stat 'arch/arm64/boot/Image': No such file or directory sed: can't read modules.order: No such file or directory make: *** [Makefile:1576: __modinst_pre] Error 2 cp: cannot stat 'vmlinuz': No such file or directory cp: cannot stat 'Image': No such file or directory
-
This post is deleted! -
@plumlis
目前看是编译环境引起的,编译器的版本问题导致,还在处理中。 -
@george x86环境可以编译吗?我可以弄个wsl的ubuntu 22.04 试试
-
@plumlis
可以。 -
最后我自己弄了个 22.04 的 USB 启动盘,在那个系统下编译通过了。
不过启动后加载这个 firmware 的确可以进系统,但是问题有点多。mesa 似乎也得更新对应版本,不然 panfrost 打不开,wayland 下 gtk 4 的东西都无法启动。
能力有限,还是等你们官方放出测试好的内核吧。
-
@plumlis
panthor的驱动最近在同步测试,很快就会发布。 -
@plumlis
同步最新代码,6.1的内核目前已经可以本机编译。 -
@george 昨天已经看到了,辛苦
panthor的驱动是需要 mesa 编译实现吗,我看核心代码里已经有了。 -
@plumlis
内核需要修改增加驱动支持。应用层驱动已经有各个版本的ppa源支持。 -
刚看到github更新了,立即clone 下来开始编译,结果新内核启动后黑屏了。
具体表现就是启动会显示 logo,但是会直接黑屏,不出现 gdm,按下关机键会回到命令行看到关机停止服务的各种指令。
我应该是把新的 firmware 放到目录了,但是感觉像是你说的没 firmware 的黑屏。
今天很晚了,明天再折腾研究一下。
-
@plumlis
内核默认启用了panther的GPU驱动,需要先把mesa更新到24.02版本,否则就会黑屏。sudo add-apt-repository ppa:oibaf/graphics-drivers sudo apt update sudo apt-get dist-upgrade
-
经过更新mesa终于可以进系统了。
顺便一提这个firmware的路径不是 /lib/firmware,放在那里还是会被找不到。看日志发现是应该放在: /lib/firmware/arm/mali/arch10.8/ 下面
简单测试了一下,首先是firefox 开 GPU 之后页面不会乱撕裂了,浏览器好像也可以直接播放视频不会卡死,虽然不清楚是不是用了硬件加速。接着就是发现没声音,和这个问题还不太一样:
https://cool-pi.com/topic/578/es8316-sound-issues-on-armbian-with-6-1-rockchip-kernel/2就是单纯的没声音,麦克风和输出还有耳机和喇叭都没声音。
剩下的就是日志里一堆 rknpu 的报错,可能是 npu 模块还没编译?
休眠工作正常,开盖自动唤醒还是没有。
-
换回 5.10 好像 panfrost 开不了了。
是应该把 mesa 换回 maliG610 PPA的版本么?update:已经降级并开启 panfrost
-
@plumlis
其它的功能会持续完善,音频 NPU 编解码这些都还有问题。 -
@plumlis
是的,需要换回去老的mesa版本。 -
@george 辛苦了,最近看到内核的更新都是晚上。
-
昨天看到6.1又有了新的提交,不过今天编译后发现还是没声音。
-
Hello, I have decided to give 6.1 a try on my CoolPi CM5 v10 notebook (or at least, I think it's the v10). I decided to write the Ubuntu 24.04 LTS image to a USB drive.
I'm not sure why, but only images for the v20 exist, but the 24.04 LTS image works without issues on the v10. I ran a device tree export to verify what model I have and I didn't find any mention of v20 so I assume my notebook is the v10 model. Ubuntu 24.04 LTS what came installed by default on my notebook.
I wanted to try to use Panthor on my notebook so I enabled it in the v10 defconfig before compiling. I accessed the Ubuntu install via chroot to upgrade all of the packages, install the latest Mesa (with the 'kisak-mesa fresh' PPA), and placed the new firmware file at '/lib/firmware/arm/mali/arch10.8'
Whenever trying to boot the laptop from the USB drive do I get a black screen immediately after the CoolPi logo goes off screen. I do not get the Ubuntu startup screen. I did have Ubuntu working via USB when I had the 5.10 kernel, so this is something kernel-related.
Does the 6.1 kernel support v10 notebooks at the moment or does it only support v20 notebooks? Thank you in advance.
-
For some reason the dtb file in the 24.04 LTS image does not have 'v20' in the name but it turns out my laptop is the v20 model. When I purchased it, I didn't have anything telling me whether it was v10 or v20. I built the 6.1 kernel for the v20 model and it now Ubuntu starts up without issues with working GPU acceleration.
Sound doesn't seem to work still, but I'll see if that fix on the Armbian thread works here.
-
@nathan
Upgrade the Mesa version according to the following instructions, and then copy the Mali bin file to the corresponding path to enable Panthor.sudo add-apt-repository ppa:oibaf/graphics-drivers sudo apt update sudo apt-get dist-upgrade
-
看起来Ubuntu 的 Mesa 更新了,PPA G610 里的已经过期了。
是不是应该更新一下了?或者有没有对应手册说明我可以自己编译新Mesa with Panfrost
还是说其他 PPA 的 Mesa 默认也支持 Panfrost? -
Thank you. I've managed to get Panthor working on the laptop as of a few hours ago. The issue I had was coming from me confusing my v20 notebook for the v10 which I fixed. The only issue that remains is sound. The audio devices are detected but no audio actually goes through.
-
To my knowledge, the existing Mesa PPA that comes by default with the Ubuntu 24.04 LTS image contains Panfork (which is an unupdated fork of Panfrost containing a number of hacks for the Mali G610) which predates Panthor or at least is from a time when Panthor was very early in development.
The PPA that George mentioned above contains Mesa packages that are built daily. On most Linux distros, the Mesa included also contains Panfrost and has been for several years. To my knowledge, Panfrost is included by default when building Mesa from source.
-
@nathan said in 6.1 Kernel GPU firmware update:
Panfork
So only the "Panfork Mesa" will work with kernel 5.10 bsp, Right?
I just wanted to say that I am using a preinstalled Ubuntu 24.04 with Kernel 5.10 BSP. Now, Ubuntu is prompting me that there is a new version of Mesa available for update, and the "Panfork" version of Mesa is outdated. I would like to know if there are any manuals or tutorials that I can refer to for building the latest Mesa with Panfork, so that my 5.10 BSP Kernel can continue to work.
-
LOL
I found the "Panfork mesa version 24.05" preinstalled from coolpi ppa is just from mesa 23.05 renamed.
https://launchpad.net/~george-coolpi/+archive/ubuntu/mali-g610/+packagesI dont care about npu. Just waiting speaker and sound fix for kernel 6.1.
-
@plumlis
The function of switching between speakers and headphones is now OK, and the 6.1 kernel has been updated to the latest version.
Then/etc/rc.local blocks the following options:#amixer -c 2 cset numid=4 192 #amixer -c 2 cset numid=2 4,4 #amixer -c 2 cset numid=13 6 #amixer -c 2 cset numid=19 28 #amixer -c 2 cset numid=20 6