Compare commits

...

6 Commits

Author SHA1 Message Date
mofeng-git
1e727ddc1b fix: 替换 Octopus-Planet dtb 修复 OTG 问题 2025-10-12 17:15:37 +08:00
mofeng-git
da84a6d09f feat: 为 Onecloud Pro、Octopus-Planet 添加 DRM 设备支持(HDMI 环出模拟) 2025-10-12 15:26:43 +08:00
SilentWind
9c35c68eda fix: 修复 kvmd 访问硬件加速设备的权限规则 2025-10-12 09:22:26 +08:00
mofeng-git
651f9a4f4e feat: 更新演示站点地址 2025-10-11 15:43:04 +08:00
mofeng-git
7777f5e490 feat: 更新说明文档 2025-10-11 11:21:47 +08:00
mofeng-git
3ab5e2b431 fix: 修复 OEC TURBO 硬件编解码权限问题 2025-10-01 07:42:08 +08:00
2 changed files with 69 additions and 32 deletions

View File

@@ -11,8 +11,8 @@
[![GitHub license](https://img.shields.io/github/license/mofeng-git/One-KVM)](https://github.com/mofeng-git/One-KVM/blob/master/LICENSE)
<p>
<a href="https://one-kvm.mofeng.run">📖 详细文档</a>
<a href="https://kvmd-demo.mofeng.run">🚀 在线演示</a>
<a href="https://docs.one-kvm.cn">📖 详细文档</a>
<a href="https://demo.one-kvm.cn/">🚀 在线演示</a>
<a href="#快速开始">⚡ 快速开始</a>
<a href="#功能介绍">📊 功能介绍</a>
</p>
@@ -68,7 +68,7 @@
|:--------:|:-------:|:-----:|:------:|:------:|
| 简体中文 WebUI | ✅ | ❌ | ✅ | ✅ |
| 远程视频流 | MJPEG/H.264 | MJPEG/H.264 | MJPEG/H.264 | MJPEG/H.264 |
| H.264 视频编码 | CPU | GPU | 未知 | GPU |
| H.264 视频编码 | CPU/GPU | GPU | 未知 | GPU |
| 远程音频流 | ✅ | ✅ | ✅ | ✅ |
| 远程鼠键控制 | OTG/CH9329 | OTG/CH9329/Pico/Bluetooth | OTG | OTG |
| VNC 控制 | ✅ | ✅ | ✅ | ✅ |
@@ -87,7 +87,7 @@ Docker 版本支持 OTG 或 CH9329 作为虚拟 HID兼容 amd64、arm64、arm
#### 一键脚本部署
```bash
curl -sSL https://one-kvm.mofeng.run/quick_start.sh -o quick_start.sh && bash quick_start.sh
curl -sSL https://docs.one-kvm.cn/quick_start.sh -o quick_start.sh && bash quick_start.sh
```
#### 手动部署
@@ -157,6 +157,7 @@ sudo docker run --name kvmd -itd \
- **GitHub Releases** [https://github.com/mofeng-git/One-KVM/releases](https://github.com/mofeng-git/One-KVM/releases)
**其他下载方式:**
- **免登录高速下载:** [http://sd1.files.one-kvm.cn/](http://sd1.files.one-kvm.cn/)(由群友赞助,支持直链,接入 EdgeOne CDN建议使用多线程下载工具下载获取最高速度
- **免登录下载:** [https://pan.huang1111.cn/s/mxkx3T1](https://pan.huang1111.cn/s/mxkx3T1) (由 Huang1111公益计划 提供)
- **百度网盘:** [https://pan.baidu.com/s/166-2Y8PBF4SbHXFkGmFJYg?pwd=o9aj](https://pan.baidu.com/s/166-2Y8PBF4SbHXFkGmFJYg?pwd=o9aj) 提取码o9aj
@@ -170,19 +171,7 @@ sudo docker run --name kvmd -itd \
| Virtualbox | Virtualbox-uefi | USB 采集卡、CH9329 | 241004 | ✅ |
| s905l3a 通用包 | E900v22c | USB 采集卡、OTG | 241004 | ✅ |
| 我家云 | Chainedbox | USB 采集卡、OTG | 241004 | ✅ |
| 龙芯久久派 | 2k0300 | USB 采集卡、CH9329 | 241025 | |
## 🤝 贡献指南
欢迎各种形式的贡献!
### 如何贡献
1. **Fork 本仓库**
2. **创建功能分支:** `git checkout -b feature/AmazingFeature`
3. **提交更改:** `git commit -m 'Add some AmazingFeature'`
4. **推送到分支:** `git push origin feature/AmazingFeature`
5. **提交 Pull Request**
| 龙芯久久派 | 2k0300 | USB 采集卡、CH9329 | 241025 | |
### 报告问题
@@ -280,6 +269,30 @@ sudo docker run --name kvmd -itd \
- 爱发电用户_e3202
- 一语念白
- 云边
- 爱发电用户_5a711
- 爱发电用户_9a706
- T0m9ir1SUKI
- 爱发电用户_56d52
- 爱发电用户_3N6F
- DUSK
- 飘零
- .
- 饭太稀
-
- ......
</details>
@@ -296,6 +309,14 @@ sudo docker run --name kvmd -itd \
**文件存储服务:**
- **[Huang1111公益计划](https://pan.huang1111.cn/s/mxkx3T1)** - 提供免登录下载服务
**云服务商**
- **[林枫云](https://www.dkdun.cn)** - 赞助了本项目宁波大带宽服务器
![林枫云](./img/36076FEFF0898A80EBD5756D28F4076C.png)
林枫云主营国内外地域的精品线路业务服务器、高主频游戏服务器和大带宽服务器。
## 📚 其他
### 使用的开源项目

View File

@@ -214,6 +214,12 @@ octopus_flanet_rootfs() {
sudo losetup --offset "$boot_offset" "$bootfs_loopdev" "$target_image" || { echo "错误:设置 boot 分区 loop 设备 $bootfs_loopdev 失败" >&2; exit 1; }
sudo mount "$bootfs_loopdev" "$BOOTFS" || { echo "错误:挂载 boot 分区 ($bootfs_loopdev) 失败" >&2; exit 1; }
BOOTFS_MOUNTED=1
# 自动下载 Octopus-Planet 相关文件
local dtb_file="$SRCPATH/image/octopus-flanet/meson-gxm-octopus-planet.dtb"
download_file_if_missing "$dtb_file" || echo "警告:下载 Octopus-Planet DTB 失败"
sudo cp "$dtb_file" "$BOOTFS/dtb/amlogic/meson-gxm-octopus-planet.dtb" || echo "警告:复制 Octopus-Planet DTB 失败"
sudo sed -i "s/meson-gxm-octopus-planet.dtb/meson-gxm-khadas-vim2.dtb/g" "$BOOTFS/uEnv.txt" || { echo "错误:修改 uEnv.txt 失败" >&2; exit 1; }
sudo umount "$BOOTFS" || { echo "警告:卸载 boot 分区 ($BOOTFS) 失败" >&2; BOOTFS_MOUNTED=0; }
BOOTFS_MOUNTED=0
@@ -314,8 +320,7 @@ config_cumebox2_files() {
download_file_if_missing "$dtb_file" || echo "警告:下载 Cumebox2 DTB 失败"
download_file_if_missing "$ssd_file" || echo "警告:下载 Cumebox2 ssd 脚本失败"
download_file_if_missing "$config_file" || echo "警告:下载 Cumebox2 配置文件失败"
# 注意 DTB 路径可能需要根据实际 Armbian 版本调整
sudo cp "$dtb_file" "$ROOTFS/boot/dtb/amlogic/meson-gxl-s905x-khadas-vim.dtb" || echo "警告:复制 Cumebox2 DTB 失败"
sudo cp "$ssd_file" "$ROOTFS/usr/bin/" || echo "警告:复制 Cumebox2 ssd 脚本失败"
sudo chmod +x "$ROOTFS/usr/bin/ssd" || echo "警告:设置 ssd 脚本执行权限失败"
@@ -331,6 +336,9 @@ config_octopus_flanet_files() {
download_file_if_missing "$config_file" || echo "警告:下载 Octopus-Planet 配置文件失败"
sudo cp "$config_file" "$ROOTFS/etc/model_database.conf" || echo "警告:复制 model_database.conf 失败"
echo "信息:为 Octopus-Planet 添加 DRM 设备支持..."
run_in_chroot "sed -i \"/--device=\\/dev\\/video0/a\\ - \\\"--drm-device=/dev/dri/card0\\\"\" /etc/kvmd/override.yaml"
}
config_orangepi_zero_files() {
@@ -344,13 +352,14 @@ config_orangepi_zero_files() {
config_onecloud_pro_files() {
echo "信息:配置 Onecloud Pro 特定文件..."
echo "信息Onecloud Pro 特定配置完成。"
echo "信息:为 Onecloud Pro 添加 DRM 设备支持..."
run_in_chroot "sed -i \"/--device=\\/dev\\/video0/a\\ - \\\"--drm-device=/dev/dri/card0\\\"\" /etc/kvmd/override.yaml"
}
config_onecloud_files() {
echo "信息:配置 Onecloud 特定文件..."
# 在 ustreamer 命令中添加 DRM 设备配置
echo "信息:为 Onecloud 添加 DRM 设备支持..."
run_in_chroot "sed -i \"/--device=\\/dev\\/video0/a\\ - \\\"--drm-device=/dev/dri/card1\\\"\" /etc/kvmd/override.yaml"
@@ -384,18 +393,25 @@ config_oec_turbo_files() {
echo "信息:配置 VPU 硬件编码支持..."
run_in_chroot "sed -i 's/--h264-hwenc=disabled/--h264-hwenc=rkmpp/g' /etc/kvmd/override.yaml"
# 配置 rc.local 自启脚本,添加设备权限设置
echo "信息:配置 rc.local 自启脚本..."
run_in_chroot "cat > /etc/rc.local << 'EOF'
#!/bin/bash
chmod 777 /dev/mpp_service /dev/rga
exit 0
EOF"
run_in_chroot "chmod +x /etc/rc.local"
echo "信息:配置 udev 规则以授权 kvmd 组访问硬件设备..."
run_in_chroot "cat > /etc/udev/rules.d/99-kvmd-hw-access.rules <<'EOF'
# Generic hardware access for kvmd
# Safe on all platforms — rules only apply if device exists
# 确保 rc-local.service 被启用,以便 kvmd 服务可以依赖它
echo "信息:启用 rc-local.service 服务..."
run_in_chroot "systemctl enable rc-local.service"
# 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"
# 替换 DTB 文件
replace_oec_turbo_dtb