-
Notifications
You must be signed in to change notification settings - Fork 137
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #704 from Z2Z-GuGu/main
Update NanoKVM Doc
- Loading branch information
Showing
64 changed files
with
1,051 additions
and
105 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
--- | ||
title: F&Q | ||
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool | ||
--- | ||
## Feedback | ||
* MaixHub Forum:https://maixhub.com/discussion/nanokvm | ||
* GitHub :https://github.com/sipeed/NanoKVM | ||
* QQ group: 703230713 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
--- | ||
title: Introduction | ||
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool | ||
update: | ||
- date: 2024-6-21 | ||
version: v0.1 | ||
author: BuGu | ||
content: | ||
- Release docs | ||
- date: 2024-8-14 | ||
version: v1.1 | ||
author: BuGu | ||
content: | ||
- Update docs | ||
--- | ||
|
||
## Introduction | ||
|
||
![](./../../../assets/NanoKVM/introduce/NanoKVM_3.png) | ||
|
||
The Lichee NanoKVM is an IP-KVM product based on the LicheeRV Nano, inheriting its compact size and powerful features. | ||
|
||
NanoKVM includes an HDMI input interface that can be recognized as a monitor by a computer, capturing the computer's screen. It has a USB 2.0 interface to connect to the computer host, recognized as HID devices like keyboard, mouse, and touchpad, and uses extra storage space on the TF card, mounted as a USB flash drive. It comes with a 100 Mbps Ethernet port for video and control signal transmission. Additionally, the Full version features an ATX power control interface (USB-C form) for remote control and monitoring of the host's power status. Under the Full version's shell, there is an OLED display for showing the device's IP and KVM-related status. | ||
|
||
To meet different user needs, NanoKVM is available in two versions: | ||
- **NanoKVM Lite**: Basic version suitable for DIY enthusiasts and enterprises with bulk requirements. | ||
- **NanoKVM Full**: Complete version with a sleek shell and full accessories, including a pre-installed system image card, recommended for individual users. | ||
|
||
## Use Cases | ||
|
||
![](./../../../assets/NanoKVM/introduce/web_ui.gif) | ||
|
||
- **Server Management**: For real-time monitoring and control of servers. | ||
- **Remote Desktop and Power Control**: Provides remote control functionality without requiring the host to be networked or run specific software. | ||
- **Remote Installation**: Simulates a USB flash drive to mount installation images and set up the system, also allows BIOS access. | ||
- **Remote Serial Port (Not exposed in Full beta version)**: Provides two serial ports for IPMI use or connecting other development boards for web-based serial terminal interaction. More features are coming soon (e.g., live streaming), stay tuned. | ||
|
||
![](./../../../assets/NanoKVM/introduce/application.png) | ||
|
||
## Specifications | ||
|
||
| Product | NanoKVM (Lite) | NanoKVM (Full) | PiKVM V4 | | ||
| --- | --- | --- | --- | | ||
| Computing Unit | LicheeRV Nano (RISCV) | LicheeRV Nano (RISCV) | CM4 (ARM) | | ||
| Resolution | 1080P @ 60fps | 1080P @ 60fps | 1080P @ 60fps | | ||
| Video Encoding | MJPEG, H264 (WIP) | MJPEG, H264 (WIP) | MJPEG, H264 | | ||
| Video Latency | 90-230ms | 90-230ms | 100-230ms | | ||
| UEFI/BIOS | ✓ | ✓ | ✓ | | ||
| Emulated USB Keyboard/Mouse | ✓ | ✓ | ✓ | | ||
| Emulated USB Storage | ✓ | ✓ | ✓ | | ||
| IPMI | ✓ | ✓ | ✓ | | ||
| Wake-on-LAN | ✓ | ✓ | ✓ | | ||
| Tailscale | ✓ | ✓ | ✓ | | ||
| WebSSH | ✓ | ✓ | ✓ | | ||
| Custom Scripts | ✓ | ✓ | - | | ||
| ATX Power Control | None, user-configurable | USB interface IO control board | RJ45 interface IO control board | | ||
| OLED Display | None, user-expandable | 128x64 0.96" white | 128x32 0.91" white | | ||
| Serial Terminal | 2 channels | 2 channels | - | | ||
| TF Card | None, user-provided | Included, ready to use | Included | | ||
| Expansion Accessories | None | WiFi or PoE | WiFi/LTE | | ||
| Power Consumption | 0.2A@5V | 0.2A@5V | Peak 2.6A@5V | | ||
| Power Input | Powered by PC USB | Powered by PC USB <br> Supports auxiliary power | Requires DC 5V 3A | | ||
| Cooling | Silent, fanless | Silent, fanless | Requires active fan cooling | | ||
| Dimensions | 23x37x15mm <br> ~1/30 PiKVM V4 size | 40x36x36mm <br> ~1/7 PiKVM V4 size | 120x68x44mm | | ||
|
||
## NanoKVM Hardware and Software Resources | ||
|
||
NanoKVM is built on the Sipeed [LicheeRV Nano](https://wiki.sipeed.com/hardware/zh/lichee/RV_Nano/1_intro.html) core board. You can find the hardware specifications, schematics, and dimensions here: [Click here](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano) | ||
|
||
NanoKVM Lite consists of the LicheeRV Nano E and HDMItoCSI board, while NanoKVM Full adds the NanoKVM-A/B board and shell to the Lite version. The HDMItoCSI board converts HDMI signals; NanoKVM-A includes OLED, ATX control output (TypeC interface), auxiliary power (TypeC interface), and ATX power/reset buttons; NanoKVM-B connects the A board to the computer's ATX pins for remote power control. | ||
|
||
> The NanoKVM image is built on the LicheeRV Nano SDK and MaixCDK, compatible with LicheeRV Nano resources. Other SG2002 products cannot use KVM software. Contact us for technical support if you want to develop HDMI input applications on NanoKVM. | ||
+ [Schematics](https://cn.dl.sipeed.com/shareURL/KVM/nanoKVM/HDK/02_Schematic) | ||
+ [3D Structure](https://cn.dl.sipeed.com/shareURL/KVM/nanoKVM/HDK/04_3D_file) | ||
+ [NanoKVM Image Download](https://github.com/sipeed/NanoKVM/releases) | ||
|
||
## Purchase Links | ||
|
||
[Official Taobao Store](https://item.taobao.com/item.htm?id=811206560480) | ||
[AliExpress Store]() | ||
[Pre-sale Page](https://sipeed.com/nanokvm) | ||
|
||
## Product Feedback | ||
|
||
If you encounter any issues or have suggestions, please contact us through the following channels: | ||
|
||
+ [Github Issues](https://github.com/sipeed/NanoKVM) | ||
+ [MaixHub Forum](https://maixhub.com/discussion/nanokvm) | ||
+ QQ Group: 703230713 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
--- | ||
title: frp | ||
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool | ||
update: | ||
- date: 2024-8-13 | ||
version: v0.1 | ||
author: xwj | ||
content: | ||
- Release docs | ||
--- | ||
|
||
> Note: Exposing services directly to the public internet is very dangerous! It is recommended to use HTTPS. | ||
To use frp, you need to create your own configuration file. You can refer to the [frp documentation](https://gofrp.org). | ||
|
||
Here is an example to access an [internal web service via frp](https://gofrp.org/zh-cn/docs/examples/vhost-http/). | ||
|
||
## Start the frps Service | ||
|
||
First, you need a server with a public IP address and start the frps service on it. Let's assume the server IP address is `20.190.1.1`. Replace this IP with your own public IP. | ||
|
||
1. Download and extract [frp](https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_linux_riscv64.tar.gzf). After extracting, go to the folder: | ||
|
||
```bash | ||
wget https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_linux_riscv64.tar.gz | ||
tar -xzvf frp_0.59.0_linux_riscv64.tar.gz | ||
cd frp_0.59.0_linux_riscv64 | ||
``` | ||
|
||
2. Create the configuration file `frps.yaml`: | ||
|
||
```yaml | ||
bindPort: 7000 | ||
vhostHTTPPort: 8080 | ||
``` | ||
|
||
3. Start the frps service: | ||
|
||
```bash | ||
./frps -c frps.yaml | ||
``` | ||
|
||
## Start the frpc Service | ||
|
||
1. SSH into the NanoKVM; | ||
2. Run `frpc -v` to check the version. If there is no output, install frpc manually; | ||
- Download and extract [frp](https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_linux_riscv64.tar.gzf); | ||
- Move the `frpc` file to the `/usr/bin/` directory. | ||
|
||
3. Create the configuration file `/etc/kvm/frpc.yaml`: | ||
|
||
```yaml | ||
serverAddr: 20.190.1.1 # Your public IP | ||
serverPort: 7000 | ||
proxies: | ||
- name: nanokvm | ||
type: http | ||
localPort: 80 | ||
customDomains: | ||
- 20.190.1.1 | ||
``` | ||
|
||
4. Start the frpc service: | ||
|
||
```bash | ||
frpc -c /etc/kvm/frpc.yaml | ||
``` | ||
|
||
After both frps and frpc services are started, you can access the NanoKVM via the public internet by entering `20.190.1.1:8080` in your browser. | ||
|
||
## Configure Domain | ||
|
||
To configure a domain for NanoKVM, modify the `frpc.yaml` file: | ||
|
||
```yaml | ||
serverAddr: 20.190.1.1 # Your public IP | ||
serverPort: 7000 | ||
proxies: | ||
- name: nanokvm | ||
type: http | ||
localPort: 80 | ||
customDomains: | ||
- www.yourdomain.com # Your domain | ||
``` | ||
|
||
Then point the domain [`www.yourdomain.com`](http://www.yourdomain.com) to `20.190.1.1`. | ||
|
||
You can now access NanoKVM by opening [`http://www.yourdomain.com:8080`](http://www.yourdomain.com:8080/) in your browser. | ||
|
||
## Configure HTTPS | ||
|
||
Refer to the frp documentation: [Enable HTTPS for local HTTP services](https://gofrp.org/zh-cn/docs/examples/https2http/). | ||
|
||
1. Configure the `frps.yaml` file: | ||
|
||
```yaml | ||
bindPort: 7000 | ||
vhostHTTPSPort: 443 | ||
``` | ||
|
||
2. Configure the `frpc.yaml` file: | ||
|
||
```yaml | ||
serverAddr: 20.190.1.1 # Your public IP | ||
serverPort: 7000 | ||
proxies: | ||
- name: nanokvm | ||
type: https | ||
customDomains: | ||
- yourdomain.com # Your domain | ||
plugin: | ||
type: https2http | ||
localAddr: 127.0.0.1:80 | ||
crtPath: ./server.crt # Certificate path | ||
keyPath: ./server.key # Private key path | ||
hostHeaderRewrite: 127.0.0.1 | ||
requestHeaders: | ||
set: | ||
x-from-where: frp | ||
``` | ||
|
||
3. Start both frps and frpc services, then access [`https://yourdomain.com`](https://yourdomain.com) in your browser. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
--- | ||
title: Static IP | ||
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool | ||
update: | ||
- date: 2024-8-13 | ||
version: v0.1 | ||
author: xwj | ||
content: | ||
- Release docs | ||
--- | ||
|
||
By default, NanoKVM obtains its IP address via DHCP, which means the IP address may change. | ||
|
||
If you want to always access NanoKVM using the same IP address, you can set a static IP. | ||
|
||
## Setting a Static IP | ||
|
||
Create a file `/boot/eth.nodhcp` in NanoKVM and edit it as follows: | ||
|
||
- Each line represents a custom IP in the format `addr/netid gw[optional]`; | ||
- You can preset multiple static IPs on multiple lines. | ||
|
||
```bash | ||
# Example | ||
192.168.0.101/24 192.168.0.1 # addr/netid gw | ||
192.168.3.116/22 # addr/netid | ||
``` | ||
|
||
After editing and saving the file, run the command `/etc/init.d/S30eth restart` to apply the configuration. | ||
|
||
**Note:** If all preset static IP addresses are detected by ARP as already in use, setting the static IP will fail. In this case, DHCP will be triggered to obtain an IP address. If this also fails, the IP will be forcibly set to `192.168.90.1/24`. | ||
|
||
This ensures that NanoKVM always has a usable IP address, allowing network access to operate NanoKVM. If NanoKVM does not receive a valid IP address, you will need to manually modify the file on the TF card or reflash the image to use it normally. | ||
|
||
## Canceling the Static IP | ||
|
||
Delete the `/boot/eth.nodhcp` file to cancel the static IP setting. NanoKVM will then obtain its IP address via DHCP again. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
--- | ||
title: Tailscale | ||
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool | ||
update: | ||
- date: 2024-8-13 | ||
version: v0.1 | ||
author: xwj | ||
content: | ||
- Release docs | ||
--- | ||
|
||
> **It is recommended to use NanoKVM with Tailscale for accessing remote hosts over the internet.** | ||
*Note: Tailscale is not supported in v1.0.0 of the image. If your NanoKVM image version is v1.0.0, please [update the image](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM/start/flashing.html) first.* | ||
|
||
NanoKVM now comes with Tailscale built-in, and you can start using it with just a few simple steps. There are two methods for configuring Tailscale: via the browser and via the terminal. Browser configuration is recommended. However, if you need more customization, you can also configure it via the terminal. | ||
|
||
## Configuring via Browser | ||
|
||
1. Enter the IP address of NanoKVM in your browser and access it. | ||
2. Click on Settings - Tailscale: | ||
|
||
![ipconfig](../../../../assets/NanoKVM/tailscale/setting.png) | ||
|
||
3. If prompted that Tailscale is not installed, click Install and wait for the installation to complete. If it shows as installed, proceed to the next step: | ||
|
||
![ipconfig](../../../../assets/NanoKVM/tailscale/install.png) | ||
|
||
4. Click Login and wait for Tailscale to start and generate a login link (this step only needs to be done once; Tailscale will start automatically on boot): | ||
|
||
![ipconfig](../../../../assets/NanoKVM/tailscale/login.png) | ||
|
||
5. Once the login link is generated, the browser will automatically open it. If it does not redirect automatically, manually visit the generated link. Log in to your Tailscale account and click `Connect` to add NanoKVM to your account. | ||
|
||
![ipconfig](../../../../assets/NanoKVM/tailscale/connect.png) | ||
|
||
6. You should now see NanoKVM under your Tailscale account. In a public network environment, run Tailscale and access NanoKVM using `100.79.236.88 (replace with your Tailscale IP)` in your browser: | ||
|
||
![ipconfig](../../../../assets/NanoKVM/tailscale/machines.png) | ||
|
||
## Configuring via Terminal | ||
|
||
1. SSH into NanoKVM. | ||
2. Execute `tailscale version` to check if Tailscale is already installed. If not, manually install it: | ||
- Download [Tailscale](https://pkgs.tailscale.com/stable/tailscale_latest_riscv64.tgz) and extract it; | ||
- Move the `tailscale` file to the `/usr/bin/` directory; | ||
- Move the `tailscaled` file to the `/usr/sbin/` directory. | ||
3. Execute `/etc/init.d/S98tailscaled restart` to start the Tailscale service. | ||
4. Execute `tailscale login` and wait for the login link to be generated, then visit the generated link in your browser. | ||
5. Click `Connect` in the browser to add NanoKVM to your Tailscale account. | ||
6. You're all set! You can now access NanoKVM via Tailscale. |
Oops, something went wrong.