Skip to content

Commit 9c35c68

Browse files
authored
fix: 修复 kvmd 访问硬件加速设备的权限规则
1 parent 651f9a4 commit 9c35c68

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

build/functions/devices.sh

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -384,24 +384,25 @@ config_oec_turbo_files() {
384384
echo "信息:配置 VPU 硬件编码支持..."
385385
run_in_chroot "sed -i 's/--h264-hwenc=disabled/--h264-hwenc=rkmpp/g' /etc/kvmd/override.yaml"
386386

387+
echo "信息:配置 udev 规则以授权 kvmd 组访问硬件设备..."
387388
run_in_chroot "cat > /etc/udev/rules.d/99-kvmd-hw-access.rules <<'EOF'
388-
SUBSYSTEM=="dma_heap", KERNEL=="system-uncached", GROUP="render", MODE="0660"
389-
KERNEL=="mpp_service", GROUP="render", MODE="0660"
390-
EOF"
389+
# Generic hardware access for kvmd
390+
# Safe on all platforms — rules only apply if device exists
391391
392+
# Rockchip MPP (rkmpp)
393+
KERNEL==\"mpp_service\", GROUP=\"kvmd\", MODE=\"0660\"
392394
393-
# 配置 rc.local 自启脚本,添加设备权限设置
394-
echo "信息:配置 rc.local 自启脚本..."
395-
run_in_chroot "cat > /etc/rc.local << 'EOF'
396-
#!/bin/bash
397-
usermod -aG render,video kvmd
398-
exit 0
399-
EOF"
400-
run_in_chroot "chmod +x /etc/rc.local"
395+
# DMA-Heap (used by modern MPP)
396+
SUBSYSTEM==\"dma_heap\", KERNEL==\"system\", GROUP=\"kvmd\", MODE=\"0660\"
397+
SUBSYSTEM==\"dma_heap\", KERNEL==\"system-uncached\", GROUP=\"kvmd\", MODE=\"0660\"
398+
SUBSYSTEM==\"dma_heap\", KERNEL==\"reserved\", GROUP=\"kvmd\", MODE=\"0660\"
401399
402-
# 确保 rc-local.service 被启用,以便 kvmd 服务可以依赖它
403-
echo "信息:启用 rc-local.service 服务..."
404-
run_in_chroot "systemctl enable rc-local.service"
400+
# Optional legacy Rockchip devices
401+
KERNEL==\"rkvdec\", GROUP=\"kvmd\", MODE=\"0660\"
402+
KERNEL==\"rkvenc\", GROUP=\"kvmd\", MODE=\"0660\"
403+
KERNEL==\"rga\", GROUP=\"kvmd\", MODE=\"0660\"
404+
405+
EOF"
405406

406407
# 替换 DTB 文件
407408
replace_oec_turbo_dtb

0 commit comments

Comments
 (0)