sk4g Posted Friday at 12:32 PM Posted Friday at 12:32 PM Can someone explain the purpose of the different kernels available in the Armbian repos and Armbian Github? linux-image-legacy-media/bookworm 24.5.1 arm64 Armbian Linux legacy kernel image 5.10.110-legacy-media linux-image-current-media/bookworm 24.5.1 arm64 Armbian Linux current kernel image 6.1.92-current-media linux-image-current-rockchip64/bookworm 25.2.3 arm64 Armbian Linux current kernel image 6.12.19-current-rockchip64 The linux-image-legacy-media and linux-image-current-media kernels are on BSP kernel versions 5.10 and 6.1. But aren't suffixed with the vendor name, which is typically done for BSP kernels. The linux-image-current-rockchip64 kernel is on a mainline version of 6.12.19. Why is it suffixed with rockchip64? There are also kernels such as rk-6.1-rkr5 that are not in the repos, but can be built from https://github.com/armbian/linux-rockchip These are on BSP kernel versions such as 5.10 and 6.1. What is the purpose of the armbian-bsp packages such as armbian-bsp-cli-rock64-current and armbian-bsp-desktop-rock64-current? What are their differences? Do any of these kernels support RGA/MPP Rockchip VPU hw acceleration? The Jellyfin docs state, Quote Make sure dma_heap, dri, mpp_service and rga exist in /dev. Otherwise upgrade your BSP kernel to 5.10 LTS and newer. 6.12.19-current-rockchip64 is missing rga and mpp root@rock64:~# uname -r 6.12.19-current-rockchip64 root@rock64:~# ls -l /dev | grep -E "mpp|rga|dri|dma_heap" drwxr-xr-x 2 root root 80 Jan 1 1970 dma_heap drwxr-xr-x 3 root root 120 Mar 21 10:59 dri root@rock64:~# lsmod | grep rockchip rockchip_vdec 77824 0 v4l2_vp9 20480 2 rockchip_vdec,hantro_vpu v4l2_h264 16384 2 rockchip_vdec,hantro_vpu rockchip_rga 20480 0 videobuf2_dma_contig 20480 2 rockchip_vdec,hantro_vpu videobuf2_dma_sg 16384 1 rockchip_rga v4l2_mem2mem 24576 3 rockchip_vdec,hantro_vpu,rockchip_rga videobuf2_v4l2 20480 4 rockchip_vdec,hantro_vpu,rockchip_rga,v4l2_mem2mem videodev 237568 5 rockchip_vdec,videobuf2_v4l2,hantro_vpu,rockchip_rga,v4l2_mem2mem snd_soc_rockchip_spdif 12288 0 snd_soc_rockchip_i2s 24576 4 videobuf2_common 53248 8 rockchip_vdec,videobuf2_dma_contig,videobuf2_v4l2,hantro_vpu,rockchip_rga,videobuf2_dma_sg,v4l2_mem2mem,videobuf2_memops mc 53248 6 rockchip_vdec,videodev,videobuf2_v4l2,hantro_vpu,videobuf2_common,v4l2_mem2mem snd_soc_core 204800 7 snd_soc_spdif_tx,snd_soc_hdmi_codec,snd_soc_rockchip_spdif,snd_soc_rk3328,snd_soc_simple_card_utils,snd_soc_rockchip_i2s,snd_soc_simple_card nvmem_rockchip_efuse 12288 0 rockchipdrm 180224 0 dw_hdmi_qp 20480 1 rockchipdrm dw_mipi_dsi 16384 1 rockchipdrm dw_hdmi 45056 2 dw_hdmi_i2s_audio,rockchipdrm analogix_dp 40960 1 rockchipdrm drm_display_helper 131072 4 rockchipdrm,dw_hdmi,analogix_dp,dw_hdmi_qp I did get ffmpeg hw acceleration working using v4l2request from https://github.com/jernejsk/FFmpeg/tree/v4l2-request-n7.1 using the 6.12.19-current-rockchip64 kernel. But wanted to see if jellyfin-ffmpeg7 or https://github.com/nyanmisaka/ffmpeg-rockchip performed better. v4l2request does 49 fps, software decoding does 60 fps, but uses 2.6x more cpu. root@rock64:~/github/FFmpeg# ffmpeg -hwaccel v4l2request -i 1080p.264 -f null - -benchmark ffmpeg version 904a851 Copyright (c) 2000-2024 the FFmpeg developers built with gcc 12 (Debian 12.2.0-14) configuration: --enable-v4l2-request --enable-libudev --enable-libdrm --enable-gnutls --prefix="$HOME/ffmpeg_build" libavutil 59. 39.100 / 59. 39.100 libavcodec 61. 19.100 / 61. 19.100 libavformat 61. 7.100 / 61. 7.100 libavdevice 61. 3.100 / 61. 3.100 libavfilter 10. 4.100 / 10. 4.100 libswscale 8. 3.100 / 8. 3.100 libswresample 5. 3.100 / 5. 3.100 Input #0, h264, from '/root/1080p.264': Duration: N/A, bitrate: N/A Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 59.94 tbr, 1200k tbn Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> wrapped_avframe (native)) Press [q] to stop, [?] for help [h264 @ 0xaaaaf4be97b0] Using V4L2 media driver rkvdec (6.12.19) for S264 Output #0, null, to 'pipe:': Metadata: encoder : Lavf61.7.100 Stream #0:0: Video: wrapped_avframe, nv12(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn Metadata: encoder : Lavc61.19.100 wrapped_avframe [out#0/null @ 0xaaaaf4be7320] video:485KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown frame= 1129 fps= 49 q=-0.0 Lsize=N/A time=00:00:37.67 bitrate=N/A speed=1.64x bench: utime=21.094s stime=2.279s rtime=22.936s bench: maxrss=72164KiB 0 Quote
Werner Posted Friday at 12:49 PM Posted Friday at 12:49 PM moved 17 minutes ago, sk4g said: media Where did you get those? media branch has been abandoned for over a year now. 0 Quote
sk4g Posted Friday at 12:56 PM Author Posted Friday at 12:56 PM They are in the debian bookworm repos. I ran apt search linux-image-* 0 Quote
Werner Posted Friday at 01:01 PM Posted Friday at 01:01 PM Alright, didn't know they are still there. Well as mentioned media won't receive any further updates since all functionally is merged into standard branches. Anyway, Rock64 is rk3399 I think and you should be good to go with mainline kernel, either current which is 6.12.y or edge which is 6.14-rc7 atm. The branches at https://github.com/armbian/linux-rockchip are made from Rockchip BSP code and mostly for rk35xx socs. I don't think there is much work there for rk3399. 0 Quote
sk4g Posted Saturday at 04:55 PM Author Posted Saturday at 04:55 PM Rock64 is RK3328. Since I'll be using the mainline kernel, is v4l2request the only hw acceleration method available? 0 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.