sk4g Posted March 21 Posted March 21 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 March 21 Posted March 21 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 March 21 Author Posted March 21 They are in the debian bookworm repos. I ran apt search linux-image-* 0 Quote
Werner Posted March 21 Posted March 21 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 March 22 Author Posted March 22 Rock64 is RK3328. Since I'll be using the mainline kernel, is v4l2request the only hw acceleration method available? 0 Quote
jock Posted Wednesday at 05:09 PM Posted Wednesday at 05:09 PM On 3/22/2025 at 5:55 PM, sk4g said: Rock64 is RK3328. Since I'll be using the mainline kernel, is v4l2request the only hw acceleration method available? with mainline kernel, yes 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.