From 843a1f97ce375def987dd963ba37d25e2836e2e9 Mon Sep 17 00:00:00 2001 From: wj-xiao Date: Thu, 3 Apr 2025 17:41:39 +0800 Subject: [PATCH] update README.md --- README.md | 148 +++++++++++++++++++++----------------------- README_ZH.md | 50 +++++---------- server/README.md | 9 +-- server/README_ZH.md | 15 ++--- 4 files changed, 101 insertions(+), 121 deletions(-) diff --git a/README.md b/README.md index 1dd15d3..4d5e9df 100644 --- a/README.md +++ b/README.md @@ -18,10 +18,22 @@ English | [中文](./README_ZH.md) | [日本語](./README_JA.md) > Your NanoKVM is powered by [RISC-V](https://en.wikipedia.org/wiki/RISC-V)! > If you have any issues or suggestions, creating issue here, or tell us with [MaixHub Discussion](https://maixhub.com/discussion/nanokvm). -## Opensource & Contribution +## Introduction -### 2025.03.04 Update Content -+ Updated directory structure +Lichee NanoKVM is an IP-KVM product based on LicheeRV Nano, inheriting the extreme size and powerful features of LicheeRV Nano. + +The Lichee NanoKVM is available in two versions: + +* NanoKVM Lite is a basic configuration that is suitable for individual users with certain DIY capabilities and enterprise users with bulk requirements. + +* The NanoKVM Full is a full version with a sophisticated case and complete accessories, as well as a built-in system mirror card that is ready to use at boot, and is recommended for individual users. + +For users concerned about security, you can read this issue: [#301](https://github.com/sipeed/NanoKVM/issues/301). You will find explanations addressing all security concerns. +GitHub, as an open and transparent platform, provides a space for discussing so-called "backdoor" concerns. Open-source makes products more secure! + +![NanoKVM Disassembled](https://wiki.sipeed.com/hardware/zh/kvm/assets/NanoKVM/1_intro/NanoKVM_1.jpg) + +## Project Structure ``` shell ├── kvmapp # APP update package @@ -30,69 +42,37 @@ English | [中文](./README_ZH.md) | [日本語](./README_JA.md) │ ├── kvm_system # kvm_system application │ ├── server # NanoKVM front-end and back-end applications │ └── system # Necessary system components +├── web # NanoKVM front-end ├── server # NanoKVM back-end ├── support # Auxiliary functions (image subsystem, system status, system updates, screen, keys, etc.) │ ├── sg2002 # NanoKVM-Lite/Full/PCIe │ └── h618 # NanoKVM-Pro -├── web # NanoKVM front-end -├── LICENSE -├── README_JA.md -├── README.md -├── README_ZH.md -└── CHANGELOG.md +├── ... ``` -+ Add NanoKVM app installation package `kvmapp` -+ Add compilation scripts and compilation instructions - -### Update 2025.02.19 -All components of NanoKVM were open-sourced, including the [front-end](https://github.com/sipeed/NanoKVM/tree/main/web), [back-end](https://github.com/sipeed/NanoKVM/tree/main/server), [kvm_vision](https://github.com/sipeed/NanoKVM/tree/main/vision/components/kvm), [kvm_mmf](https://github.com/sipeed/NanoKVM/tree/main/vision/components/kvm_mmf), [kvm_system](https://github.com/sipeed/NanoKVM/tree/main/support), the [kvmapp update package](https://github.com/sipeed/NanoKVM-System/tree/main/kvmapp), [system sdk](https://github.com/sipeed/LicheeRV-Nano-Build/tree/NanoKVM), and [packaging methods](https://github.com/sipeed/LicheeRV-Nano-Build/blob/NanoKVM/kvm/NanoKVM_img.sh). - -### Update 2025.02.14 -Newest APP v2.1.6 add most security enhancements&bug fix, recommend regular users upgrade to this version or newer. - -### Update 2025.02.05 -For users concerned about security, you can read this issue: https://github.com/sipeed/NanoKVM/issues/301 , you will find explanations addressing all security concerns. -GitHub, as an open and transparent platform, provides a space for discussing so-called "backdoor" concerns. Open-source makes products more secure! - -### Update 2024.10.18 - -We have open-sourced the backend code in 10.8, and thank you for civil PR it immediately, we will give you newest NanoKVM-PCIe as a reward! -The mid-Oct batch is starting testing and packaging, most orders before 10.1 will ship out next and next next week. -The aliexpress shipping date is change to Dec since 10.1, it is a conservative delivery time. the order in Oct. should send out during 11.15~12.15. - -## Introduction - -Lichee NanoKVM is an IP-KVM product based on LicheeRV Nano, inheriting the extreme size and powerful features of LicheeRV Nano. -The Lichee NanoKVM is available in two versions: -NanoKVM Lite is a basic configuration that is suitable for individual users with certain DIY capabilities and enterprise users with bulk requirements. -The NanoKVM Full is a full version with a sophisticated case and complete accessories, as well as a built-in system mirror card that is ready to use at boot, and is recommended for individual users. - -![NanoKVM Disassembled](https://wiki.sipeed.com/hardware/zh/kvm/assets/NanoKVM/1_intro/NanoKVM_1.jpg) - ## Tech Specs -| Products | NanoKVM (Lite) | NanoKVM (Full) | PiKVM V4 | -|------------------- |-------------------------------------- |---------------------------------- |----------------------------------- | -| Compute Units | LicheeRV Nano(RISCV) | LicheeRV Nano(RISCV) | CM4 (ARM) | -| Resolution | 1080P @ 60fps | 1080P @ 60fps | 1080P @ 60fps | -| Video encoding | MJPEG, H264 | MJPEG, H264 | MJPEG, H264 | -| Video delay | 90~230ms | 90~230ms | 100~230ms | -| UEFI/BIOS | ✓ | ✓ | ✓ | -| Virtual HID | ✓ | ✓ | ✓ | -| Virtual CD-ROM | ✓ | ✓ | ✓ | -| IPMI | ✓ | ✓ | ✓ | -| Wake-on-LAN | ✓ | ✓ | ✓ | -| ETH | 100M/10M | 100M/10M | 1000M/100M/10M | -| ATX power control | None,Users can connect by their own | USB interface IO control board | RJ-45 interface IO control board | -| OLED | None,Users can connect by their own | 128x64 0.96" white | 128x32 0.91" white | -| UART | 2 | 2 | 1 | -| TF Card | None | ✓ | ✓ | -| Expansion | None | PoE | WiFi/LTE | -| Power consumption | 0.2A@5V | 0.2A@5V | Peak 2.6A@5V | -| Power input | PC USB can be powered | PC USB or auxiliary power supply | DC 5V 3A power supply is required | -| Cooling | Silent fanless | Silent fanless | Fan cooling | -| Size | 23x37x15mm ~1/30 PiKVM V4 size | 40x36x36mm ~1/7 PiKVM V4 size | 120x68x44mm | +| Products | NanoKVM (Lite) | NanoKVM (Full) | PiKVM V4 | +|------------------- |-------------------------------------- |---------------------------------- |----------------------------------- | +| Compute Units | LicheeRV Nano(RISCV) | LicheeRV Nano(RISCV) | CM4 (ARM) | +| Resolution | 1080P @ 60fps | 1080P @ 60fps | 1080P @ 60fps | +| Video encoding | MJPEG, H264 | MJPEG, H264 | MJPEG, H264 | +| Video delay | 90~230ms | 90~230ms | 100~230ms | +| UEFI/BIOS | ✓ | ✓ | ✓ | +| Virtual HID | ✓ | ✓ | ✓ | +| Virtual CD-ROM | ✓ | ✓ | ✓ | +| IPMI | ✓ | ✓ | ✓ | +| Wake-on-LAN | ✓ | ✓ | ✓ | +| ETH | 100M/10M | 100M/10M | 1000M/100M/10M | +| ATX power control | None,Users can connect by their own | USB interface IO control board | RJ-45 interface IO control board | +| OLED | None,Users can connect by their own | 128x64 0.96" white | 128x32 0.91" white | +| UART | 2 | 2 | 1 | +| TF Card | None | ✓ | ✓ | +| Expansion | None | PoE | WiFi/LTE | +| Power consumption | 0.2A@5V | 0.2A@5V | Peak 2.6A@5V | +| Power input | PC USB can be powered | PC USB or auxiliary power supply | DC 5V 3A power supply is required | +| Cooling | Silent fanless | Silent fanless | Fan cooling | +| Size | 23x37x15mm ~1/30 PiKVM V4 size | 40x36x36mm ~1/7 PiKVM V4 size | 120x68x44mm | ![NanoKVM PCB Pinout](https://wiki.sipeed.com/hardware/zh/kvm/assets/NanoKVM/1_intro/NanoKVM_2.jpg) @@ -106,38 +86,50 @@ The NanoKVM image is built on LicheeRV Nano SDK and MaixCDK, and is compatible w Note: Out of the 256MB memory in SG2002, 158MB is currently allocated for the multimedia subsystem, which NanoKVM will use for video image acquisition and processing. -+ [NanoKVM-A Schematic](https://cn.dl.sipeed.com/fileList/KVM/nanoKVM/HDK/02_Schematic/SCH_RV_Nano_KVM_A_30111.pdf) -+ [NanoKVM-B Schematic](https://cn.dl.sipeed.com/fileList/KVM/nanoKVM/HDK/02_Schematic/SCH_RV_Nano_KVM_B_30131.pdf) -+ [NanoKVM img](https://github.com/sipeed/NanoKVM/releases/tag/NanoKVM) +* [NanoKVM-A Schematic](https://cn.dl.sipeed.com/fileList/KVM/nanoKVM/HDK/02_Schematic/SCH_RV_Nano_KVM_A_30111.pdf) +* [NanoKVM-B Schematic](https://cn.dl.sipeed.com/fileList/KVM/nanoKVM/HDK/02_Schematic/SCH_RV_Nano_KVM_B_30131.pdf) +* [NanoKVM img](https://github.com/sipeed/NanoKVM/releases/tag/NanoKVM) ## Roadmap -### Q1 2025 - **Enhancements:** -- [x] Refactor the HDMI module and remove the libmaixcam_lib.so dependency -- [x] Disable SSH by default and add an enable/disable toggle in the web UI -- [x] Disable Tailscale by default and add an enable/disable toggle in the web UI -- [x] Add JWT configuration options to the configuration file -- [x] Secure password storage with bcrypt +* [x] Refactor the HDMI module and remove the libmaixcam_lib.so dependency +* [x] Disable SSH by default and add an enable/disable toggle in the web UI +* [x] Disable Tailscale by default and add an enable/disable toggle in the web UI +* [x] Add JWT configuration options to the configuration file +* [x] Secure password storage with bcrypt **Distribution:** -- [x] Distribute applications via GitHub -- [x] Implement integrity checks for online updates -- [ ] Support offline updates +* [x] Distribute applications via GitHub +* [x] Implement integrity checks for online updates +* [ ] Support offline updates **Bug Fixes:** -- [x] Fix the DNS issue -- [x] Fix the CSRF vulnerability +* [x] Fix the DNS issue +* [x] Fix the CSRF vulnerability **Features** -- [ ] [79](https://github.com/sipeed/NanoKVM/issues/79) Support Zerotier -- [ ] [99](https://github.com/sipeed/NanoKVM/issues/99) Support WireGuard -- [ ] [249](https://github.com/sipeed/NanoKVM/issues/249) Add Mouse Jiggler +* [ ] [79](https://github.com/sipeed/NanoKVM/issues/79) Support Zerotier +* [ ] [99](https://github.com/sipeed/NanoKVM/issues/99) Support WireGuard +* [ ] [249](https://github.com/sipeed/NanoKVM/issues/249) Add Mouse Jiggler + +## Contributing + +1. Fork the repository +2. Create a feature branch +3. Commit your changes +4. Push to the branch +5. Create a Pull Request + +Thanks for your interest in contributing to NanoKVM! + +Please keep your pull requests small and focused. This will make it easier to review and merge. + +> Developers who have contributed high-quality Pull Requests will receive a NanoKVM Cube, PCIe, or Pro as a token of our appreciation. ## Where to buy @@ -149,3 +141,7 @@ Note: Out of the 256MB memory in SG2002, 158MB is currently allocated for the mu * [MaixHub Discussion](https://maixhub.com/discussion/nanokvm) * QQ group: 703230713 + +## License + +This project is licensed under the GPL-3.0 License - see the LICENSE file for details. diff --git a/README_ZH.md b/README_ZH.md index 502d2b1..0854f3a 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -18,10 +18,20 @@ NanoKVM > Your NanoKVM Power by RISC-V ! > 如果您在使用过程中有任何问题或建议,请在这里提交 issue, 或在 [MaixHub Discussion](https://maixhub.com/discussion/nanokvm)告诉我们. -## 开源与贡献 +## 简介 -### 2025.03.04 更新内容 -+ 更新目录结构 +Lichee NanoKVM 是基于 LicheeRV Nano 的 IP-KVM 产品,继承了 LicheeRV Nano的极致体积 和 强大功能。 + +Lichee NanoKVM分为两个版本: + +* NanoKVM Lite 为基础版配置,适合 具有一定DIY能力的个人用户 和 有批量需求的企业用户。 +* NanoKVM Full 为完整版配置,带精致外壳和完整配件,内置开机即用的系统镜像卡,推荐个人用户购买。 + +对于关注安全的用户,可以阅读此问题 [#301](https://github.com/sipeed/NanoKVM/issues/301),您会找到有关所有安全问题的解释。GitHub 作为一个开放和透明的平台,为讨论所谓的“后门”担忧提供了空间。开源使产品更加安全! + +![](https://wiki.sipeed.com/hardware/zh/kvm/assets/NanoKVM/1_intro/NanoKVM_1.jpg) + +## 项目结构 ``` shell ├── kvmapp # APP更新包 @@ -42,33 +52,6 @@ NanoKVM └── CHANGELOG.md ``` -+ 添加 NanoKVM app安装包`kvmapp` -+ 添加编译脚本和编译说明 - -### 2025.02.19 更新内容 -所有 NanoKVM 组件已开源,包括 -[前端](https://github.com/sipeed/NanoKVM/tree/main/web)、[后端](https://github.com/sipeed/NanoKVM/tree/main/server)、[kvm_vision](https://github.com/sipeed/NanoKVM/tree/main/vision/components/kvm)、[kvm_mmf](https://github.com/sipeed/NanoKVM/tree/main/vision/components/kvm_mmf)、[kvm_system](https://github.com/sipeed/NanoKVM/tree/main/support)、[kvmapp 更新包](https://github.com/sipeed/NanoKVM-System/tree/main/kvmapp)、[系统 SDK](https://github.com/sipeed/LicheeRV-Nano-Build/tree/NanoKVM) 和 [固件打包方法](https://github.com/sipeed/LicheeRV-Nano-Build/blob/NanoKVM/kvm/NanoKVM_img.sh)。 - -### 2025.02.14 更新内容 -最新的 APP v2.1.6 添加了大多数安全增强和 bug 修复,建议普通用户升级到此版本或更新版本。 - -### 2025.02.05 更新内容 -对于关注安全的用户,可以阅读此问题:https://github.com/sipeed/NanoKVM/issues/301,您会找到有关所有安全问题的解释。GitHub 作为一个开放和透明的平台,为讨论所谓的“后门”担忧提供了空间。开源使产品更加安全! - -### 2024.10.18 更新内容 -我们在 10.8 中开源了后端代码,感谢您立即提交的文明 PR,我们将赠送您最新的 NanoKVM-PCIe 作为奖励! -十月中旬的批次正在开始测试和打包,大多数在 10.1 之前的订单将在下周和下下周发货。 -自 10.1 起,AliExpress 的发货日期已更改为 12 月,这是一个保守的交货时间。十月的订单应在 11.15~12.15 期间发出。 - -## 简介 - -Lichee NanoKVM 是基于 LicheeRV Nano 的 IP-KVM 产品,继承了 LicheeRV Nano的极致体积 和 强大功能。 -Lichee NanoKVM分为两个版本: -NanoKVM Lite 为基础版配置,适合 具有一定DIY能力的个人用户 和 有批量需求的企业用户。 -NanoKVM Full 为完整版配置,带精致外壳和完整配件,内置开机即用的系统镜像卡,推荐个人用户购买。 - -![](https://wiki.sipeed.com/hardware/zh/kvm/assets/NanoKVM/1_intro/NanoKVM_1.jpg) - ## 参数 | 产品 | NanoKVM (Lite) | NanoKVM (Full) | PiKVM V4 | @@ -105,10 +88,9 @@ NanoKVM 镜像在LicheeRV Nano SDK 和 MaixCDK 基础上构建,可以兼容使 注: SG2002的256MB内存中, 目前划分105MB用于多媒体子系统, NanoKVM会在视频图像采集和处理中使用这部分内存. -+ [NanoKVM-A 原理图](https://cn.dl.sipeed.com/fileList/KVM/nanoKVM/HDK/02_Schematic/SCH_RV_Nano_KVM_A_30111.pdf) -+ [NanoKVM-B 原理图](https://cn.dl.sipeed.com/fileList/KVM/nanoKVM/HDK/02_Schematic/SCH_HDMI_MIPI_31011.pdf) -+ [NanoKVM 镜像下载](https://github.com/sipeed/NanoKVM/releases/tag/NanoKVM) - +* [NanoKVM-A 原理图](https://cn.dl.sipeed.com/fileList/KVM/nanoKVM/HDK/02_Schematic/SCH_RV_Nano_KVM_A_30111.pdf) +* [NanoKVM-B 原理图](https://cn.dl.sipeed.com/fileList/KVM/nanoKVM/HDK/02_Schematic/SCH_HDMI_MIPI_31011.pdf) +* [NanoKVM 镜像下载](https://github.com/sipeed/NanoKVM/releases/tag/NanoKVM) ## 购买渠道 diff --git a/server/README.md b/server/README.md index b1b9ecf..3b927bc 100644 --- a/server/README.md +++ b/server/README.md @@ -13,7 +13,7 @@ server ├── dl_lib // Shared object libraries ├── include // Header files for shared objects ├── logger // Logging system -├── middleware // Server middleware components +├── middleware // Server middleware components ├── proto // API request/response definitions ├── router // API route handlers ├── service // Core service implementations @@ -39,7 +39,7 @@ cert: logger: level: info file: stdout - + # Authentication setting (enable/disable) # Note: Only disable authentication in development environment authentication: enable @@ -75,8 +75,9 @@ Note: Use Linux operating system (x86-64). This build process is not compatible 2. Compile the Project 1. Run `cd server` from the project root directory. 2. Run `go mod tidy` to install Go dependencies. - 3. Run `CGO_ENABLED=1 GOOS=linux GOARCH=riscv64 CC=riscv64-unknown-linux-musl-gcc CGO_CFLAGS="-mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d" go build` to compile the project. - 4. After compilation, an executable file named `NanoKVM-Server` will be generated. + 3. (Optional) If you compiled `libkvm.so` yourself, you need to modify its RPATH by `patchelf --add-rpath \$ORIGIN ./dl_lib/libkvm.so`. + 4. Run `CGO_ENABLED=1 GOOS=linux GOARCH=riscv64 CC=riscv64-unknown-linux-musl-gcc CGO_CFLAGS="-mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d" go build` to compile the project. + 5. After compilation, an executable file named `NanoKVM-Server` will be generated. 3. Modify RPATH 1. Run `sudo apt install patchelf` or `pip install patchelf` to install patchelf. diff --git a/server/README_ZH.md b/server/README_ZH.md index 07ba0c3..ad8ec12 100644 --- a/server/README_ZH.md +++ b/server/README_ZH.md @@ -31,13 +31,13 @@ port: cert: crt: server.crt key: server.key - + # 日志级别(debug/info/warn/error) # 注意:在生产环境中使用 info 或 error。debug 模式仅在开发环境中使用。 logger: level: info file: stdout - + # 鉴权设置(enable/disable) # 注意:生产环境中请勿使用 disable。 authentication: enable @@ -72,8 +72,9 @@ turn: 2. 编译 1. 在项目根目录下执行 `cd server` 进入 server 目录; 2. 执行 `go mod tidy` 安装 Go 依赖包; - 3. 执行 `CGO_ENABLED=1 GOOS=linux GOARCH=riscv64 CC=riscv64-unknown-linux-musl-gcc CGO_CFLAGS="-mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d" go build` 进行编译; - 4. 编译完成后,会生成可执行文件 `NanoKVM-Server`。 + 3. (可选)如果您手动编译了 `libkvm.so`,则需要通过 `patchelf --add-rpath \$ORIGIN ./dl_lib/libkvm.so` 修改其 RPATH 属性。 + 4. 执行 `CGO_ENABLED=1 GOOS=linux GOARCH=riscv64 CC=riscv64-unknown-linux-musl-gcc CGO_CFLAGS="-mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d" go build` 进行编译; + 5. 编译完成后,会生成可执行文件 `NanoKVM-Server`。 3. 修改 RPATH 1. 执行 `sudo apt install patchelf` 或 `pip install patchelf` 安装 patchelf; @@ -81,8 +82,8 @@ turn: 3. 执行 `patchelf --add-rpath \$ORIGIN/dl_lib NanoKVM-Server` 修改可执行文件的 RPATH 属性。 4. 部署 - 1. 上传文件需要启用 SSH 功能。请在 Web `设置 - SSH` 中检查 SSH 是否已经启用; - 2. 使用编译生成的 `NanoKVM-Server` 文件,替换 NanoKVM 中 `/kvmapp/server/` 目录下的原始文件; + 1. 上传文件需要启用 SSH 功能。请在 Web `设置 - SSH` 中检查 SSH 是否已经启用; + 2. 使用编译生成的 `NanoKVM-Server` 文件,替换 NanoKVM 中 `/kvmapp/server/` 目录下的原始文件; 3. 在 NanoKVM 中执行 `/etc/init.d/S95nanokvm restart` 重启服务。 ## 手动更新 @@ -92,4 +93,4 @@ turn: 1. 从 [GitHub](https://github.com/sipeed/NanoKVM/releases) 下载最新的应用安装包; 2. 解压缩下载的安装包,并将解压后的文件夹重命名为 `kvmapp`; 3. 备份 NanoKVM 系统中的 `/kvmapp` 目录,然后用解压后的 `kvmapp` 文件夹替换现有目录。 -4. 在 NanoKVM 中执行 `/etc/init.d/S95nanokvm restart` 重启服务。 \ No newline at end of file +4. 在 NanoKVM 中执行 `/etc/init.d/S95nanokvm restart` 重启服务。