• Recent
    • Docs
    • Github
    • 百度网盘
    • Onedrive
    • Official
    • Shop
    • Register
    • Login

    6.1 Kernel GPU firmware update

    Scheduled Pinned Locked Moved PI CM5 Laptop
    48 Posts 6 Posters 3.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      george
      last edited by george

      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

      plumlisP N 2 Replies Last reply Reply Quote 1
      • plumlisP
        plumlis @george
        last edited by

        @george Many thanks for sharing.

        I will try it with kernel 6.1

        blog: https://plumz.me

        1 Reply Last reply Reply Quote 0
        • plumlisP
          plumlis
          last edited by plumlis

          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
          

          blog: https://plumz.me

          G 1 Reply Last reply Reply Quote 0
          • plumlisP
            plumlis
            last edited by

            反复测试了几次,发现是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
            

            blog: https://plumz.me

            M Y 2 Replies Last reply Reply Quote 0
            • M
              mainbord @plumlis
              last edited by

              This post is deleted!
              1 Reply Last reply Reply Quote 0
              • G
                george @plumlis
                last edited by

                @plumlis
                目前看是编译环境引起的,编译器的版本问题导致,还在处理中。

                plumlisP 1 Reply Last reply Reply Quote 0
                • plumlisP
                  plumlis @george
                  last edited by

                  @george x86环境可以编译吗?我可以弄个wsl的ubuntu 22.04 试试

                  blog: https://plumz.me

                  G 1 Reply Last reply Reply Quote 0
                  • G
                    george @plumlis
                    last edited by

                    @plumlis
                    可以。

                    1 Reply Last reply Reply Quote 0
                    • plumlisP
                      plumlis
                      last edited by

                      最后我自己弄了个 22.04 的 USB 启动盘,在那个系统下编译通过了。

                      不过启动后加载这个 firmware 的确可以进系统,但是问题有点多。mesa 似乎也得更新对应版本,不然 panfrost 打不开,wayland 下 gtk 4 的东西都无法启动。

                      能力有限,还是等你们官方放出测试好的内核吧。

                      blog: https://plumz.me

                      G 2 Replies Last reply Reply Quote 0
                      • G
                        george @plumlis
                        last edited by

                        @plumlis
                        panthor的驱动最近在同步测试,很快就会发布。

                        1 Reply Last reply Reply Quote 0
                        • G
                          george @plumlis
                          last edited by

                          @plumlis
                          同步最新代码,6.1的内核目前已经可以本机编译。

                          plumlisP 1 Reply Last reply Reply Quote 0
                          • plumlisP
                            plumlis @george
                            last edited by

                            @george 昨天已经看到了,辛苦
                            panthor的驱动是需要 mesa 编译实现吗,我看核心代码里已经有了。

                            blog: https://plumz.me

                            G 1 Reply Last reply Reply Quote 0
                            • G
                              george @plumlis
                              last edited by

                              @plumlis
                              内核需要修改增加驱动支持。应用层驱动已经有各个版本的ppa源支持。

                              1 Reply Last reply Reply Quote 1
                              • plumlisP
                                plumlis
                                last edited by

                                刚看到github更新了,立即clone 下来开始编译,结果新内核启动后黑屏了。

                                具体表现就是启动会显示 logo,但是会直接黑屏,不出现 gdm,按下关机键会回到命令行看到关机停止服务的各种指令。

                                我应该是把新的 firmware 放到目录了,但是感觉像是你说的没 firmware 的黑屏。

                                今天很晚了,明天再折腾研究一下。

                                blog: https://plumz.me

                                G 1 Reply Last reply Reply Quote 0
                                • G
                                  george @plumlis
                                  last edited by

                                  @plumlis
                                  内核默认启用了panther的GPU驱动,需要先把mesa更新到24.02版本,否则就会黑屏。

                                  sudo add-apt-repository ppa:oibaf/graphics-drivers
                                  sudo apt update
                                  sudo  apt-get  dist-upgrade
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • plumlisP
                                    plumlis
                                    last edited by

                                    经过更新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 模块还没编译?

                                    休眠工作正常,开盖自动唤醒还是没有。

                                    blog: https://plumz.me

                                    G 1 Reply Last reply Reply Quote 0
                                    • plumlisP
                                      plumlis
                                      last edited by plumlis

                                      换回 5.10 好像 panfrost 开不了了。
                                      是应该把 mesa 换回 maliG610 PPA的版本么?

                                      update:已经降级并开启 panfrost

                                      blog: https://plumz.me

                                      G 1 Reply Last reply Reply Quote 0
                                      • G
                                        george @plumlis
                                        last edited by

                                        @plumlis
                                        其它的功能会持续完善,音频 NPU 编解码这些都还有问题。

                                        plumlisP 1 Reply Last reply Reply Quote 0
                                        • G
                                          george @plumlis
                                          last edited by

                                          @plumlis
                                          是的,需要换回去老的mesa版本。

                                          1 Reply Last reply Reply Quote 0
                                          • plumlisP
                                            plumlis @george
                                            last edited by

                                            @george 辛苦了,最近看到内核的更新都是晚上。

                                            blog: https://plumz.me

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 1 / 3
                                            • First post
                                              Last post