Merge pull request #1 from pikvm/master

update
pull/49/head
Stefan 4 years ago committed by GitHub
commit a4af08a134
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -100,7 +100,7 @@ Pi-KVM supports several different hardware configurations, referred to as **plat
* USB-A 3A charger (female socket) or power supply.
* Video capture device:
- **Recommended**: [HDMI to CSI-2 bridge based on TC358743](https://aliexpress.com/item/4000102166176.html) - low latency ~100ms, more reliable.
- ... or [HDMI to USB dongle](https://aliexpress.ru/item/4001043540669.html) (not available for ZeroW) - high latency ~200ms, [not very reliable](#a-few-words-about-hdmi-usb-dongle)).
- ... or [HDMI to USB dongle](https://aliexpress.com/item/4001043540669.html) (not available for ZeroW) - high latency ~200ms, [not very reliable](#a-few-words-about-hdmi-usb-dongle)).
* Only for Raspberry Pi 4: parts for Y-splitter cable:
* Option #1: DIY (for soldering or twist):
- 1x USB-A to USB-C cable (male-male).
@ -118,7 +118,7 @@ Pi-KVM supports several different hardware configurations, referred to as **plat
- A breadboard and wires.
#### A few words about HDMI-USB dongle
It's completely supported and Pi-KVM works great with it. But it has some disadvantages compared with recommended [HDMI-CSI bridge](https://aliexpress.ru/item/4000102166176.html): USB gives a lot of latency (200ms vs 100ms) and it doesn't support stream compression control (you won't be able to use Pi-KVM in a place with a poor internet connection). It also cannot automatically detect screen resolution. All this is caused by the hardware limitations of the dongle itself. In addition, some users report hardware problems: the dongle may not work in the BIOS or simply stop working after a while. It's a black box, and no one knows what's inside it. If you have problems with it, it will not be possible to fix them.
It's completely supported and Pi-KVM works great with it. But it has some disadvantages compared with recommended [HDMI-CSI bridge](https://aliexpress.com/item/4000102166176.html): USB gives a lot of latency (200ms vs 100ms) and it doesn't support stream compression control (you won't be able to use Pi-KVM in a place with a poor internet connection). It also cannot automatically detect screen resolution. All this is caused by the hardware limitations of the dongle itself. In addition, some users report hardware problems: the dongle may not work in the BIOS or simply stop working after a while. It's a black box, and no one knows what's inside it. If you have problems with it, it will not be possible to fix them.
## Hardware for v0
* Raspberry Pi 2 or 3.
@ -135,7 +135,7 @@ It's completely supported and Pi-KVM works great with it. But it has some disadv
* ATX control (optional): [see v2 description](#hardware-for-v2).
#### Addition
* If you want to capture VGA from your server instead of HDMI, buy the [VGA-to-HDMI converter](https://aliexpress.ru/item/4000553298530.html).
* If you want to capture VGA from your server instead of HDMI, buy the [VGA-to-HDMI converter](https://aliexpress.com/item/4000553298530.html).
* Pi-KVM can be powered using PoE, but it is not recommend to use the official PoE HAT: it is unreliable and [not compatible with the HDMI bridge](https://github.com/pikvm/pikvm/issues/6). Use any other PoE hat without an I2C fan controller.
* **Don't use random relay modules or random optocouplers!** Some relays or optocouplers may not be sensitive enough for the Raspberry Pi, some others may be low-level controlled. Either use relays that are activated by a high logic level, or follow the design provided and buy an OMRON. See details [here](https://github.com/pikvm/pikvm/issues/13).
<img src="img/no_relays.png" alt="drawing" width="100"/>
@ -208,6 +208,9 @@ Congratulations! Your Pi-KVM will be available via SSH (`ssh root@<addr>` with p
To change the root password use command `passwd` via SSH or webterm. To change Pi-KVM web password use `kvmd-htpasswd set admin`.
# Access to Pi-KVM from the Internet
You can use port forwarding for port 443 on your router if it has an external IP address. In all other cases, you can use the excellent free VPN service [Tailscale](pages/tailscale.md), which is configured on Pi-KVM with a [few simple commands](pages/tailscale.md).
If you have any problems or questions, contact us using Discord: https://discord.gg/bpmXfz5
Happy using of Pi-KVM :)
@ -269,24 +272,12 @@ Our future [v3 platform](#the-future-v3-platform-work-in-progress) will contain
```
* To use IPMI BMC you need to set up an appropriate account and run the `kvmd-ipmi` daemon (`systemctl enable --now kvmd-ipmi`). Although Pi-KVM supports the IPMI protocol, we strongly recommend that you do not use it outside of trusted networks due to the protocol's [insecurity](https://github.com/NitescuLucian/nliplace.com.blog.drafts). Refer to the file `/etc/kvmd/ipmipasswd` to configure IPMI account.
* To use VNC you need to change the keyboard layout for non-US client keyboards using `/etc/kvmd/override.yaml`. For example:
```yaml
vnc:
keymap: /usr/share/kvmd/keymaps/ru
```
By default username and password authentication is used. This is not supported by all clients (we recommend [TigerVNC](https://tigervnc.org)). To enable passphrase authentication, you need to edit the file `/etc/kvmd/vncpasswd` to set passphrases and enable this feature in `/etc/kvmd/override.yaml`:
```yaml
vnc:
auth:
vncauth:
enabled: true
```
After that you can enable the `kvmd-vnc` daemon (`systemctl enable --now kvmd-vnc`). VNC will be available on port 5900 by default.
It is reccomended to disable the automatic quality adjust setting if there is one in your client (this is called "Auto-Select"in TigerVNC).
Please note: **we strongly discourage the use of VNC on untrusted networks.** The current implementation does not use encryption, and your passwords are transmitted over the network in a plain text. The existing anonymous TLS mode is also not secure enough.
* To use Arduino HID (for USB or PS/2) with **v2** platform see [here](pages/arduino_hid.md).
* [Enabling VNC](pages/vnc.md).
* [Using Arduino HID (for USB or PS/2) with **v2** platform](pages/arduino_hid.md).
* [Wi-Fi configuration after install](pages/wifi_config.md).
-----
@ -337,7 +328,9 @@ These kind people donated money to the Pi-KVM project and supported work on it.
* Aleksei Brusianskii
* Alucard
* Anton Kovalenko
* Aron Perelman
* Arthur Woimbée
* baddog
* Ben Gordon
* Branden Shaulis
* Brian White
@ -355,6 +348,7 @@ These kind people donated money to the Pi-KVM project and supported work on it.
* Grey Cynic
* Guido Bernacchi
* HimKo
* Ivan Shapovalov
* Jacob Morgan
* Jason Toland
* Jeff Bowman
@ -369,9 +363,12 @@ These kind people donated money to the Pi-KVM project and supported work on it.
* Mauricio Allende
* Michael Kovacs
* Michael Lynch
* Morgan Helton
* Nicholas Jeppson
* Nils Orbat
* Nithin Philips
* pozitron03
* Ranc1d
* Samed Ozoglu
* Scott
* Steven Richter

@ -1,5 +1,8 @@
# Hardware Arduino HID instead of the OTG
Using Arduino HID on non-v0 platforms is useful if you need a simple and primitive keyboard emulation device. For example, when used with a hardware KVM switch. You can use the firmware to emulate a USB keyboard and mouse, or for the PS/2 keyboard only.
Using Arduino HID on non-v0 platforms is useful if you need a simple and primitive keyboard emulation device. For example, when used with a hardware KVM switch. You can use the firmware to emulate:
* [USB keyboard & mouse](#usb-keyboard--mouse)
* [PS/2 keyboard only](#ps2-keyboard)
* [PS/2 keyboard & USB mouse](#ps2-keyboard--usb-mouse)
## USB keyboard & mouse
* Build and connect HID according to the [diagram](../README.md#setting-up-the-v0) (the bottom part with transistor, level-shifter and Arduino).
@ -24,7 +27,7 @@ Using Arduino HID on non-v0 platforms is useful if you need a simple and primiti
## PS/2 keyboard
Using the PS/2 firmware currently has the following limitations:
* The possibility of using USB HID is excluded.
* Mouse is not supported due to features of the [PS/2 protocol](https://wiki.osdev.org/PS/2_Mouse).
* PS/2 mouse is not supported due to features of the [PS/2 protocol](https://wiki.osdev.org/PS/2_Mouse).
Both of these problems will be solved one way or another in the future and the two different firmware versions will be combined into one universal one.
@ -45,3 +48,11 @@ Follow this diagram:
| Female PS/2 port (front view) | Pinout |
|-------------------------------|--------|
| <img src="/img/ps2_kbd.png" alt="drawing" width="200"/> | Arduino pin 7 <-> PS/2 CLOCK<br>Arduino pin 5 <-> PS/2 DATA<br>Arduino GND pin <-> PS/2 GND |
## PS/2 keyboard & USB mouse
This is a mixed mode of HID which is a compromise for old computers. Connections are made simultaneously by both USB and PS/2 pins, as shown in the diagram above. Follow the [PS/2 instructions](#ps2-keyboard), but use these commands to build and install the firmware:
```
# make mixed
# make install
```

@ -21,7 +21,7 @@ The Pi-KVM OS is based on Arch Linux ARM and contains all the required packages
* Choose the platform:
- `PLATFORM=v2-hdmi` for RPi4 or ZeroW with HDMI-CSI bridge.
- `PLATFORM=v0-hdmi` for RPi 2 or 3 with HDMI-CSI bridge and Arduino HID.
- `PLATFORM=v2-hdmiusb` for RPi4 with HDMI-USB dongle.
- `PLATFORM=v2-hdmiusb` for RPi4 or ZeroW with HDMI-USB dongle.
- `PLATFORM=v0-hdmiusb` for RPi 2 or 3 with HDMI-USB dongle and Arduino HID.
- Other options are for legacy or specialized Pi-KVM boards (WIP).

@ -0,0 +1,21 @@
# Tailscale VPN
You can use [Tailscale](https://tailscale.com/) to access Pi-KVM on the internal network. This is a convenient and free (for private use) tool for organizing a small VPN network.
# Installation
## On the Pi-KVM side
1. Use this commands:
```
# rw
# pacman -Syy
# pacman -S tailscale
# systemctl enable --now tailscaled
# tailscale up
```
2. Follow the link to authorize this installation.
3. After success, perform soft reboot using `reboot` command to make sure that everything will work correctly.
4. Perform command `ip addr show tailscale0` to view the Tailscale IP address.
## On the workstation side
* Download and install tailscale for your OS: https://tailscale.com/download
* Check tha page https://login.tailscale.com/admin/machines to view your VPN network.
* Follow the URL in the web browser: `https://<tailscale_kvm_ip>` and you will see Pi-KVM web interface.

@ -0,0 +1,33 @@
# VNC
As an alternative to the web interface, you can use VNC with various desktop clients. The main advantage of VNC over the browser is the ability to expand the image to the full screen, as well as complete interception of all keyboard keys. In some cases, VNC will be more responsive than the browser, especially on weak computers.
**Please note: we strongly don't recomment the use of VNC in untrusted networks.** The current implementation uses either weak TLS encryption or no encryption at all (depending on your client). In the latter case, your password will be transmitted over the network in plain text. Unfortunately, this is the reality of the VNC protocol.
# Enabling VNC on the Pi-KVM side
1. Switch Pi-KVM filesystem to the read-write mode using command `rw`.
2. Optional: change client's keyboard layout if you're using an non-US keyboard. To do this edit file `/etc/kvmd/override.yaml` (remove `{}` before adding lines):
```yaml
vnc:
keymap: /usr/share/kvmd/keymaps/ru
```
3. Optional: some VNC clients (for example TightVNC) can't use user/password authentication. In this case you can enable passhrases mode in `/etc/kvmd/override.yaml`:
```yaml
vnc:
auth:
vncauth:
enabled: true
```
To set passphrases edit file `/etc/kvmd/vncpasswd`.
4. Enable `kvmd-vnc` daemon. VNC will be available on the port 5900: `systemctl enable --now kvmd-vnc`.
5. Switch filesystem to the read-only: `ro`.
# Configuring the client
We recommend [TigerVNC](https://tigervnc.org) for the better experience.
Here the settings for this client:
* **Compression** tab:
- Choose **Tight** encoding as preferred and color-level **Full**.
- Disable automatic quality adjust settings **Auto Select**.
- Enable **Allow JPEG compression**.
* **Security** tab:
- Enable **None** and **Anonymous TLS** encryption.
- Enable **Username and password** authentication.
Loading…
Cancel
Save