From 9c35c68edafdbd3287e1528f8d2ab952f951aec1 Mon Sep 17 00:00:00 2001 From: SilentWind <62919083+mofeng-git@users.noreply.github.com> Date: Sun, 12 Oct 2025 09:22:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20kvmd=20=E8=AE=BF?= =?UTF-8?q?=E9=97=AE=E7=A1=AC=E4=BB=B6=E5=8A=A0=E9=80=9F=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=9A=84=E6=9D=83=E9=99=90=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/functions/devices.sh | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/build/functions/devices.sh b/build/functions/devices.sh index 02c618f9..05997b08 100755 --- a/build/functions/devices.sh +++ b/build/functions/devices.sh @@ -384,25 +384,26 @@ config_oec_turbo_files() { echo "信息:配置 VPU 硬件编码支持..." run_in_chroot "sed -i 's/--h264-hwenc=disabled/--h264-hwenc=rkmpp/g' /etc/kvmd/override.yaml" + echo "信息:配置 udev 规则以授权 kvmd 组访问硬件设备..." run_in_chroot "cat > /etc/udev/rules.d/99-kvmd-hw-access.rules <<'EOF' -SUBSYSTEM=="dma_heap", KERNEL=="system-uncached", GROUP="render", MODE="0660" -KERNEL=="mpp_service", GROUP="render", MODE="0660" +# Generic hardware access for kvmd +# Safe on all platforms — rules only apply if device exists + +# Rockchip MPP (rkmpp) +KERNEL==\"mpp_service\", GROUP=\"kvmd\", MODE=\"0660\" + +# DMA-Heap (used by modern MPP) +SUBSYSTEM==\"dma_heap\", KERNEL==\"system\", GROUP=\"kvmd\", MODE=\"0660\" +SUBSYSTEM==\"dma_heap\", KERNEL==\"system-uncached\", GROUP=\"kvmd\", MODE=\"0660\" +SUBSYSTEM==\"dma_heap\", KERNEL==\"reserved\", GROUP=\"kvmd\", MODE=\"0660\" + +# Optional legacy Rockchip devices +KERNEL==\"rkvdec\", GROUP=\"kvmd\", MODE=\"0660\" +KERNEL==\"rkvenc\", GROUP=\"kvmd\", MODE=\"0660\" +KERNEL==\"rga\", GROUP=\"kvmd\", MODE=\"0660\" + EOF" - - # 配置 rc.local 自启脚本,添加设备权限设置 - echo "信息:配置 rc.local 自启脚本..." - run_in_chroot "cat > /etc/rc.local << 'EOF' -#!/bin/bash -usermod -aG render,video kvmd -exit 0 -EOF" - run_in_chroot "chmod +x /etc/rc.local" - - # 确保 rc-local.service 被启用,以便 kvmd 服务可以依赖它 - echo "信息:启用 rc-local.service 服务..." - run_in_chroot "systemctl enable rc-local.service" - # 替换 DTB 文件 replace_oec_turbo_dtb