From ddd1baf604bf9631eb1938862f6ed125973dea15 Mon Sep 17 00:00:00 2001 From: Maxim Devaev Date: Tue, 12 Oct 2021 21:45:00 +0300 Subject: [PATCH] docs.pikvm.org --- .github/workflows/ci.yml | 16 + .gitignore | 1 + README.md | 114 ++--- {pages => docs}/3d_printing.md | 15 +- docs/_assets/favicon.ico | Bin 0 -> 15086 bytes docs/_assets/logo.png | Bin 0 -> 2058 bytes docs/_assets/user.css | 80 ++++ docs/api.md | 430 +++++++++++++++++ docs/arduino_hid.md | 222 +++++++++ docs/arduino_hid/arduino_serial_hid.jpg | Bin 0 -> 279971 bytes {img => docs/arduino_hid}/arduino_spi_hid.png | Bin .../arduino_hid}/arduino_spi_hid_bb.jpg | Bin .../arduino_hid}/arduino_spi_hid_rpi.jpg | Bin {img => docs/arduino_hid}/ps2_kbd.png | Bin {pages => docs}/bluetooth_hid.md | 35 +- docs/building_os.md | 106 +++++ {pages => docs}/community_faq.md | 197 +------- docs/edid.md | 92 ++++ {pages => docs}/ezcoo.md | 152 +++--- docs/faq.md | 304 ++++++++++++ {img => docs/faq}/bios_glitch.png | Bin {img => docs/faq}/chrome.png | Bin docs/first_steps.md | 128 +++++ docs/flashing_hid.md | 364 ++++++++++++++ docs/flashing_os.md | 63 +++ {img => docs/flashing_os}/balena-1.png | Bin {img => docs/flashing_os}/balena-2.png | Bin {img => docs/flashing_os}/balena-3.png | Bin {img => docs/flashing_os}/balena-4.png | Bin {img => docs/flashing_os}/balena-5.png | Bin docs/gpio.md | 445 ++++++++++++++++++ {img => docs/gpio}/gpio_menu.png | Bin docs/index.md | 21 + {pages => docs}/ipmi.md | 42 +- {pages => docs}/mouse.md | 99 ++-- {pages => docs}/msd.md | 151 ++++-- {pages => docs}/multiport.md | 34 +- docs/port_forwarding.md | 11 + {pages => docs}/prometheus.md | 11 +- {stl => docs/stl}/v3.2/case_a.png | Bin {stl => docs/stl}/v3.2/case_a.stl | Bin {stl => docs/stl}/v3.2/case_a_no_oled.png | Bin {stl => docs/stl}/v3.2/case_a_no_oled.stl | Bin {stl => docs/stl}/v3.2/case_b.png | Bin {stl => docs/stl}/v3.2/case_b.stl | Bin {stl => docs/stl}/v3.2/case_b_no_aum.png | Bin {stl => docs/stl}/v3.2/case_b_no_aum.stl | Bin stl/v3.2/README.md => docs/stl/v3.2/index.md | 25 +- {stl => docs/stl}/v3.2/low_spacer.png | Bin {stl => docs/stl}/v3.2/low_spacer.stl | Bin {stl => docs/stl}/v3.2/spacer_1mm.png | Bin {stl => docs/stl}/v3.2/spacer_1mm.stl | Bin {stl => docs/stl}/v3.2/spacer_2mm.png | Bin {stl => docs/stl}/v3.2/spacer_2mm.stl | Bin {stl => docs/stl}/v3.2/spacer_6.2mm.png | Bin {stl => docs/stl}/v3.2/spacer_6.2mm.stl | Bin {stl => docs/stl}/v3.3/case_a.png | Bin {stl => docs/stl}/v3.3/case_a.stl | Bin {stl => docs/stl}/v3.3/case_a_no_oled.png | Bin {stl => docs/stl}/v3.3/case_a_no_oled.stl | Bin {stl => docs/stl}/v3.3/case_b.png | Bin {stl => docs/stl}/v3.3/case_b.stl | Bin stl/v3.3/README.md => docs/stl/v3.3/index.md | 19 +- {stl => docs/stl}/v3.3/low_spacer.png | Bin {stl => docs/stl}/v3.3/low_spacer.stl | Bin {stl => docs/stl}/v3.3/spacer_1mm.png | Bin {stl => docs/stl}/v3.3/spacer_1mm.stl | Bin {stl => docs/stl}/v3.3/spacer_6.2mm.png | Bin {stl => docs/stl}/v3.3/spacer_6.2mm.stl | Bin docs/tailscale.md | 31 ++ {pages => docs}/tesmart.md | 139 +++--- .../tesmart}/tesmart_controller_1.png | Bin .../tesmart}/tesmart_controller_2.png | Bin {pages => docs}/usb_ethernet.md | 23 +- docs/usb_serial.md | 36 ++ docs/v3.md | 107 +++++ docs/v3/assembled.jpg | Bin 0 -> 79747 bytes docs/v3/atx_led.jpg | Bin 0 -> 59727 bytes docs/v3/basic_back.jpg | Bin 0 -> 145287 bytes docs/v3/basic_front.jpg | Bin 0 -> 172365 bytes docs/v3/rj45.jpg | Bin 0 -> 161877 bytes docs/v3/v3_features.jpg | Bin 0 -> 74943 bytes docs/video.md | 41 ++ docs/vnc.md | 64 +++ img/vnc-keymaps.png => docs/vnc/keymaps.png | Bin {pages => docs}/webrtc.md | 44 +- docs/wifi.md | 129 +++++ {img => docs/wifi}/wifi-1.png | Bin {img => docs/wifi}/wifi-2.png | Bin {img => docs/wifi}/wifi-3.png | Bin {img => docs/wifi}/wifi-4.png | Bin {pages => docs}/wiring_examples.md | 8 +- {pages => docs}/wol.md | 13 +- docs/xh_hk4401.md | 128 +++++ {img => docs/xh_hk4401}/xh-hk4401.jpg | Bin {img => docs/xh_hk4401}/xh-hk4401_circuit.jpg | Bin mkdocs.yml | 90 ++++ pages/api.md | 343 -------------- pages/arduino_hid.md | 174 ------- pages/building_os.md | 128 ----- pages/community.md | 11 - pages/config.md | 191 -------- pages/cookbook.md | 89 ---- pages/edid.md | 48 -- pages/faq.md | 294 ------------ pages/flashing_hid.md | 344 -------------- pages/flashing_os.md | 105 ----- pages/gpio.md | 432 ----------------- pages/tailscale.md | 21 - pages/v3.md | 96 ---- pages/video.md | 34 -- pages/vnc.md | 47 -- pages/wifi_config.md | 101 ---- pages/xh-hk4401.md | 109 ----- 114 files changed, 3463 insertions(+), 3134 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 .gitignore rename {pages => docs}/3d_printing.md (86%) create mode 100644 docs/_assets/favicon.ico create mode 100644 docs/_assets/logo.png create mode 100644 docs/_assets/user.css create mode 100644 docs/api.md create mode 100644 docs/arduino_hid.md create mode 100644 docs/arduino_hid/arduino_serial_hid.jpg rename {img => docs/arduino_hid}/arduino_spi_hid.png (100%) rename {img => docs/arduino_hid}/arduino_spi_hid_bb.jpg (100%) rename {img => docs/arduino_hid}/arduino_spi_hid_rpi.jpg (100%) rename {img => docs/arduino_hid}/ps2_kbd.png (100%) rename {pages => docs}/bluetooth_hid.md (76%) create mode 100644 docs/building_os.md rename {pages => docs}/community_faq.md (52%) create mode 100644 docs/edid.md rename {pages => docs}/ezcoo.md (50%) create mode 100644 docs/faq.md rename {img => docs/faq}/bios_glitch.png (100%) rename {img => docs/faq}/chrome.png (100%) create mode 100644 docs/first_steps.md create mode 100644 docs/flashing_hid.md create mode 100644 docs/flashing_os.md rename {img => docs/flashing_os}/balena-1.png (100%) rename {img => docs/flashing_os}/balena-2.png (100%) rename {img => docs/flashing_os}/balena-3.png (100%) rename {img => docs/flashing_os}/balena-4.png (100%) rename {img => docs/flashing_os}/balena-5.png (100%) create mode 100644 docs/gpio.md rename {img => docs/gpio}/gpio_menu.png (100%) create mode 100644 docs/index.md rename {pages => docs}/ipmi.md (67%) rename {pages => docs}/mouse.md (58%) rename {pages => docs}/msd.md (67%) rename {pages => docs}/multiport.md (54%) create mode 100644 docs/port_forwarding.md rename {pages => docs}/prometheus.md (98%) rename {stl => docs/stl}/v3.2/case_a.png (100%) rename {stl => docs/stl}/v3.2/case_a.stl (100%) rename {stl => docs/stl}/v3.2/case_a_no_oled.png (100%) rename {stl => docs/stl}/v3.2/case_a_no_oled.stl (100%) rename {stl => docs/stl}/v3.2/case_b.png (100%) rename {stl => docs/stl}/v3.2/case_b.stl (100%) rename {stl => docs/stl}/v3.2/case_b_no_aum.png (100%) rename {stl => docs/stl}/v3.2/case_b_no_aum.stl (100%) rename stl/v3.2/README.md => docs/stl/v3.2/index.md (83%) rename {stl => docs/stl}/v3.2/low_spacer.png (100%) rename {stl => docs/stl}/v3.2/low_spacer.stl (100%) rename {stl => docs/stl}/v3.2/spacer_1mm.png (100%) rename {stl => docs/stl}/v3.2/spacer_1mm.stl (100%) rename {stl => docs/stl}/v3.2/spacer_2mm.png (100%) rename {stl => docs/stl}/v3.2/spacer_2mm.stl (100%) rename {stl => docs/stl}/v3.2/spacer_6.2mm.png (100%) rename {stl => docs/stl}/v3.2/spacer_6.2mm.stl (100%) rename {stl => docs/stl}/v3.3/case_a.png (100%) rename {stl => docs/stl}/v3.3/case_a.stl (100%) rename {stl => docs/stl}/v3.3/case_a_no_oled.png (100%) rename {stl => docs/stl}/v3.3/case_a_no_oled.stl (100%) rename {stl => docs/stl}/v3.3/case_b.png (100%) rename {stl => docs/stl}/v3.3/case_b.stl (100%) rename stl/v3.3/README.md => docs/stl/v3.3/index.md (86%) rename {stl => docs/stl}/v3.3/low_spacer.png (100%) rename {stl => docs/stl}/v3.3/low_spacer.stl (100%) rename {stl => docs/stl}/v3.3/spacer_1mm.png (100%) rename {stl => docs/stl}/v3.3/spacer_1mm.stl (100%) rename {stl => docs/stl}/v3.3/spacer_6.2mm.png (100%) rename {stl => docs/stl}/v3.3/spacer_6.2mm.stl (100%) create mode 100644 docs/tailscale.md rename {pages => docs}/tesmart.md (61%) rename {img => docs/tesmart}/tesmart_controller_1.png (100%) rename {img => docs/tesmart}/tesmart_controller_2.png (100%) rename {pages => docs}/usb_ethernet.md (88%) create mode 100644 docs/usb_serial.md create mode 100644 docs/v3.md create mode 100644 docs/v3/assembled.jpg create mode 100644 docs/v3/atx_led.jpg create mode 100644 docs/v3/basic_back.jpg create mode 100644 docs/v3/basic_front.jpg create mode 100644 docs/v3/rj45.jpg create mode 100644 docs/v3/v3_features.jpg create mode 100644 docs/video.md create mode 100644 docs/vnc.md rename img/vnc-keymaps.png => docs/vnc/keymaps.png (100%) rename {pages => docs}/webrtc.md (81%) create mode 100644 docs/wifi.md rename {img => docs/wifi}/wifi-1.png (100%) rename {img => docs/wifi}/wifi-2.png (100%) rename {img => docs/wifi}/wifi-3.png (100%) rename {img => docs/wifi}/wifi-4.png (100%) rename {pages => docs}/wiring_examples.md (65%) rename {pages => docs}/wol.md (78%) create mode 100644 docs/xh_hk4401.md rename {img => docs/xh_hk4401}/xh-hk4401.jpg (100%) rename {img => docs/xh_hk4401}/xh-hk4401_circuit.jpg (100%) create mode 100644 mkdocs.yml delete mode 100644 pages/api.md delete mode 100644 pages/arduino_hid.md delete mode 100644 pages/building_os.md delete mode 100644 pages/community.md delete mode 100644 pages/config.md delete mode 100644 pages/cookbook.md delete mode 100644 pages/edid.md delete mode 100644 pages/faq.md delete mode 100644 pages/flashing_hid.md delete mode 100644 pages/flashing_os.md delete mode 100644 pages/gpio.md delete mode 100644 pages/tailscale.md delete mode 100644 pages/v3.md delete mode 100644 pages/video.md delete mode 100644 pages/vnc.md delete mode 100644 pages/wifi_config.md delete mode 100644 pages/xh-hk4401.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..eeafb19 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,16 @@ +name: ci + +on: + push: + branches: + - master +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: 3.x + - run: pip install mkdocs-material mkdocs-video + - run: mkdocs gh-deploy --force diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..46ff246 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/site/ diff --git a/README.md b/README.md index 1c62130..67c309d 100644 --- a/README.md +++ b/README.md @@ -169,7 +169,7 @@ The dongle is completely supported and PiKVM works great with it. But it has som * **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). -# How to set up the device can be seen from [here](https://github.com/pikvm/pikvm/blob/master/pages/wiring_examples.md) +# How to set up the device can be seen from [here](https://docs.pikvm.org/wiring_examples) # PiKVM v3 HAT Features @@ -272,101 +272,53 @@ See video how-tos: ----- -# Installing the OS -Here the final steps. There are two ways to get the PiKVM OS: - * We provide the ready-made images for **Raspberry Pi 4** for platforms v3, **v2-hdmi** (the CSI-2 bridge) and **v2-hdmiusb** (the USB dongle); for **ZeroW** **v2-hdmi** [Follow these instructions](pages/flashing_os.md) to install the OS quickly. - * For the other boards and platforms, you need to build the operating system manually. Don't worry, it's very simple! [Just follow these instructions](pages/building_os.md). You can also build the OS for RPi4 manually if you really want to :) +# The final steps +1. [Flash the operating system](https://docs.pikvm.org/flashing_os). +2. **Carefully read [the "First steps" guide](https://docs.pikvm.orgfirst_steps)** - how to find a device on the network, how to log in there, change passwords, and so on. **Follow the steps described there and come back here**. +3. V0 only: [flash the Arduino HID](https://docs.pikvm.org/flashing_hid). +4. Note for HDMI-USB dongle: +
+ :exclamation:Click to show:exclamation: + + Many USB video capture devices tell the server's video card that the HDMI cable is supposedly disconnected. This may lead to the fact that if you boot the server without an active stream, the server will not detect your capture card. This is easy to fix: + * Switch filesystem to RW-mode: + ``` + # rw + ``` + * Edit file `/etc/kvmd/override.yaml` and add these lines: + ```yaml + kvmd: + streamer: + forever: true + cmd_append: [--slowdown] + ``` + * Finish: + ``` + # ro + # systemctl restart kvmd + ``` -# You're amazing! -- ❗NOTE❗ After performing any update of pikvm, clear web browser cache or use incognito/private browsing mode. - -Congratulations! Your PiKVM will be available via SSH (`ssh root@` with password `root` by default) and HTTPS (try to open in a browser the URL `https://`, the login `admin` and password `admin` by default). For HTTPS a self-signed certificate is used by default. - -To change the root password use command `passwd` via SSH or webterm. To change PiKVM web password use `kvmd-htpasswd set admin`. As indicated on the login screen use `rw` to make the root filesystem writable, before issuing these commands. After making changes, make sure to run the command `ro`. +
# Access to PiKVM from the Internet - ❗NOTE❗ Please take proper security precaustions when exposing this to the internet. The use of tailscale is HIGHLY suggested. -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 PiKVM with a [few simple commands](pages/tailscale.md). - -If you have any problems or questions, contact us using Discord: https://discord.gg/bpmXfz5 - -Subscribe to our Subreddit to follow news and releases: https://www.reddit.com/r/pikvm +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 VPN](https://docs.pikvm.org/tailscale), which is configured on PiKVM with a few simple commands. Happy using of PiKVM :) ----- -# Limitations -* In rare cases, some very buggy BIOSes doesn't like HID and Mass Storage in a single USB device. You can either [disable Mass Storage](https://github.com/pikvm/pikvm/blob/master/pages/msd.md#disable-msd), or use [Arduino HID](https://github.com/pikvm/pikvm/blob/master/pages/arduino_hid.md) to physically separate them. - ------ - # What's next? -* The PiKVM file system is always mounted in read-only mode. This prevents it from being damaged by a sudden power outage. To change the configuration you must first switch the filesystem to write mode using the command `rw` from root. After the changes, be sure to run the command `ro` to switch it back to read-only. - -* **NEVER** edit `/etc/kvmd/main.yaml`. Use `/etc/kvmd/override.yaml` to redefine the system parameters. All other files that are also not recommended for editing have read-only permissions. If you edit any of these files, you will need to manually make changes to them when you upgrade your system. You can view the current configuration and all available KVMD parameters using the command `kvmd -m`. - -* Almost all KVMD (the main daemon controlling PiKVM) configuration files use [YAML](https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html) syntax. Information on the format's syntax can be found at the link provided. - -* [Disabling authorization](pages/cookbook.md#disabling-authorization). - -* [Disabling ATX and hiding the menu](pages/cookbook.md#disabling-atx-and-hiding-the-menu). - -* [Disabling webterm](pages/cookbook.md#disabling-webterm). - -* [Using H.264 / WebRTC](pages/webrtc.md). - -* [Video modes of HDMI CSI brodge (if no video in UEFI)](pages/edid.md). - -* [Mouse modes (if the mouse doesn't work in UEFI)](pages/mouse.md). - -* [Recording screen video](pages/video.md). - -* [Multiport KVM over IP](pages/multiport.md). - -* [Using Mass-Storage Drive](pages/msd.md). - - [Disable MSD](pages/msd.md#disable-msd). - - [Upload images manually (without Web UI)](pages/msd.md#upload-images-manually-without-web-ui). - - [Multiple and writable drives](pages/msd.md#multiple-and-writable-drives). - - [Create a Microsoft Windows based Flash disk image](pages/msd.md#create-a-microsoft-windows-based-flash-disk-image). - - [Create a drive image on macOS](pages/msd.md#create-a-drive-image-on-macos). - -* [Using IPMI and Redfish](pages/ipmi.md). - -* [Using Wake-on-LAN](pages/wol.md). - -* [Using VNC](pages/vnc.md). - -* [Using Arduino HID (for USB or PS/2) on v2 platform](pages/arduino_hid.md). - -* [Using Bluetooth HID](pages/bluetooth_hid.md). - -* [Wi-Fi configuration after install](pages/wifi_config.md). - -* [Export monitoring metrics to Prometheus](pages/prometheus.md). - -* [Control GPIO ports, USB relays, IPMI hosts, send Wake-on-LAN messages](pages/gpio.md). - -* [Centralized authorization for multiple PiKVMs](https://github.com/pikvm/kvmd-auth-server). - -* [Cookbook](pages/cookbook.md). - - [Take a HDMI screenshot via console on PiKVM](pages/cookbook.md#take-a-hdmi-screenshot-via-console-on-pikvm). - - [Get installed KVMD version via console](pages/cookbook.md#get-installed-kvmd-version-via-console). - - [Enable Serial-over-USB connection](pages/cookbook.md#enable-serial-over-usb-connection). - ------ - -# FAQ and Troubleshooting -If you have any questions or run into problems, take a look at [this page](pages/faq.md). -We've probably already found a solution for it :) - -For any help, you can contact our discord chat: https://discord.gg/bpmXfz5 +* **Learn about the [basics of working with PiKVM](https://docs.pikvm.org/first_steps).** +* If you are a happy **PiKVM v3 HAT** user then we have a [special guide for you](https://docs.pikvm.org/v3). +* [**Explore the features of PiKVM**](https://docs.pikvm.org) using the documentation's table of contents. +* **If you encounter a problem**, take a look at the **[FAQ](https://docs.pikvm.org/faq)**, but if nothing helped, contact our **[Discord chat](https://discord.gg/bpmXfz5)** - experienced users and the PiKVM team will definitely help you. ----- # Donate -This project is developed on a non-commercial basis by Open Source enthusiasts. If you find PiKVM useful or it has saved you a long trip to check on an unresponsive server, you can support the lead developer by donating a few dollars via [Patreon](https://www.patreon.com/pikvm) or [PayPal](https://www.paypal.me/mdevaev). With this money, he will be able to buy new hardware (Raspberry Pi boards and other components) to test and maintain various configurations of PiKVM, and generally devote significantly more time to the project. At the bottom of this page are the names of all the people who have helped this project develop with their donations. Our gratitude knows no bounds! +This project is developed by Open Source enthusiasts. If you find PiKVM useful or it has saved you a long trip to check on an unresponsive server, you can support the lead developer by donating a few dollars via [Patreon](https://www.patreon.com/pikvm) or [PayPal](https://www.paypal.me/mdevaev). With this money, he will be able to buy new hardware (Raspberry Pi boards and other components) to test and maintain various configurations of PiKVM, and generally devote significantly more time to the project. At the bottom of this page are the names of all the people who have helped this project develop with their donations. Our gratitude knows no bounds! If you wish to use PiKVM in production, we accept orders to modify it for your needs or implement custom features you require. Contact us via [live chat](https://discord.gg/bpmXfz5) or email the lead developer at: mdevaev@gmail.com diff --git a/pages/3d_printing.md b/docs/3d_printing.md similarity index 86% rename from pages/3d_printing.md rename to docs/3d_printing.md index d0d76a8..944a347 100644 --- a/pages/3d_printing.md +++ b/docs/3d_printing.md @@ -1,7 +1,14 @@ -# 3D Printable Models for DIY +# Cases for 3D printing + +## PiKVM V3 HAT cases + +* [**v3.3 model (Kickstarter, Store)**](stl/v3.3/index.md) +* [v3.2 model (Pre-release)](stl/v3.2/index.md) + +## DIY cases | Model | Notes | -| ---- | ---- | +|-------|-------| | https://www.thingiverse.com/thing:4799094 | Case for the [USB-C/PWR Splitter without Barrel jack](https://www.tindie.com/products/8086net/usb-cpwr-splitter/) | | https://www.thingiverse.com/thing:4931970 | Case for the [USB-C/PWR Splitter without Barrel jack](https://www.tindie.com/products/8086net/usb-cpwr-splitter/) | | https://www.thingiverse.com/thing:4862304 | Case for PiKVM (LCD + ATX) | @@ -12,7 +19,3 @@ | https://www.thingiverse.com/thing:4915627 | ZeroW + CSI case | | https://www.thingiverse.com/thing:4950281 | PiKVM RETRO Case for CSI-2 C779 Bridge w/ OLED Display Screen | | https://www.thingiverse.com/thing:4950280 | USB Power Blocker Case | - -# V3 cases -* [v3.3 (Kickstarter) model](../stl/v3.3/README.md) -* [v3.2 model](../stl/v3.2/README.md) diff --git a/docs/_assets/favicon.ico b/docs/_assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..26af37a3ee8b9a4dd3c4a7fcb5843122e3e553c3 GIT binary patch literal 15086 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/api/auth/check + ``` + +* **Using HTTP Basic Auth.** Please note: contrary to the standard, this method DOES NOT use the `WWW-Authenticate` header. HTTP Basic Auth in this implementation is intended only for compatibility with other systems, such as [Prometheus](prometheus.md). + + ``` + $ curl -k -u admin:admin https:///api/auth/check + ``` + + +### Session-based cookie auth + +1. Authorize and get token for the user using `POST /api/auth/login`: + + ``` + $ curl -k -v -X POST --data user=admin --data passwd=admin https://pikvm/api/auth/login + ... + < Set-Cookie: auth_token=796cb83b11de4fcb749bc1bad14a91fb06dede84672b2f847fef1e988e6900de; Path=/ + ... + ``` + + On success the cookie `auth_token` will be received with `200 OK`. On invalid user or password you will get `403 Forbidden`. + +2. The handle `GET /api/auth/check` can be used for check the auth status. Return of `200 OK` will signal that user is authenticated. If the token or any of the single-request auth methods are missing, `401 Unauthorized` will be returned. In case of incorrect credentials or token, `403 Forbidden` will be returned. + +3. The handle `POST /api/auth/logout` can be used to invalidate session token. The response codes will be similar to the previous handle. + + +----- +## WebSocket events + +Most of the data during the user's work with pikvm is transmitted over WebSocket. This includes mouse events, keyboard input, change the state of the various subsystems (such as ATX and Mass Storage Drive). Each event type will be described in the corresponding paragraph for its component. When connecting via WebSocket, the client receives current states as separate events. Then, as the states change, it will receive new events. + +In a normal situation, opening a socket session triggers the video streamer to start. The streamer works as long as there is at least one client connected via WebSocket. After the last connection is closed and the client timeout expires, the streamer will also be terminated. + +It is possible create a session that will not start the streamer and will not be counted when counting clients to stop the streamer. To do this, use the URL parameter `stream=0`: + +``` +$ websocat -k wss:///api/ws?stream=0 -H X-KVMD-User:admin -H X-KVMD-Passwd:admin +``` + +??? example "Output with initial events" + ```js + {"event_type": "gpio_model_state", "event": {"scheme": {"inputs": {"led1": {"hw": {"driver": "__gpio__", "pin": 19}}, "led2": {"hw": {"driver": "__gpio__", "pin": 16}}}, "outputs": {"button1": {"switch": false, "pulse": {"delay": 0.1, "min_delay": 0.1, "max_delay": 0.1}, "hw": {"driver": "__gpio__", "pin": 26}}, "button2": {"switch": false, "pulse": {"delay": 0.1, "min_delay": 0.1, "max_delay": 0.1}, "hw": {"driver": "__gpio__", "pin": 20}}, "relay1": {"switch": true, "pulse": {"delay": 0.1, "min_delay": 0.1, "max_delay": 0.1}, "hw": {"driver": "relay", "pin": 0}}, "relay2": {"switch": true, "pulse": {"delay": 2.0, "min_delay": 0.1, "max_delay": 5.0}, "hw": {"driver": "relay", "pin": 1}}}}, "view": {"header": {"title": "Switches"}, "table": [[{"type": "label", "text": "Generic GPIO leds"}], null, [{"type": "label", "text": "Test 1:"}, {"type": "input", "channel": "led1", "color": "green"}, {"type": "output", "channel": "button1", "text": "Click"}], [{"type": "label", "text": "Test 2:"}, {"type": "input", "channel": "led2", "color": "green"}, {"type": "output", "channel": "button2", "text": "Click"}], null, [{"type": "label", "text": "HID Relays /dev/hidraw0"}], null, [{"type": "label", "text": "Relay #1:"}, {"type": "output", "channel": "relay1", "text": "Boop 0.1"}], [{"type": "label", "text": "Relay #2:"}, {"type": "output", "channel": "relay2", "text": "Boop 2.0"}]]}}} + {"event_type": "info_extras_state", "event": {"vnc": {"name": "VNC", "description": "Show VNC information", "icon": "share/svg/vnc.svg", "path": "vnc", "keyboard_cap": false, "daemon": "kvmd-vnc", "port": 5900, "place": 20, "enabled": true}, "ipmi": {"name": "IPMI", "description": "Show IPMI information", "icon": "share/svg/ipmi.svg", "path": "ipmi", "keyboard_cap": false, "daemon": "kvmd-ipmi", "port": 623, "place": 21, "enabled": true}}} + {"event_type": "info_hw_state", "event": {"platform": {"type": "rpi", "base": "Virtual Raspberry Pi"}, "health": {"temp": {"cpu": 36.511, "gpu": 35.0}, "throttling": {"raw_flags": 0, "parsed_flags": {"undervoltage": {"now": false, "past": false}, "freq_capped": {"now": false, "past": false}, "throttled": {"now": false, "past": false}}}}}} + {"event_type": "info_meta_state", "event": {"server": {"host": "localhost.localdomain"}, "kvm": {}}} + {"event_type": "info_system_state", "event": {"kvmd": {"version": "1.102"}, "streamer": {"app": "ustreamer", "version": "1.25", "features": {"WITH_OMX": false, "WITH_GPIO": false, "WITH_PTHREAD_NP": true, "WITH_SETPROCTITLE": true, "HAS_PDEATHSIG": true}}, "kernel": {"system": "Linux", "release": "5.8.10-arch1-1", "version": "#1 SMP PREEMPT Thu, 17 Sep 2020 18:01:06 +0000", "machine": "x86_64"}}} + {"event_type": "wol_state", "event": {"enabled": false, "target": {"ip": "255.255.255.255", "port": 9, "mac": ""}}} + {"event_type": "gpio_state", "event": {"inputs": {"led1": {"online": true, "state": false}, "led2": {"online": true, "state": false}}, "outputs": {"button1": {"online": true, "state": false, "busy": false}, "button2": {"online": true, "state": false, "busy": false}, "relay1": {"online": false, "state": false, "busy": false}, "relay2": {"online": false, "state": false, "busy": false}}}} + {"event_type": "hid_state", "event": {"online": true, "keyboard": {"online": true, "leds": {"caps": false, "scroll": false, "num": false}}, "mouse": {"online": true}}} + {"event_type": "atx_state", "event": {"enabled": true, "busy": false, "leds": {"power": false, "hdd": false}}} + {"event_type": "msd_state", "event": {"enabled": true, "online": true, "busy": false, "storage": {"size": 234950152192, "free": 23514271744, "images": {}, "uploading": false}, "drive": {"image": null, "connected": false, "cdrom": true}, "features": {"multi": true, "cdrom": true}}} + {"event_type": "streamer_state", "event": {"limits": {"max_fps": 40}, "params": {"desired_fps": 30, "quality": 80}, "snapshot": {"saved": null}, "streamer": null, "features": {"quality": true, "resolution": false}}} + {"event_type": "loop", "event": {}} + ``` + +After connecting the client receives a bundle of states of all KVMD subsystems. After the batch is completed, it sends a `loop` event, which means that the websocket has entered event loop mode. Now it will send new states and respond to client's requests. + +Another type of event is `ping`, which can be sent by the client: `{"event_type": "ping", "event": {}}`. If the server is running, it will respond with pong: `{"event_type": "pong", "event": {}}`. + +??? example "Sending key events using Python" + For keypresses, set `event_type` to `key` and fill in the `event` structure with `key` and `state`, where `key` is the key from mapping and `state` is boolean that determines if the key is pressed or released: + + ```python + # python, install websocket-client + import websocket + uri = "wss://10.0.0.7/api/ws?stream=0" + headers = {"X-KVMD-User": "admin", "X-KVMD-Passwd": "admin"} + ws = websocket.WebSocket(sslopt={"cert_reqs": ssl.CERT_NONE}) + ws.connect(uri, header=headers) + ws.send('{"event_type": "key", "event": {"key": "Enter", "state": true}}') + time.sleep(0.05) + ws.send('{"event_type": "key", "event": {"key": "Enter", "state": false}}') + ws.close() + ``` + + +----- +## System functions + +### Get system info + +The `GET /api/info` handle returns the general information about the PiKVM device. + +Parameters: + +* `fields=...` *(optional)* - Only specified categories will be returned, for example `fields=system,hw`. By default all categories will be displayed. + +``` +$ curl -k -u admin:admin https:///api/info +``` + +??? note "Click to expand" + ```js + { + "ok": true, + "result": { + "extras": { // Installed applications; null on internal error + "ipmi": { + "daemon": "kvmd-ipmi", + "description": "Show IPMI information", + "enabled": true, + "icon": "share/svg/ipmi.svg", + "keyboard_cap": false, + "name": "IPMI", + "path": "ipmi", + "place": 21, + "port": 623 + }, + "vnc": { + "daemon": "kvmd-vnc", + "description": "Show VNC information", + "enabled": true, + "icon": "share/svg/vnc.svg", + "keyboard_cap": false, + "name": "VNC", + "path": "vnc", + "place": 20, + "port": 5900 + } + }, + "hw": { // Hardware info + "health": { + "temp": { + "cpu": 36.511, // /sys/class/thermal/thermal_zone0/temp / 1000; null on error + "gpu": 35.0 // vcgencmd measure_temp; null on error + }, + "throttling": { // vcgencmd get_throttled; null on error + "parsed_flags": { + "freq_capped": { + "now": false, + "past": false + }, + "throttled": { + "now": false, + "past": false + }, + "undervoltage": { + "now": false, + "past": false + } + }, + "raw_flags": 0 + } + }, + "platform": { + "base": "Raspberry Pi 4 Model B Rev 1.1", // /proc/device-tree/model; null on error + "type": "rpi" + } + }, + "meta": { // /etc/kvmd/meta.yaml; null on error + "kvm": {}, + "server": { + "host": "localhost.localdomain" + } + }, + "system": { + "kernel": { + "machine": "x86_64", + "release": "5.8.14-arch1-1", + "system": "Linux", + "version": "#1 SMP PREEMPT Wed, 07 Oct 2020 23:59:46 +0000" + }, + "kvmd": { + "version": "2.1" + }, + "streamer": { + "app": "ustreamer", + "features": { // {} on error + "HAS_PDEATHSIG": true, + "WITH_GPIO": false, + "WITH_OMX": false, + "WITH_PTHREAD_NP": true, + "WITH_SETPROCTITLE": true + }, + "version": "2.1" // "" on error + } + } + } + } + ``` + +Each category is represented by its own event in the websocket (`info_hw_state`, `info_system_state`, etc). The event content has the same format as the category content in API. + + +### Get system log + +The `GET /api/log` handle displays logs from all KVMD services as plain text. + +Parameters: + +* `follow=1` *(optional)* - Turns the request into long-polling mode and follow log messages in real time. +* `seek=N` *(optional)* - Runs the log for the specified time in seconds, for example `seek=3600` will show the log for the last hour. + +``` +$ curl -k -u admin:admin https:///api/log +``` + +----- +## ATX power management + +### Get ATX state + +The `GET /api/atx` handle shows the current ATX state. + +``` +$ curl -k -u admin:admin https:///api/atx +``` + +??? note "Click to expand" + ```js + { + "ok": true, + "result": { + "busy": false, // True if ATX is busy performing an operation and does not accept commands + "enabled": true, + "leds": { + "hdd": false, + "power": false + } + } + } + ``` + + +### Set ATX power + +The `POST /api/atx/power` handle changes ATX power state to desired. + +Parameters: + +* `action=...` - Describes desired state: + * `on` - Turn on (do nothing in case PSU is already on). + * `off` - Turn off (aka soft-off), emulates click on the power button. + * `off_hard` - Perform long press on the power button (5+ seconds). + * `reset_hard` - Emulates pressing reset button (hardware hot reset). +* `wait=1` *(optional)* - Says if call should return immediately or just after finishing operation. + +``` +$ curl -X POST -k -u admin:admin https:///api/atx/power?action=on +``` + + +### Click ATX button + +The `POST /api/atx/click` handle sends the ATX button press event. + +Parameters: + +* `button=...` - Specifies the desired PC case button: + * `power` - Short click on the power button. + * `power_long` - Long press on the power button (5+ seconds). + * `reset` - Short click on the reset button. +* `wait=1` *(Optional)* - Says if call should return immediately or just after finishing operation. + +``` +$ curl -X POST -k -u admin:admin https:///api/atx/click?button=power +``` + + +----- +## Mass Storage Drive + +### Get MSD state + +The `GET /api/msd` handle shows the current MSD state. + +``` +$ curl -k -u admin:admin https:///api/msd +``` + + +### Upload MSD image + +The `POST /api/msd/write` uploads an image to MSD. + +Parameters: + +* `image=...` - Specifies the name of the image. +* Binary data should be passed to the POST body. + +``` +$ # create a test image +$ dd if=/dev/zero of=test.iso bs=1M count=1 + +$ # upload it to pikvm +$ curl -v -X POST --data-binary @test.iso -k -u admin:admin https:///api/msd/write?image=test.iso +``` + + +### Upload MSD image by URL + +The `POST /api/msd/write_remote` handle downloads an image from HTTP(S) URL to the MSD. + +Parameters: + +* `url=...` - Image URL. +* `image=...` *(optional)* - Image name. +* `timeout=N` *(optional)* - Remote request timeout, 10 seconds by default. + +!!! note + This is a long-polling request. Do not interrupt the request until the download is complete, otherwise the download will stop. + +``` +$ # create test image +$ dd if=/dev/zero of=test.iso bs=1M count=1 + +$ # upload it to pikvm +$ curl -v -X POST -k -u admin:admin https:///api/msd/write_remote?url=http://example.com/test.iso +``` + + +### Set MSD parameters + +The `POST /api/msd/set_params` handle changes the current image and/or set drive parameters + +Parameters: + +* `image=...` *(optional)* - Change the current image. +* `cdrom=1|0` *(optional)* - Change the media type to the CD-ROM on `1`, otherwise to the Flash. + +``` +$ curl -X POST -k -u admin:admin "https:///api/msd/set_params?image=test.iso&cdrom=1" +``` + + +### Control MSD + +The `POST /api/msd/set_connected` connects or disconnect the MSD to the host. + +Parameters: + +* `connected=1|0` - Change the state. + +``` +$ curl -X POST -k -u admin:admin https:///api/msd/set_connected?connected=1 +``` + + +### Remove MSD image + +The `POST /api/msd/remove` handle removes the specified image. + +Parameters: + +* `image=...` - The image name. + +``` +$ curl -X POST -k -u admin:admin https:///api/msd/remove?image=test.iso +``` + + +### Reset MSD + +The `POST /api/msd/reset` handle resets the drive. + +``` +$ curl -X POST -k -u admin:admin https:///api/msd/reset +``` + + +----- +## GPIO + +### Get GPIO state + +The `GET /api/gpio` handle shows the current GPIO state. + +``` +$ curl -k -u admin:admin https:///api/gpio +``` + + +### Switch GPIO channel + +The `POST /api/gpio/switch` handle interacts with selected GPIO driver channel in `switch` mode. + +Parameters: + +* `channel=...` - The GPIO driver channel. +* `state=1|0` - The new switch state. +* `wait=1` *(optional)* - Says if call should return immediately or just after finishing operation. + + +### Pulse GPIO channel + +The `POST /api/gpio/pulse` handle interacts with selected GPIO driver channel in `pulse` mode. + +Parameters: + +* `channel=...` - The GPIO driver channel. +* `delay=N.N` *(optional)* - The pulse time in seconds (float), `0` for default delay. +* `wait=1` *(optional)* - Says if call should return immediately or just after finishing operation. + + +---- +## Misc + +### Get Prometheus metrics + +The `GET /api/export/prometheus/metrics` handle returns the Prometheus metrics. Also see [here](prometheus.md) for details. + +``` +$ curl -k -u admin:admin https:///api/export/prometheus/metrics +``` + +----- +# To be continued ===> + +You can find all existing APIs in the [KVMD source tree](https://github.com/pikvm/kvmd/tree/master/kvmd/apps/kvmd/api). We would appreciate your help with documentation. diff --git a/docs/arduino_hid.md b/docs/arduino_hid.md new file mode 100644 index 0000000..ce6d873 --- /dev/null +++ b/docs/arduino_hid.md @@ -0,0 +1,222 @@ +# Using Arduino HID on non-v0 platform + +This is useful if you need a simple and primitive keyboard/mouse emulator device. For example when used with a hardware KVM switch which [does not recognize composite HID](https://github.com/pikvm/pikvm/issues/7). You can also use the Arduino HID to emulate the PS/2 keyboard. + + +----- +## Serial HID + +!!! warning "PiKVM v3 HAT note" + Don't use it, use [SPI HID](#spi-hid) for v3. Otherwise, you won't be able to use the Serial console. + +### USB keyboard and mouse + +1. ??? example "Get some parts" + * Arduino Pro Micro (based on an ATMega32u4). + * [Logic level shifter](https://www.sparkfun.com/products/12009). + * 1x NPN transistor (almost any NPN transistor: 2n2222 or similar). + * 1x 390 Ohm resistor. + * A breadboard and wires. + +2. ??? example "Build the Arduino HID according to the scheme" + + +3. Power up PiKVM and switch it to RW-mode using command `rw`. + +4. Add these lines to `/etc/kvmd/override.yaml`: + + ```yaml + kvmd: + hid: + type: serial + reset_pin: 4 + device: /dev/kvmd-hid + ``` + +5. Create file `/etc/udev/rules.d/99-kvmd-extra.rules`: + + ```udev + KERNEL=="ttyAMA0", SYMLINK+="kvmd-hid" + ``` + +6. Run `systemctl disable getty@ttyAMA0.service`. + +7. Remove `console=ttyAMA0,115200`or `console=serial0,115200` and `kgdboc=ttyAMA0,115200` or `kgdboc=serial0,115200` from `/boot/cmdline.txt`. + +8. [Flash the Arduino HID](flashing_hid.md). + +9. Perform `reboot`. + + +### PS/2 keyboard + +Using the PS/2 firmware currently have some limitations: + +* The possibility of using the switchable USB HID is excluded. +* PS/2 mouse is not supported right now (but it will). + +Both of these problems will be solved in the nearest future and the two different firmware versions will be combined into one universal one. + +To select the PS/2 firmware, follow the instructions for the [USB](#usb-keyboard-and-mouse), but with one exception: + +??? note "Before `make` you will need to edit file `platformio.ini`" + Open the file and find these lines: + + ```ini + [_common] + build_flags = + -DHID_PS2_KBD_CLOCK_PIN=7 + -DHID_PS2_KBD_DATA_PIN=5 + -DHID_USB_CHECK_ENDPOINT + # ----- The default config with dynamic switching ----- + -DHID_DYNAMIC + -DHID_WITH_USB + -DHID_SET_USB_KBD + -DHID_SET_USB_MOUSE_ABS + # ----- PS2 keyboard only ----- + # -DHID_WITH_PS2 + # -DHID_SET_PS2_KBD + # ----- PS2 keyboard + USB absolute mouse ----- + # -DHID_WITH_USB + # -DHID_WITH_PS2 + # -DHID_SET_PS2_KBD + # -DHID_SET_USB_MOUSE_ABS + # ----- PS2 keyboard + USB relative mouse ----- + # -DHID_WITH_USB + # -DHID_WITH_PS2 + # -DHID_SET_PS2_KBD + # -DHID_SET_USB_MOUSE_REL + ``` + + By default, the firmware works with USB HID and supports dynamic mode switching. You can choose one of the other modes by commenting some lines and uncommenting others. This example to use a USB mouse and PS/2 keyboard: + + ```ini + ... + # ----- The default config with dynamic switching ----- + # -DHID_DYNAMIC + # -DHID_WITH_USB + # -DHID_SET_USB_KBD + # -DHID_SET_USB_MOUSE_ABS + # ----- PS2 keyboard only ----- + ... + # ----- PS2 keyboard + USB absolute mouse ----- + -DHID_WITH_USB + -DHID_WITH_PS2 + -DHID_SET_PS2_KBD + -DHID_SET_USB_MOUSE_ABS + # ----- PS2 keyboard + USB relative mouse ----- + ... + ``` + +Next, connect Arduino pins to the female PS/2 port of your motherboard. Choose the purple port. If your motherboard only have one port, it's probably universal and can be used either for the keyboard or for the mouse. Most likely, it is painted in two colors: green and purple. You can use it either. + +??? example "Follow the diagram" + | Female PS/2 port (front view) | Pinout | + |-------------------------------|--------| + | drawing | Arduino pin 7 <-> PS/2 CLOCK
Arduino pin 5 <-> PS/2 DATA
Arduino GND pin <-> PS/2 GND | + + !!! warning + Connect VIN pin of Arduino to [any Raspberry's 5v pin](https://pinout.xyz/pinout/5v_power) for PS/2 only device. But you don't need to connect the Arduino VIN pin if you connected USB (Arduino will get power through it). + + +----- +## SPI HID + +Using an SPI connection, an Arduino Micro (not Pro) or compatible can be flashed from the Pi and used as an HID keyboard and mouse. Unlike UART, SPI does not share pins with Bluetooth on the Raspberry Pi so the Bluetooth radio does not need to be disabled. + +Diagram of the Arduino SPI wiring for HID keyboard and mouse. + +Before powering either device, double-check the connections. The following should be wired from the Pi to either the level shifter or the Arduino. While the Arduino tolerates 3.3V logic input, 5V outputs from the Arduino can damage or destroy the Raspberry Pi and must not be connected directly to 3.3V GPIO pins directly. + + +### Parts list + +There are very few parts needed besides the Raspberry Pi to build the solution. Some parts may be purchased with or without headers, if headers are not pre-soldered, it may be necessary to order some breakaway header strips and solder them to the boards prior to assembly unless the wires will be soldered directly to the boards. + +* Raspberry Pi Zero W or Pi 4 are the most popular boards for this solution, pre-soldered headers recommended +* Arduino Micro (or compatible) microcontroller board with pre-soldered headers recommended +* Logic Level Converter. This may be RX/TX, Bidirectional, or Single Supply +* Dupont wires (female to male pin) recommended for breadboard or other suitable means of making the connections +* *Optional:* Breakaway headers for the logic level converter +* *Optional:* Breadboard large enough to accomodate the parts +* *Optional:* Header pins for connection to a breadboard + +!!! note + A smaller "Pro Micro" board is available in a 3.3V model but the SS connection (RX_LED) is not available as a separate pin or solderable hole. If using this board, a jumper wire can be soldered to the resistor for the RX_LED but there is risk of burning the resistor, the LED, the board, or other components in the process. Advantages of this board include not requiring a logic level converter and reduced breadboard or board space for building the solution. + + +### List of connections to be made + +For the primary functionality, most connections are made using a 4-channel bidirectional level shifter + +* Pi 3v3 to LV on the level shifter +* Pi Ground to LV GND +* Arduino GND to HV GND +* GPIO10 (MOSI) via the level shifter to MOSI on the Arduino +* GPIO9 (MISO) via the level shifter to MISO on the Arduino +* GPIO11 (SPIO_SCLK) via the level shifter to SCK on the Arduino +* GPIO7 (SPIO_CE1_N) via the level shifter to SS (or RX_LED) on the Arduino + +An additional circuit is used with a transistor to reset the HID for mode changes and for SPI programming as follows: + +* GPIO25 to PNP base on transistor +* PNP emitter to ground +* PNP collector to RST on the Arduino + +Pictures of this setup are also available in full resolution for download to assist for both the Raspberry Pi and the Arduino board. A smaller version of the images has been included on this page and can be downloaded. + +| Raspberry Pi Closeup | Breadboard with Arduino | +|------------|--------| +| A closeup of the Raspberry Pi wired to the breadboard. | Arduino on a breadboard fully wired to the Pi. | + +Programming assumes the Arduino is powered via USB, either from the connected host or the Pi itself. If the USB is not connected, 5 V may be provided by the Raspberry Pi GPIO but should be disconnected prior to connecting USB to the Arduino's USB port. The Raspberry Pi does not have backcurrent protection, a circuit using one or more Schottky diodes can be built to OR power from multiple sources but it's easier and more cost effective to avoid conflict and voltage differences between power supplies by leaving the 5 V wire disconnected. + + +### Preparing the installation for SPI devices and programming + +As of the latest package release, the kdmd service supports SPI. It should be sufficient to ensure the packages are up-to-date with the latest release, the programmer is installed, and the SPI device overlay is loaded at boot. + +* Switch the filesystem to read-write mode with `rw` +* Update the system with `pacman -Syu` for the latest packages +* Install the avrdude programmer with `pacman -S avrdude-svn` +* Add `dtoverlay=spi0-1cs` to `/boot/config.txt` +* Reboot with `reboot` or `systemctl reboot` + + +### Flashing the Arduino + +Instructions on flashing the Arduino can be found on the page [Flash the Arduino HID](flashing_hid.md). + +If programming fails, ensure the Arduino is powered and check the wiring again. If there is a misconfiguration, power off the Pi and the Arduino, correct the wiring, and try again. Note it is not recommended or required to supply 5V power from the Raspberry Pi if the Arduino is USB powered, if the issue appears to be power related it may be removed from the solution and replaced with a powered USB connection if it will aid in troubleshooting but check all other wires first to ensure there are no shorts. + +Wiring problems are a common issue but there could be other reasons for programming not to complete. While it is not possible to list every possible problem and solution here, there is an active user community in our [Discord](https://discord.gg/bpmXfz5) with others familiar with the solution and willing to help. + + +### Enable the SPI configuration and restart kvmd + +Once the installation has completed, all that should remain is to add the following configuration to `/etc/kvmd/override.yaml` and restart the kvmd service. If the first line exists due to existing overrides, omit that line and either add or update the hid section as appropriate. + +```yaml +kvmd: + hid: + type: spi + chip: 0 + bus: 0 + sw_cs_pin: 7 + reset_pin: 25 + reset_inverted: true +``` + +After saving the changes to `/etc/kvmd/override.yaml`, restart `kvmd` and clear your browser cache. The command to restart `kvmd` is + +``` +# systemctl restart kvmd +``` + +If your device is still in read-write mode, `ro` will put the SD back in read-only mode. + + +----- +## Fixing the USB absolute mouse on Windows 98 + +Due to an ancient buggy driver, the USB absolute mouse on Windows 98 moves only within the upper-left quarter of the screen. To fix this, just recompile the firmware with uncommented flag `-DHID_WITH_USB_WIN98` in `platformio.ini`. diff --git a/docs/arduino_hid/arduino_serial_hid.jpg b/docs/arduino_hid/arduino_serial_hid.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f17f1b7ee5ae5e3ad8578ac1219b7b1f005851b0 GIT binary patch literal 279971 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 z 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≪O@%mT)gL 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

gvBDs(PXfxIV~=)5}>iuc|H!V^JDqp_<>vXrKpr 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 Z<}^9EQ-y{lRE}lb<_pp;Y9QAW|JkFKxXb_m literal 0 HcmV?d00001 diff --git a/docs/v3/basic_front.jpg b/docs/v3/basic_front.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6d9a6c46f1c5eb12c4d96f5f2e32ca7b8646f3e6 GIT binary patch literal 172365 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 literal 0 HcmV?d00001 diff --git a/docs/v3/rj45.jpg b/docs/v3/rj45.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bb974c69aeb8109014b2fec18b3524d32c5c817b GIT binary patch literal 161877 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 literal 0 HcmV?d00001 diff --git a/docs/v3/v3_features.jpg b/docs/v3/v3_features.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fbe8d67cf11909d1dff08549af82ff01fb4f7fb0 GIT binary patch literal 74943 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

D#SqKYRSaS;7*jRBwg+OI2EN!hh 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�cfiZx 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 literal 0 HcmV?d00001 diff --git a/docs/video.md b/docs/video.md new file mode 100644 index 0000000..78e24cb --- /dev/null +++ b/docs/video.md @@ -0,0 +1,41 @@ +# Working with video + +## Video recording + +!!! info + H.264 is available on Pi 3 and Pi 4. Older boards won't handle it. Best of all this feature only works for HDMI to CSI bridge. For the USB HDMI dongle, there will be a decrease in FPS to 10-15 for 1080p. Work in progress. + +1. Perform full system update to get the latest uStreamer and install ffmpeg: + + ``` + # rw + # pacman -Syu + # pacman -S ffmpeg + ``` + +2. For USB dongle only: Add line `gpu_mem=256` to `/boot/config.txt`. + +3. Perform `reboot` command. + +4. Run `rw` after the reboot. + +6. To record a video, you need to enable the stream (open the web interface or connect via VNC). Then run something like this in the console: + + ``` + # rw + # ustreamer-dump --sink kvmd::ustreamer::h264 --output - | ffmpeg -use_wallclock_as_timestamps 1 -i pipe: -c:v copy test.mp4 + ``` + +7. Press `Ctrl+C` to stop recording. Your video will be in the file `test.mp4`. + +8. After finishing work, do not forget to switch the file system to read-only mode using `ro` command. + + +## Take a screenshot via console on PiKVM + +!!! note + You must have a stream running + +``` +# curl --unix-socket /run/kvmd/ustreamer.sock http://localhost/snapshot -o /tmp/screen.jpg +``` diff --git a/docs/vnc.md b/docs/vnc.md new file mode 100644 index 0000000..531724d --- /dev/null +++ b/docs/vnc.md @@ -0,0 +1,64 @@ +# 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. + +!!! warning + Don't use VNC without X.509 or TLS encryption on untrusted networks! Otherwise your password will be transmitted over the network in plain text. Unfortunately, this is the reality of the VNC protocol. + + +## Enabling VNC on the PiKVM side + +1. Switch PiKVM filesystem to 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`: + + ```yaml + vnc: + keymap: /usr/share/kvmd/keymaps/ru + ``` + + All available keymaps are located in `/usr/share/kvmd/keymaps`: + + + +3. *Optional:* This step is not nessessory if using TigerVNC. Some VNC clients (for example TightVNC) can't use user/password authentication. In this case you can enable passphrases 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 back to read-only: `ro`. + + +## Configuring the client + +We recommend [TigerVNC](https://tigervnc.org) for a better experience on desktop. + +Here are our recommended settings for TigerVNC: + +* **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**, **X.509 TLS** and **Anonymous TLS** encryption (or choose one preferred mode). + * Enable **Username and password** authentication. + +For iOS and Android the recommended application is bVNC: + +* [Google Play](https://play.google.com/store/apps/details?id=com.iiordanov.bVNC) +* [App Store](https://apps.apple.com/us/app/bvnc-pro/id1506461202) + + +## Unsupported clients + +* **RealVNC** - Does not support most widely used open VNC protocol extensions. +* **Guacamole** - Incorrectly implements vencrypt, no JPEG compression. +* **Vinagre** - Incorrectly implements vencrypt. diff --git a/img/vnc-keymaps.png b/docs/vnc/keymaps.png similarity index 100% rename from img/vnc-keymaps.png rename to docs/vnc/keymaps.png diff --git a/pages/webrtc.md b/docs/webrtc.md similarity index 81% rename from pages/webrtc.md rename to docs/webrtc.md index 9de1ee8..96a32a7 100644 --- a/pages/webrtc.md +++ b/docs/webrtc.md @@ -1,18 +1,23 @@ -# WebRTC -This is a new alternative video transfer mode available for Raspberry Pi 4 users with an HDMI-CSI bridge. +# H.264 / WebRTC + +This is a new alternative video transfer mode available for Raspberry Pi 4 users with an HDMI-CSI bridge (including PiKVM v3 HAT). It uses H.264 encoding instead of MJPEG and provides significantly less traffic consumption. ZeroW is NOT supported. -# How to use -If you use an OS image built after 2021.06.10, this mode will be available to you by default. +If you use an OS image built after 2021.06.10, this mode will be available by default. If you are upgrading to an older version of the OS, you will need to manually enable the WebRTC gateway: + ``` # systemctl enable --now kvmd-janus ``` -Then restart the Web UI and then in the **System** menu you will see the video mode switch. -:exclamation: **If you do not see the switch, it means that either your browser does not support WebRTC, or the `kvmd-janus` service was not started.** +Then reload the Web UI and then in the **System** menu you will see the video mode switch. + +!!! note + If you do not see the switch, it means that either your browser does not support WebRTC, or the `kvmd-janus` service was not started. + + +## Basics -# Subtleties The MJPEG video stream uses the same HTTP connection that you use to get the web interface. This means that for remote access, you just need to forward ports 80 and 443 on your router. @@ -26,17 +31,22 @@ This is necessary when using [Tailscale](tailscale.md) or so that you can connec since simply forwarding ports 80 and 443 for WebRTC is not enough - it requires a direct connection. If you don't like using Google (it was chosen as the default for reliability reasons) for this purpose, -you can choose [any other STUN server](https://www.voip-info.org/stun/) at your discretion, or start your own. -Use `/etc/kvmd/override.yaml` to this: +you can choose [any other STUN server](https://www.voip-info.org/stun/) at your discretion, or set up your own. + +Edit `/etc/kvmd/override.yaml`: + ```yaml janus: stun: host: stun.stunprotocol.org port: 3478 ``` -And restart `systemctl restart kvmd-janus`. -# Custom Janus config +... and restart `kvmd-janus` service using `systemctl restart kvmd-janus`. + + +## Custom Janus config + [Janus](https://janus.conf.meetecho.com) is a WebRTC gateway that is used to transmit the [uStreamer](https://github.com/pikvm/ustreamer) video. KVMD-Janus is a wrapper around it, configuring and monitoring changes in the network configuration. This is suitable for most users. However, if your PiKVM is not connected to the Internet and/or you want to use a custom Janus configuration, @@ -49,11 +59,19 @@ You can find it in `/etc/kvmd/janus/janus.jcfg`. # systemctl enable --now kvmd-janus-static ``` -# Troubleshooting + +## Troubleshooting + In rare cases, WebRTC may not work. The most common reasons are: + * Tricky IPv6 configuration on the network. IPv6 support for WebRTC in PiKVM is still in its infancy, so if your network has IPv4, it will be easiest to disable IPv6 on PiKVM. To do this, switch the file system to write mode using `rw` command, add option `ipv6.disable_ipv6=1` to `/boot/cmdline.txt` and perform `reboot`. Also see [here](https://wiki.archlinux.org/title/IPv6#Disable_IPv6). + * A paranoid firewall when you try to connect to the PiKVM by forwarding port 443 to the Internet from the internal network. WebRTC is not enough of this, it uses UDP on ports 10000-20000 for a P2P connection. Make sure that the Firewall does not block them. + * If nothing helps, open the browser's JS console and look at the log, and contact our community via [Discord](https://discord.gg/bpmXfz5). Developers and/or experienced users will definitely help you. -* Another option to try is if you have both wifi and eth connected, disable wifi `rfkill list wifi` then `rfkill block X` X=the number that shows in the output. Reason: Arch linux will choose to route all outgoing packets out wifi by default. + +* Another option to try is if you have both wifi and eth connected, disable wifi `rfkill list wifi` then `rfkill block X` where is a number that shows in the output. Reason: Arch Linux will choose to route all outgoing packets out wifi by default. + * There are some linux distro's that require more work to be able to use H.264 (WEBRTC MODE), this may include any RedHat variant. + * For instance: On Fedora you can install the rpmfusion repos, then use the `chromium-freeworld` package instead of `chromium` diff --git a/docs/wifi.md b/docs/wifi.md new file mode 100644 index 0000000..7830408 --- /dev/null +++ b/docs/wifi.md @@ -0,0 +1,129 @@ +# Setting up Wi-Fi + +The following describes how to setup a Wi-Fi connection on the default pikvm builds based on Arch Linux. The process might vary for other Linux distros. We recommend to do this while having a display and keyboard connected directly to the Raspberry Pi as you will loose network connectivity once you connect to a Wi-Fi. Alternatively you can connect to the PiKVM via SSH. The built-in Web Terminal (available through the browser) should also work. + +!!! warning + There is nothing more reliable than wired Ethernet, so it's better to use it. But who are we to stop you... :) + + +## Step by step + +1. Make filesystem writable using `rw` command. + +2. *Optional:* If you want your Raspberry Pi to automatically connect to any configured and available Wi-Fi networks you have to set the following option. On Raspberry Pis `wlan0` is the default name of the wlan device. + + ``` + # systemctl enable netctl-auto@wlan0.service + ``` + +3. Create Wi-Fi profiles + + * **Using the interactive dialog** + + You can create Wi-Fi profiles either manually or by using `wifi-menu`. This requires the Wi-Fi you want to connect to in signal range. + + ``` + # wifi-menu -o + ``` + + The `-o` makes sure that the Wi-Fi passphrase is stored encrypted. Otherwise it will be stored in cleartext in the profile file. `wifi-menu` will scan for all available Wi-Fi networks and provide you a list: + + + + Select the Wi-Fi you want to connect to and give the profile file a name. The default name is `wlan0-wifiname`: + + + + Enter the WPA-Passphrase: + + + + Afterwards `wifi-menu` will try to connect to the Wi-Fi. If you're connected via ssh or the Web Terminal you'll loose connection to the Raspberry Pi. Most DHCP servers will give the Raspberry Pi a new (and usually different) IP address for each interface (LAN / WLAN). + + If everything worked out you should be connected to your Wi-Fi now. `wifi-menu` created a new profile file for you in */etc/netctl*. + + * **Manually** + + If you want to store the Wi-Fi passphrase encrypted you have to generate it via `wpa_passphrase`: + + ``` + # wpa_passphrase wifiname this_is_my_great_and_secure_key_1234567890 + ``` + + + + Copy the second hexadecimal string without `psk=`. In this example `814c45d0f88f60636532b034c463639a506670f8ba3c7965e62cdbc1989f6d66`. + + Create a new file with the editor of your choice (nano, vim, etc.): + + ``` + # nano /etc/netctl/wlan0-wifiname + ``` + + Copy the following template into the file and modify it with your parameters. + + Note the `\"` after `Key=` is required for encrypted passphrases. If you want to put your Wi-Fi passphrase in cleartext the \\" is not required. See [this](https://github.com/joukewitteveen/netctl/blob/master/docs/netctl.profile.5.txt) for the quoting rules and more Wi-Fi profile configuration options. + + ```bash + Description='My great Wi-Fi' + Interface=wlan0 + Connection=wireless + Security=wpa + ESSID=wifiname + IP=dhcp + Key=\"814c45d0f88f60636532b034c463639a506670f8ba3c7965e62cdbc1989f6d66 + ``` + + Save the file and you're good to go. You can manually connect to the profile you've just created with: + + ``` + # netctl-auto switch-to wlan0-wifiname + ``` + +4. To add the hidden ESSID you need to edit `/etc/netctl/wlan0-` file and add the hidden option: + + ```bash + Description='Hidden SSID template' + Interface=wlan0 + Connection=wireless + Security=wpa + ESSID=WIFI-Name + IP=dhcp + Key=supersecretpassword + Hidden=yes + ``` + +5. *Optional:* If you want to connect to a 5GHz Wi-Fi in the US and it's not listed, create `/etc/wpa_supplicant/wpa_supplicant-wlan0.conf` with a single line `country=US`, and enable it with: + + ``` + # systemctl enable wpa_supplicant@wlan0 + ``` + +6. Make filesystem read-only again using `ro` command + + +## Useful console commands + +* `iwconfig` - Manipulate the basic wireless parameters. +* `iwlist` - Allow's you to initiate scanning and list frequencies, bit-rates, encryption keys, etc. +* `iwspy` - Displays per node link quality. +* `iwpriv` - Allow's you to manipulate the Wireless Extensions specific to a driver (private). + +!!! example "Some examples" + ``` + # iw dev wlan0 scan | egrep "signal:|SSID:" | sed -e "s/\tsignal: //" -e "s/\tSSID: //" | awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}' | sort + ``` + ``` + # iwlist wlan0 scan | egrep "Cell|ESSID|Signal|Rates" + ``` + ``` + # iwlist wlan0 scan + ``` + ``` + # iw wlan0 info + ``` + + +## Additional resources + +* [Arch Linux Wiki for netctl](https://wiki.archlinux.org/index.php/Netctl) diff --git a/img/wifi-1.png b/docs/wifi/wifi-1.png similarity index 100% rename from img/wifi-1.png rename to docs/wifi/wifi-1.png diff --git a/img/wifi-2.png b/docs/wifi/wifi-2.png similarity index 100% rename from img/wifi-2.png rename to docs/wifi/wifi-2.png diff --git a/img/wifi-3.png b/docs/wifi/wifi-3.png similarity index 100% rename from img/wifi-3.png rename to docs/wifi/wifi-3.png diff --git a/img/wifi-4.png b/docs/wifi/wifi-4.png similarity index 100% rename from img/wifi-4.png rename to docs/wifi/wifi-4.png diff --git a/pages/wiring_examples.md b/docs/wiring_examples.md similarity index 65% rename from pages/wiring_examples.md rename to docs/wiring_examples.md index aefdc52..c438997 100644 --- a/pages/wiring_examples.md +++ b/docs/wiring_examples.md @@ -1,7 +1,7 @@ ### Some example wiring setups # CSI (Geekworm) (Any brand will be the same) -drawing +drawing List of items: (WARNING! Links may dissappear or no longer work, this just gives you an idea) @@ -13,13 +13,13 @@ List of items: (WARNING! Links may dissappear or no longer work, this just gives - TARGET (Anything you want to control) # Another CSI example using the PCB splitter -drawing +drawing # USB -drawing +drawing # Direct connect to target -drawing +drawing Explanation of pic - USB-C from PI to USB-A onto target which also powers the PI diff --git a/pages/wol.md b/docs/wol.md similarity index 78% rename from pages/wol.md rename to docs/wol.md index 0ea1b3f..e2b993a 100644 --- a/pages/wol.md +++ b/docs/wol.md @@ -1,13 +1,17 @@ # Wake-on-LAN -### Simplified method (one host) +## Simplified method (one host) + To use Wake-on-LAN with your server you must define some options such as the server's MAC address and (optionally) IP address. Use `/etc/kvmd/override.yaml`. The format is: + ```yaml kvmd: wol: mac: ff:ff:ff:ff:ff:ff ``` + Replace `ff:ff:ff:ff:ff:ff` with the MAC of your server. By default, a packet is sent via a broadcast request to the entire IPv4 network (`255.255.255.255`, port `9`), but you can address it to a specific static address: + ```yaml kvmd: wol: @@ -15,7 +19,10 @@ kvmd: ip: 192.168.0.100 # port: 9 # By default ``` -then restart `kvmd`. HINT: `systemctl restart kvmd` It will now show up in the system button in the upper right corner. -### GPIO method (multiple hosts) +... then restart `kvmd` using `systemctl restart kvmd`. It will now show up in the system button in the upper right corner. + + +## GPIO method (multiple hosts) + Follow the [manual for building the GPIO menu](gpio.md) and use the `wol` driver to build a menu with many buttons tied to different hosts. diff --git a/docs/xh_hk4401.md b/docs/xh_hk4401.md new file mode 100644 index 0000000..216d3ac --- /dev/null +++ b/docs/xh_hk4401.md @@ -0,0 +1,128 @@ +# XH-HK4401 4-port HDMI USB KVM Switch + +drawing + +This KVM is [sold](https://www.aliexpress.com/item/4000849336545.html) under many names, and comes in two versions. +The only way these two versions differ is that one has one of its USB ports replaced with a PS/2 port. The +identifying feature is that they come with a small external control unit with 4 buttons. This controller is +connected to the main KVM via a micro USB cable, however this is **NOT** as USB connection. + +!!! warning + Audio was not tested, it is assumed to be non-functional + + +## Connections + +1. Connect the USB-A cable from the Raspberry Pi OTG port to to any of the USB ports on the XH-HK4401 switch. All 3/4 USB ports work exactly the same, internally they are just connected to a USB HUB. + +2. Connect the HDMI out from the XH-HK4401 switch to the Raspberry Pi CSI-2 to HDMI input. + +3. Connect host USB and HDMI cables from the XH-HK4401 switch to the machines to be managed per the switch instructions. + +4. Finally see below for details about connecting to the control micro USB port. **This it not a normal USB micro port.** + +!!! warning + There is a limitation in the underlying PiKVM software related to plugging video cables from a host which is already powered and connected to a monitor to a Raspberry Pi HDMI-CSI bridge. These limitations apply equally when using the XH-HK4401 KVM switch. If video is not present in PiKVM, try keeping all host machines off and connecting them directly to the XH-HK4401 switch before powering the hosts on. + + +## RS-232 control cable + +The control unit communicates to the KVM using the RS-232 protocol (at 5v) not USB, and one of the following +solutions must be used. + + +### An inverter circuit + +For this you will need: + +* 2x 2n7000 MOSFETs +* 2x 10K resistors +* 1x USB Micro connector, or sacrificial micro USB cable +* *Optional:* USB UART adapter + + + +You can connect this either via a USB UART adapter, or directly to the Raspberry Pi: `GND -> Pin 6`, `TX -> Pin 8`, `RX -> Pin 10`. +On the v3 PiKVM hat you will need to disable the UART jumpers to use the on-board UART. + +!!! note + Please search online for USB pinouts to ensure you connect it properly. + + +### Inverting USB UART adapter + +Some USB UART adapters have the rare feature to invert the logic level of the RX/TX signals. For example the FTDI FT232 can +be configured via the FTDI configuration GUI to do this. With such an adapter, the circuit above is not required. All you +need is to connect it to a micro-USB connector. + + +## Adding UI elements to control the KVM switch + +The UI can be updated to add buttons to switch between KVM inputs and indicators for which input is currently selected. The instructions below will make these available in the PiKVM UI after clicking the "GPIO" menu button in the KVM view. + +1. SSH into PiKVM + +2. Enable read-write mode on the sd card via `rw` + +3. Edit the `/etc/kvmd/override.yaml` file and include the following. Note the assumption that you are using a USB UART present on `/dev/ttyUSB0`: + + ```yaml + kvmd: + gpio: + drivers: + hk: + type: xh_hk4401 + device: /dev/ttyUSB0 + scheme: + ch0_led: + driver: hk + pin: 0 + mode: input + ch1_led: + driver: hk + pin: 1 + mode: input + ch2_led: + driver: hk + pin: 2 + mode: input + ch3_led: + driver: hk + pin: 3 + mode: input + ch0_button: + driver: hk + pin: 0 + mode: output + switch: false + ch1_button: + driver: hk + pin: 1 + mode: output + switch: false + ch2_button: + driver: hk + pin: 2 + mode: output + switch: false + ch3_button: + driver: hk + pin: 3 + mode: output + switch: false + view: + table: + - ["#Input 1", ch0_led, ch0_button] + - ["#Input 2", ch1_led, ch1_button] + - ["#Input 3", ch2_led, ch2_button] + - ["#Input 4", ch3_led, ch3_button] + ``` + +4. Return to read-only mode for the sd card via `ro` + +5. Restart the kvmd service: `systemctl restart kvmd` + + +## Switching between hosts in the UI + +To switch between hosts, enter the KVM UI and click the "GPIO" menu. You should see 4 inputs, one of which will have a green circle indicating it is currently selected. Click the other inputs to change the selected host. diff --git a/img/xh-hk4401.jpg b/docs/xh_hk4401/xh-hk4401.jpg similarity index 100% rename from img/xh-hk4401.jpg rename to docs/xh_hk4401/xh-hk4401.jpg diff --git a/img/xh-hk4401_circuit.jpg b/docs/xh_hk4401/xh-hk4401_circuit.jpg similarity index 100% rename from img/xh-hk4401_circuit.jpg rename to docs/xh_hk4401/xh-hk4401_circuit.jpg diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..afcaf23 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,90 @@ +# https://squidfunk.github.io/mkdocs-material/getting-started +# https://squidfunk.github.io/mkdocs-material/reference/admonitions +# https://github.com/squidfunk/mkdocs-material/blob/master/mkdocs.yml + + +site_name: PiKVM Handbook +site_description: Open and cheap DIY IP-KVM on Raspberry Pi +site_author: Maxim Devaev +site_url: https://pikvm.github.io/pikvm + +repo_name: pikvm/pikvm +repo_url: https://github.com/pikvm/pikvm +edit_uri: "" + +copyright: "Copyright © 2018-2021 Maxim Devaev" + +docs_dir: docs + +theme: + logo: _assets/logo.png + favicon: _assets/favicon.ico + name: material + palette: + accent: pink + features: + - navigation.indexes + - navigation.sections + - navigation.top + - navigation.tracking + - navigation.expand + - search.highlight + - search.share + - search.suggest + +extra_css: + - _assets/user.css + +markdown_extensions: + - admonition + - def_list + - attr_list + - pymdownx.tilde + - pymdownx.details + - pymdownx.superfences + - pymdownx.magiclink + - toc: + permalink: true + - codehilite: + guess_lang: false + - markdown_include.include: + base_path: docs + +plugins: + - search: + lang: en + - mkdocs-video + +nav: + - "Getting started": + - "PiKVM v3 HAT guide": v3.md + - "First steps": first_steps.md + - "FAQ": faq.md + - "Networking": + - "Internet access": + - "Port forwarding": port_forwarding.md + - "Tailscale VPN": tailscale.md + - "Setting up Wi-Fi": wifi.md + - "Video": + - "H.264 / WebRTC": webrtc.md + - "Working with video": video.md + - "Tuning HDMI EDID": edid.md + - "Peripheral devices": + - "Keyboard & mouse": + - "Mouse modes": mouse.md + - "Bluetooth HID": bluetooth_hid.md + - "Arduino HID (USB, PS/2)": arduino_hid.md + - "Mass Storage Drive": msd.md + - "Ethernet-over-USB": usb_ethernet.md + - "Serial-over-USB": usb_serial.md + - "GPIO (pins, relays, lamps, etc)": gpio.md + - "Advanced usage": + - "Using VNC": vnc.md + - "Multiport KVM-over-IP": multiport.md + - "Wake-on-LAN the server": wol.md + - "IPMI & Redfish integration": ipmi.md + - "Prometheus monitoring": prometheus.md + - "Development": + - "Cases for 3D printing": 3d_printing.md + - "Building PiKVM OS": building_os.md + - "HTTP API reference": api.md diff --git a/pages/api.md b/pages/api.md deleted file mode 100644 index 3b5784f..0000000 --- a/pages/api.md +++ /dev/null @@ -1,343 +0,0 @@ -# API -This document describes the PiKVM API. Since the system consists of microservices, here is a common API with a common entry point provided by Nginx. The examples above use `curl` and [`websocat`](https://github.com/vi/websocat) with the `-k` parameter to disable SSL certificate verification, since the self-signed certificateis used in the default installation. - -## Authorization: `/api/auth` -All APIs are restricted to authorization. To make requests, you either need to authorize each request individually, -or get a token and pass it as a cookie with each request. - -### Single request auth -There are two options here: -* Using X-headers. Just pass `X-KVMD-User` and `X-KVMD-Passwd` with the request: - ``` - $ curl -k -H X-KVMD-User:admin -H X-KVMD-Passwd:admin https:///api/auth/check - ``` -* Using HTTP Basic Auth. Please note: contrary to the standard, this method DOES NOT use the `WWW-Authenticate` header. - HTTP Basic Auth in this implementation is intended only for compatibility with other systems, such as [Prometheus](prometheus.md). - ``` - $ curl -k -u admin:admin https:///api/auth/check - ``` -### Session-based cookie auth -1. Authorize and get token for the user using `POST /api/auth/login`: - ``` - $ curl -k -v -X POST --data user=admin --data passwd=admin https://pikvm/api/auth/login - ... - < Set-Cookie: auth_token=796cb83b11de4fcb749bc1bad14a91fb06dede84672b2f847fef1e988e6900de; Path=/ - ... - ``` - On success the cookie `auth_token` will be received with `200 OK`. On invalid user or password you will get `403 Forbidden`. -2. The handle `GET /api/auth/check` can be used for check the auth status. Return of `200 OK` will signal that user is authenticated. - If the token or any of the single-request auth methods are missing, `401 Unauthorized` will be returned. - In case of incorrect credentials or token, `403 Forbidden` will be returned. -3. The handle `POST /api/auth/logout` can be used to invalidate session token. The response codes will be similar to the previous handle. - -## The main web socket: `/api/ws` -Most of the data during the user's work with pikvm is transmitted over a web socket. This includes mouse events, keyboard input, change the state of the various subsystems (such as ATX and Mass Storage Drive). Each event type will be described in the corresponding paragraph for its component. When connecting via a web socket, the client receives current states as separate events. Then, as the states change, it will receive new events. - -In a normal situation, opening a socket session triggers the video streamer to start. The streamer works as long as there is at least one client connected via a web socket. After the last connection is closed and the client timeout expires, the streamer will also be terminated. - -It is possible create a session that will not start the streamer and will not be counted when counting clients to stop the streamer. To do this, use the URL parameter `stream=0`: - -``` -$ websocat -k wss:///api/ws?stream=0 -H X-KVMD-User:admin -H X-KVMD-Passwd:admin -``` -

- Output with initial events - -```js -{"event_type": "gpio_model_state", "event": {"scheme": {"inputs": {"led1": {"hw": {"driver": "__gpio__", "pin": 19}}, "led2": {"hw": {"driver": "__gpio__", "pin": 16}}}, "outputs": {"button1": {"switch": false, "pulse": {"delay": 0.1, "min_delay": 0.1, "max_delay": 0.1}, "hw": {"driver": "__gpio__", "pin": 26}}, "button2": {"switch": false, "pulse": {"delay": 0.1, "min_delay": 0.1, "max_delay": 0.1}, "hw": {"driver": "__gpio__", "pin": 20}}, "relay1": {"switch": true, "pulse": {"delay": 0.1, "min_delay": 0.1, "max_delay": 0.1}, "hw": {"driver": "relay", "pin": 0}}, "relay2": {"switch": true, "pulse": {"delay": 2.0, "min_delay": 0.1, "max_delay": 5.0}, "hw": {"driver": "relay", "pin": 1}}}}, "view": {"header": {"title": "Switches"}, "table": [[{"type": "label", "text": "Generic GPIO leds"}], null, [{"type": "label", "text": "Test 1:"}, {"type": "input", "channel": "led1", "color": "green"}, {"type": "output", "channel": "button1", "text": "Click"}], [{"type": "label", "text": "Test 2:"}, {"type": "input", "channel": "led2", "color": "green"}, {"type": "output", "channel": "button2", "text": "Click"}], null, [{"type": "label", "text": "HID Relays /dev/hidraw0"}], null, [{"type": "label", "text": "Relay #1:"}, {"type": "output", "channel": "relay1", "text": "Boop 0.1"}], [{"type": "label", "text": "Relay #2:"}, {"type": "output", "channel": "relay2", "text": "Boop 2.0"}]]}}} -{"event_type": "info_extras_state", "event": {"vnc": {"name": "VNC", "description": "Show VNC information", "icon": "share/svg/vnc.svg", "path": "vnc", "keyboard_cap": false, "daemon": "kvmd-vnc", "port": 5900, "place": 20, "enabled": true}, "ipmi": {"name": "IPMI", "description": "Show IPMI information", "icon": "share/svg/ipmi.svg", "path": "ipmi", "keyboard_cap": false, "daemon": "kvmd-ipmi", "port": 623, "place": 21, "enabled": true}}} -{"event_type": "info_hw_state", "event": {"platform": {"type": "rpi", "base": "Virtual Raspberry Pi"}, "health": {"temp": {"cpu": 36.511, "gpu": 35.0}, "throttling": {"raw_flags": 0, "parsed_flags": {"undervoltage": {"now": false, "past": false}, "freq_capped": {"now": false, "past": false}, "throttled": {"now": false, "past": false}}}}}} -{"event_type": "info_meta_state", "event": {"server": {"host": "localhost.localdomain"}, "kvm": {}}} -{"event_type": "info_system_state", "event": {"kvmd": {"version": "1.102"}, "streamer": {"app": "ustreamer", "version": "1.25", "features": {"WITH_OMX": false, "WITH_GPIO": false, "WITH_PTHREAD_NP": true, "WITH_SETPROCTITLE": true, "HAS_PDEATHSIG": true}}, "kernel": {"system": "Linux", "release": "5.8.10-arch1-1", "version": "#1 SMP PREEMPT Thu, 17 Sep 2020 18:01:06 +0000", "machine": "x86_64"}}} -{"event_type": "wol_state", "event": {"enabled": false, "target": {"ip": "255.255.255.255", "port": 9, "mac": ""}}} -{"event_type": "gpio_state", "event": {"inputs": {"led1": {"online": true, "state": false}, "led2": {"online": true, "state": false}}, "outputs": {"button1": {"online": true, "state": false, "busy": false}, "button2": {"online": true, "state": false, "busy": false}, "relay1": {"online": false, "state": false, "busy": false}, "relay2": {"online": false, "state": false, "busy": false}}}} -{"event_type": "hid_state", "event": {"online": true, "keyboard": {"online": true, "leds": {"caps": false, "scroll": false, "num": false}}, "mouse": {"online": true}}} -{"event_type": "atx_state", "event": {"enabled": true, "busy": false, "leds": {"power": false, "hdd": false}}} -{"event_type": "msd_state", "event": {"enabled": true, "online": true, "busy": false, "storage": {"size": 234950152192, "free": 23514271744, "images": {}, "uploading": false}, "drive": {"image": null, "connected": false, "cdrom": true}, "features": {"multi": true, "cdrom": true}}} -{"event_type": "streamer_state", "event": {"limits": {"max_fps": 40}, "params": {"desired_fps": 30, "quality": 80}, "snapshot": {"saved": null}, "streamer": null, "features": {"quality": true, "resolution": false}}} -{"event_type": "loop", "event": {}} -``` -
- -After connecting the client receives a bundle of states of all KVMD subsystems. After the batch is completed, it sends a `loop` event, which means that the websocket has entered event loop mode. Now it will send new states and respond to client's requests. - -Another type of event is `ping`, which can be sent by the client: `{"event_type": "ping", "event": {}}`. If the server is running, it will respond with pong: `{"event_type": "pong", "event": {}}`. - -### Sending keypress events - -For keypresses, set `event_type` to `"key"` and fill in the `"event"` structure with `key` and `state`, where `key` is the key from mapping and `state` is boolean that determines if the key is pressed or released: - -```python -# python, install websocket-client -import websocket -uri = "wss://10.0.0.7/api/ws?stream=0" -header = {"X-KVMD-User": "admin", "X-KVMD-Passwd": "admin"} -ws = websocket.WebSocket(sslopt={"cert_reqs": ssl.CERT_NONE}) -ws.connect(uri, header=header) -ws.send(r'{"event_type": "key", "event": {"key": "Enter", "state": true}}') -time.sleep(0.05) -ws.send(r'{"event_type": "key", "event": {"key": "Enter", "state": false}}') -ws.close() -``` - -## System info: `/api/info` -On `GET` this handle will return general information about the PiKVM device. If you specify the `fields` query parameter, only the requested category will be selected, like `fields=system,hw`. By default all categories will be displayed: - -``` -$ curl -k -u admin:admin https:///api/info -``` - -
- Example - -```js -{ - "ok": true, - "result": { - "extras": { // Installed applications; null on internal error - "ipmi": { - "daemon": "kvmd-ipmi", - "description": "Show IPMI information", - "enabled": true, - "icon": "share/svg/ipmi.svg", - "keyboard_cap": false, - "name": "IPMI", - "path": "ipmi", - "place": 21, - "port": 623 - }, - "vnc": { - "daemon": "kvmd-vnc", - "description": "Show VNC information", - "enabled": true, - "icon": "share/svg/vnc.svg", - "keyboard_cap": false, - "name": "VNC", - "path": "vnc", - "place": 20, - "port": 5900 - } - }, - "hw": { // Hardware info - "health": { - "temp": { - "cpu": 36.511, // /sys/class/thermal/thermal_zone0/temp / 1000; null on error - "gpu": 35.0 // vcgencmd measure_temp; null on error - }, - "throttling": { // vcgencmd get_throttled; null on error - "parsed_flags": { - "freq_capped": { - "now": false, - "past": false - }, - "throttled": { - "now": false, - "past": false - }, - "undervoltage": { - "now": false, - "past": false - } - }, - "raw_flags": 0 - } - }, - "platform": { - "base": "Raspberry Pi 4 Model B Rev 1.1", // /proc/device-tree/model; null on error - "type": "rpi" - } - }, - "meta": { // /etc/kvmd/meta.yaml; null on error - "kvm": {}, - "server": { - "host": "localhost.localdomain" - } - }, - "system": { - "kernel": { - "machine": "x86_64", - "release": "5.8.14-arch1-1", - "system": "Linux", - "version": "#1 SMP PREEMPT Wed, 07 Oct 2020 23:59:46 +0000" - }, - "kvmd": { - "version": "2.1" - }, - "streamer": { - "app": "ustreamer", - "features": { // {} on error - "HAS_PDEATHSIG": true, - "WITH_GPIO": false, - "WITH_OMX": false, - "WITH_PTHREAD_NP": true, - "WITH_SETPROCTITLE": true - }, - "version": "2.1" // "" on error - } - } - } -} -``` -
- -Each category is represented by its own event in the websocket (`info_hw_state`, `info_system_state`, etc). The event content has the same format as the category content in API. - -## System log: `/api/log` -On `GET` this handle will display messages from all KVMD services as plain text. The `follow=1` request parameter turns the request into an infinite one and you will receive new log messages in real time. The seek parameter runs the log for the specified time in seconds. For example, `seek=3600` will show the log for the last hour. Both the `seek` and `follow` parameters can be used together. - -``` -$ curl -k -u admin:admin https:///api/log -``` - -## Get ATX state: `/api/atx` -On `GET` it will show current ATX state. - -``` -$ curl -k -u admin:admin https:///api/atx -``` - -
- Example - -```js -{ - "ok": true, - "result": { - "busy": false, // True if ATX is busy performing an operation and does not accept commands - "enabled": true, - "leds": { - "hdd": false, - "power": false - } - } -} -``` -
- -### Set ATX PSU state: `/api/atx/power` -On `POST` it will change ATX power supply state to desired. -Parameters: -- `action` describes desired state: - * `on` - turned on (do nothing in case PSU is already on); - * `off` - turned off (aka soft-off), emulates short-press on the power button; - * `off_hard` - emulates long (5+ seconds) press on the power button; - * `reset_hard` emulates pressing reset button (hardware hot reset). -- `wait` - Boolean. Says if call should return immediately or just after finishing operation. - -``` -$ curl -X POST -k -u admin:admin https:///api/atx/power?action=on -``` - -### Emulate pressing buttons on computer case: `/api/atx/click` -On `POST` send button press events to {front-}panel header (like you pressing buttins on your computer's case). -Parameters: -- `button` specifies the desired computer case button you would like to press. Currently supported options are: - * `power` — for short press on power button; - * `power_long` — for pressing POWER button for 4+ seconds (force OFF); - * `reset` — to initiate cold-reset. -- `wait` Boolean. Says if call should return immediately or just after finishing operation. - -``` -$ curl -X POST -k -u admin:admin https:///api/atx/click?button=power -``` - -## Get Mass Storage Drive (*msd*) state: `/api/msd` -On `GET` it will show current *msd* state. - -``` -$ curl -k -u admin:admin https:///api/msd -``` - -### Upload image: `/api/msd/write` -On `POST` upload an image to the drive. This API uses HTTP POST data. -Parameters: -- `image` specify the image name. -- `data` multipart POST data to be uploaded. - -``` -$ # create test image -$ dd if=/dev/zero of=test.iso bs=1M count=1 - -$ # upload it to pikvm -$ curl -v -X POST --data-binary @test.iso -k -u admin:admin https:///api/msd/write?image=test.iso -``` - -### Upload image by URL: `/api/msd/write_remote` -On `POST` download an image to the drive from HTTP(S) URL. -Parameters: -- `image` specify the image name. -- `timeout` remote request timeout, 10 seconds by default. - -``` -$ # create test image -$ dd if=/dev/zero of=test.iso bs=1M count=1 - -$ # upload it to pikvm -$ curl -v -X POST -k -u admin:admin https:///api/msd/write_remote?url=http://example.com/test.iso -``` - -### Set *msd* parameters: `/api/msd/set_params` -On `POST` select the image and change media type. Parameters: -- `image` specify the image name. -- `cdrom` Boolean. Select media type: - * `true` - CD-ROM; - * `false` - Flash. - -``` -$ curl -X POST -k -u admin:admin "https:///api/msd/set_params?image=test.iso&cdrom=true" -``` - -### Connect the device: `/api/msd/set_connected` -On `POST` select if the drive should be connected. Parameters: -- `connected` Boolean. Connect drive: - * `true` - connect drive; - * `false` - disconnect drive. - -``` -$ curl -X POST -k -u admin:admin https:///api/msd/set_connected?connected=true -``` - -### Remove image: `/api/msd/remove` -On `POST` select the image that should be removed. Parameters: -- `image` specify the image name. - -``` -$ curl -X POST -k -u admin:admin https:///api/msd/remove?image=test.iso -``` - -### Reset *msd*: `/api/msd/reset` -On `POST` resets the mass storage drive. - -``` -$ curl -X POST -k -u admin:admin https:///api/msd/reset -``` - -## Get GPIO state: `/api/gpio` -On `GET` it will show current GPIO state. - -``` -$ curl -k -u admin:admin https:///api/gpio -``` - -### Switch GPIO driver channel: `/api/gpio/switch` -On `POST` it will interact with selected GPIO driver channel in `switch` mode. Parameters: -- `channel` specify the GPIO driver channel. -- `state` Boolean. Select the new switch state. -- `wait` Boolean. Says if call should return immediately or just after finishing operation. - -### Pulse GPIO driver channel: `/api/gpio/pulse` -On `POST` it will interact with selected GPIO driver channel in `pulse` mode. Parameters: -- `channel` specify the GPIO driver channel. -- `delay` Float. Defines the pulse time in seconds, `0` for disable pulsing. -- `wait` Boolean. Says if call should return immediately or just after finishing operation. - -## Get Prometheus metrics: `/api/export/prometheus/metrics` -On `GET` it will return the exported Prometheus metrics. Also see [here](prometheus.md) for details. - -``` -$ curl -k -u admin:admin https:///api/export/prometheus/metrics -``` - - -# To be continued ===> -Unfortunately, the developer doesn't have enough time to fully describe the API. You can find all existing APIs in the [KVMD source tree](https://github.com/pikvm/kvmd/tree/master/kvmd/apps/kvmd/api). We would appreciate your help with documentation. diff --git a/pages/arduino_hid.md b/pages/arduino_hid.md deleted file mode 100644 index 45ca3a5..0000000 --- a/pages/arduino_hid.md +++ /dev/null @@ -1,174 +0,0 @@ -# Hardware Arduino HID instead of the OTG -Using Arduino HID on non-v0 platforms is useful if you need a simple and primitive keyboard/mouse emulator device. For example when used with a hardware KVM switch which [does not recognize composite HID](https://github.com/pikvm/pikvm/issues/7). You can also use the Arduino HID to emulate the PS/2 keyboard. - -- NOTE: AIMOS KVM switches do not work with the aruduino, please consider using an alternitive. - -## 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). -* Switch to RW-mode using command `rw`. -* Add these lines to `/etc/kvmd/override.yaml` (remove `{}` in the file before): - ```yaml - kvmd: - hid: - type: serial - reset_pin: 4 - device: /dev/kvmd-hid - ``` -* Create file `/etc/udev/rules.d/99-kvmd-extra.rules`: - ```udev - KERNEL=="ttyAMA0", SYMLINK+="kvmd-hid" - ``` -* Run `systemctl disable getty@ttyAMA0.service`. -* Remove `console=ttyAMA0,115200`or `console=serial0,115200` and `kgdboc=ttyAMA0,115200` or `kgdboc=serial0,115200` from `/boot/cmdline.txt`. -* [Flash the Arduino HID](flashing_hid.md). -* Run `reboot`. - -## PS/2 keyboard -Using the PS/2 firmware currently has the following limitations: -* The possibility of using the switchable USB HID is excluded. -* PS/2 mouse is not supported right now (but it will). - -Both of these problems will be solved in the nearest future and the two different firmware versions will be combined into one universal one. - -To select the PS/2 firmware, you need to follow the instructions for USB, but with one exception. Before `make` you need to edit file `platformio.ini`. Open it and find these lines: -```ini -[_common] -build_flags = - -DHID_PS2_KBD_CLOCK_PIN=7 - -DHID_PS2_KBD_DATA_PIN=5 - -DHID_USB_CHECK_ENDPOINT -# ----- The default config with dynamic switching ----- - -DHID_DYNAMIC - -DHID_WITH_USB - -DHID_SET_USB_KBD - -DHID_SET_USB_MOUSE_ABS -# ----- PS2 keyboard only ----- -# -DHID_WITH_PS2 -# -DHID_SET_PS2_KBD -# ----- PS2 keyboard + USB absolute mouse ----- -# -DHID_WITH_USB -# -DHID_WITH_PS2 -# -DHID_SET_PS2_KBD -# -DHID_SET_USB_MOUSE_ABS -# ----- PS2 keyboard + USB relative mouse ----- -# -DHID_WITH_USB -# -DHID_WITH_PS2 -# -DHID_SET_PS2_KBD -# -DHID_SET_USB_MOUSE_REL -``` - -By default, the firmware works with USB HID and supports dynamic mode switching. You can choose one of the other modes by commenting some lines and uncommenting others. This example to use a USB mouse and PS/2 keyboard: -```ini -... -# ----- The default config with dynamic switching ----- -# -DHID_DYNAMIC -# -DHID_WITH_USB -# -DHID_SET_USB_KBD -# -DHID_SET_USB_MOUSE_ABS -# ----- PS2 keyboard only ----- -... -# ----- PS2 keyboard + USB absolute mouse ----- - -DHID_WITH_USB - -DHID_WITH_PS2 - -DHID_SET_PS2_KBD - -DHID_SET_USB_MOUSE_ABS -# ----- PS2 keyboard + USB relative mouse ----- -... -``` - -Next, you need to connect Arduino pins to the female PS/2 port of your motherboard. Choose the purple port. If your motherboard only have one port, it's probably universal and can be used either for the keyboard or for the mouse. Most likely, it is painted in two colors: green and purple. You can use it either. - -Follow this diagram: -| Female PS/2 port (front view) | Pinout | -|-------------------------------|--------| -| drawing | Arduino pin 7 <-> PS/2 CLOCK
Arduino pin 5 <-> PS/2 DATA
Arduino GND pin <-> PS/2 GND | - -**Connect VIN pin of Arduino to [any Raspberry's 5v pin](https://pinout.xyz/pinout/5v_power) for PS/2 only device. But you don't need to connect the Arduino VIN pin if you connected USB (Arduino will get power through it).** - -## Fixing the USB absolute mouse on Windows 98 -Due to an ancient buggy driver, the USB absolute mouse on Windows 98 moves only within the upper-left quarter of the screen. To fix this, you need to recompile the firmware with uncommented flag `-DHID_WITH_USB_WIN98` in `platformio.ini`. - -## SPI connection to Arduino Micro -Using an SPI connection, an Arduino Micro or compatible can be flashed from the Pi and used as an HID keyboard and mouse. Unlike UART, SPI does not share pins with Bluetooth on the Raspberry Pi so the Bluetooth radio does not need to be disabled. - -Diagram of the Arduino SPI wiring for HID keyboard and mouse. - -Before powering either device, double-check the connections. The following should be wired from the Pi to either the level shifter or the Arduino. While the Arduino tolerates 3.3V logic input, 5V outputs from the Arduino can damage or destroy the Raspberry Pi and must not be connected directly to 3.3V GPIO pins directly. - -### Parts List - -There are very few parts needed besides the Raspberry Pi to build the solution. Some parts may be purchased with or without headers, if headers are not pre-soldered, it may be necessary to order some breakaway header strips and solder them to the boards prior to assembly unless the wires will be soldered directly to the boards. - -* Raspberry Pi Zero W or Pi 4 are the most popular boards for this solution, pre-soldered headers recommended -* Arduino Micro (or compatible) microcontroller board with pre-soldered headers recommended -* Logic Level Converter. This may be RX/TX, Bidirectional, or Single Supply -* Dupont wires (female to male pin) recommended for breadboard or other suitable means of making the connections -* ***Optional:*** Breakaway headers for the logic level converter -* ***Optional:*** Breadboard large enough to accomodate the parts -* ***Optional:*** Header pins for connection to a breadboard - -***Note:*** A smaller "Pro Micro" board is available in a 3.3V model but the SS connection (RX_LED) is not available as a separate pin or solderable hole. If using this board, a jumper wire can be soldered to the resistor for the RX_LED but there is risk of burning the resistor, the LED, the board, or other components in the process. Advantages of this board include not requiring a logic level converter and reduced breadboard or board space for building the solution. - -### List of connections to be made - -For the primary functionality, most connections are made using a 4-channel bidirectional level shifter -* Pi 3v3 to LV on the level shifter -* Pi Ground to LV GND -* Arduino GND to HV GND -* GPIO10 (MOSI) via the level shifter to MOSI on the Arduino -* GPIO9 (MISO) via the level shifter to MISO on the Arduino -* GPIO11 (SPIO_SCLK) via the level shifter to SCK on the Arduino -* GPIO7 (SPIO_CE1_N) via the level shifter to SS (or RX_LED) on the Arduino - -An additional circuit is used with a transistor to reset the HID for mode changes and for SPI programming as follows: -* GPIO25 to PNP base on transistor -* PNP emitter to ground -* PNP collector to RST on the Arduino - -Pictures of this setup are also available in full resolution for download to assist for both the Raspberry Pi and the microcontroller board. A smaller version of the images has been included on this page and can be downloaded. - -| Raspberry Pi Closeup | Breadboard with Arduino | -|------------|--------| -| A closeup of the Raspberry Pi wired to the breadboard. | Arduino on a breadboard fully wired to the Pi. | - -Programming assumes the Arduino is powered via USB, either from the connected host or the Pi itself. If the USB is not connected, 5 V may be provided by the Raspberry Pi GPIO but should be disconnected prior to connecting USB to the microcontroller's USB port. The Raspberry Pi does not have backcurrent protection, a circuit using one or more Schottky diodes can be built to OR power from multiple sources but it's easier and more cost effective to avoid conflict and voltage differences between power supplies by leaving the 5 V wire disconnected. - -### Preparing the installation for SPI devices and programming - -As of the latest package release, the kdmd service supports SPI. It should be sufficient to ensure the packages are up-to-date with the latest release, the programmer is installed, and the SPI device overlay is loaded at boot. - -* Switch the filesystem to read-write mode with `rw` -* Update the system with `pacman -Syu` for the latest packages -* Install the avrdude programmer with `pacman -S avrdude-svn` -* Add `dtoverlay=spi0-1cs` to `/boot/config.txt` -* Reboot with `reboot` or `systemctl reboot` - -### Flashing the Arduino microcontroller - -Instructions on flashing the microcontroller can be found on the page [Flash the Arduino HID](flashing_hid.md). - -If programming fails, ensure the Arduino is powered and check the wiring again. If there is a misconfiguration, power off the Pi and the Arduino, correct the wiring, and try again. Note it is not recommended or required to supply 5V power from the Raspberry Pi if the microcontroller is USB powered, if the issue appears to be power related it may be removed from the solution and replaced with a powered USB connection if it will aid in troubleshooting but check all other wires first to ensure there are no shorts. - -Wiring problems are a common issue but there could be other reasons for programming not to complete. While it is not possible to list every possible problem and solution here, there is an active user community on Discord at https://discord.gg/bpmXfz5 with others familiar with the solution and willing to help. - -### Enable the SPI configuration and restart kvmd - -Once the installation has completed, all that should remain is to add the following configuration to `/etc/kvmd/override.yaml` and restart the kvmd service. If the first line exists due to existing overrides, omit that line and either add or update the hid section as appropriate. -```yaml -kvmd: - hid: - type: spi - chip: 0 - bus: 0 - sw_cs_pin: 7 - reset_pin: 25 - reset_inverted: true -``` - -After saving the changes to `/etc/kvmd/override.yaml`, restart `kvmd` and clear your browser cache. The command to restart `kvmd` is - -```sh -systemctl restart kvmd -``` - -If your device is still in read-write mode, `ro` will put the SD back in read-only mode. diff --git a/pages/building_os.md b/pages/building_os.md deleted file mode 100644 index 467eb93..0000000 --- a/pages/building_os.md +++ /dev/null @@ -1,128 +0,0 @@ -# Building the OS -The PiKVM OS is based on Arch Linux ARM and contains all the required packages and configs for it to work. - -To build the OS you will need x86_64 Linux machine with: -* kernel >= 5.8 -* glibc >= 2.33 -* docker >= 19.03.13 - -Docker must be enabled in privileged mode. - -Latest Arch Linux is working. - -0. When starting with a clean OS you need to install and configure docker (after adding your user to the docker group you must log out and log back in), as well as git and make. - ```shell - [user@localhost ~]$ sudo apt-get install git make curl binutils -y - [user@localhost ~]$ curl -fsSL https://get.docker.com -o get-docker.sh - [user@localhost ~]$ sudo sh get-docker.sh - [user@localhost ~]$ sudo usermod -aG docker $USER - ``` - Re-login to apply the changes. - -1. Git checkout the build toolchain: - ```shell - [user@localhost ~]$ git clone https://github.com/pikvm/os - [user@localhost ~]$ cd os - ``` - -2. Determine the target hardware configuration (platform): - * Choose the board: `BOARD=rpi4` for Raspberry Pi 4 or `BOARD=zerow`, `BOARD=rpi2`, `BOARD=rpi3` for other options. - * 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=v0-hdmiusb` for RPi 2 or 3 with HDMI-USB dongle and Arduino HID. - - Other options are for legacy or specialized PiKVM boards (WIP). - -3. Create the config file `config.mk` for the target system. You must specify the path to the SD card on your local computer (this will be used to format and install the system) and the version of your Raspberry Pi and platform. You can change other parameters as you wish. Please note: if your password contains the # character, you must escape it using a backslash like `ROOT_PASSWD = pass\#word`. - ```Makefile - [user@localhost os]$ cat config.mk - # rpi3 for Raspberry Pi 3; rpi2 for the version 2, zerow for ZeroW - BOARD = rpi4 - - # Hardware configuration - PLATFORM = v2-hdmi - - # Target hostname - HOSTNAME = pikvm - - # ru_RU, etc. UTF-8 only - LOCALE = en_US - - # See /usr/share/zoneinfo - TIMEZONE = Europe/Moscow - - # For SSH root user - ROOT_PASSWD = root - - # Web UI credentials: user=admin, password= - WEBUI_ADMIN_PASSWD = admin - - # IPMI credentials: user=admin, password= - IPMI_ADMIN_PASSWD = admin - - # SD card device - CARD = /dev/mmcblk0 - ``` - - If you want to configure wifi (for ZeroW board for example) you must add these lines to `config.mk`: - ```Makefile - WIFI_ESSID = "my-network" - WIFI_PASSWD = "P@$$word" - ``` - -4. Build the OS. It may take about one hour depending on your Internet connection: - ```shell - [user@localhost os]$ make os - ``` - -5a. Put SD card into card reader and install OS (**you should disable automounting beforehand**: `systemctl stop udisk2` or something like that): - ```shell - [user@localhost os]$ make install - ``` - -5b. Make the image to copy elsewhere and burn on to SD - ```shell - [user@localhost os]$ make image - ``` - Image is then available as a bziped file in images/ - -6. After installation remove the SD card and insert it into your RPi. Turn on the power. The RPi will try to get an IP address using DHCP on your LAN. It will then be available via SSH. - -7. If you can't find the device's address, try using the following command: - ```shell - [user@localhost os]$ make scan - ``` - -8. **Only for v0**: [Flash the Arduino HID](flashing_hid.md). - -9. Congratulations! Your PiKVM will be available via SSH (`ssh root@` with password `root` by default) and HTTPS (try to open in a browser the URL `https://`, the login `admin` and password `admin` by default). For HTTPS a self-signed certificate is used by default. - - *The latest versions of Chrome do not allow access to the page with a self signed certificate. You can proceed by typing ```thisisunsafe``` and Chrome will then load the page* - -10. To change the root password use command `passwd` via SSH or webterm. To change PiKVM web password use `kvmd-htpasswd set admin`. As indicated on the login screen use `rw` to make the root filesystem writable, before issuing these commands. After making changes, make sure to run the command `ro`. - -11. Important **note for HDMI-USB dongle** users only. Because of this, many video capture devices tell the server's video card that the HDMI cable is supposedly disconnected. This may lead to the fact that if you boot the server without an active stream, the server will not detect your capture card. This is easy to fix: - * Switch filesystem to RW-mode: - ``` - # rw - ``` - * Edit file `/etc/kvmd/override.yaml` and add these lines: - ```yaml - kvmd: - streamer: - forever: true - cmd_append: [--slowdown] - ``` - * Finish: - ``` - # ro - # systemctl restart kvmd - ``` - -12. **27.08.2020 note about systemd**: the latest version of Arch Linux has a slightly broken systemd. The problem is that SSH to the PiKVM host may not work the first time, but the second or third. The PiKVM build environment contains a workaround for this problem: in the file `/etc/pam.d/system-login` line `-session optional pam_systemd.so` is commented. This does not have any negative impact on the PiKVM functionality, but if you want to, after fixing the systemd (in a couple of months with the next update), you can uncomment this line. - -## Further Help -If you have any problems or questions, contact us using Discord: https://discord.gg/bpmXfz5 - -Subscribe to our Subreddit to follow news and releases: https://www.reddit.com/r/pikvm diff --git a/pages/community.md b/pages/community.md deleted file mode 100644 index eec0db1..0000000 --- a/pages/community.md +++ /dev/null @@ -1,11 +0,0 @@ -# Community Projects -This page contains derivative projects from our community that can be very useful. -This includes additional software, additional software, unofficial ports to other platforms and alternative firmware -and even PCB and case designs for PiKVM. - -# Software -* [PiKVM port to x86 using docker](https://github.com/purplepalmdash/pikvmx86) - BEWARE: This project has been abandoned - Left here for historical value -* [Serial HID using STM32 (work in progress)](https://github.com/jannic/pikvm-hid-stm32) - -# Hardware -* [PCB: OTG splitter, ATX controller and some other parts](https://github.com/akhlut/PiKVM_Parts) diff --git a/pages/config.md b/pages/config.md deleted file mode 100644 index bd5bf50..0000000 --- a/pages/config.md +++ /dev/null @@ -1,191 +0,0 @@ -YAML Syntax -=========== - -This page provides a basic overview of correct YAML syntax, which is how Ansible playbooks (our configuration management language) are expressed. - -We use YAML because it is easier for humans to read and write than other common data formats like XML or JSON. Further, there are libraries available in most programming languages for working with YAML. - -You may also wish to read [working with playbooks](https://docs.ansible.com/ansible/latest/user_guide/playbooks.html) at the same time to see how this is used in practice. - -YAML Basics ------------ - -For Ansible, nearly every YAML file starts with a list. Each item in the list is a list of key/value pairs, commonly called a "hash" or a "dictionary". So, we need to know how to write lists and dictionaries in YAML. - -There's another small quirk to YAML. All YAML files (regardless of their association with Ansible or not) can optionally begin with `---` and end with `...`. This is part of the YAML format and indicates the start and end of a document. - -All members of a list are lines beginning at the same indentation level starting with a `"- "` (a dash and a space): - - --- - # A list of tasty fruits - - Apple - - Orange - - Strawberry - - Mango - ... - -A dictionary is represented in a simple `key: value` form (the colon must be followed by a space): - - # An employee record - martin: - name: Martin D'vloper - job: Developer - skill: Elite - -More complicated data structures are possible, such as lists of dictionaries, dictionaries whose values are lists or a mix of both: - - # Employee records - - martin: - name: Martin D'vloper - job: Developer - skills: - - python - - perl - - pascal - - tabitha: - name: Tabitha Bitumen - job: Developer - skills: - - lisp - - fortran - - erlang - -Dictionaries and lists can also be represented in an abbreviated form if you really want to: - - --- - martin: {name: Martin D'vloper, job: Developer, skill: Elite} - ['Apple', 'Orange', 'Strawberry', 'Mango'] - -These are called "Flow collections". - -Ansible doesn't really use these too much, but you can also specify a boolean value (true/false) in several forms: - - create_key: yes - needs_agent: no - knows_oop: True - likes_emacs: TRUE - uses_cvs: false - -Use lowercase 'true' or 'false' for boolean values in dictionaries if you want to be compatible with default yamllint options. - -Values can span multiple lines using `|` or `>`. Spanning multiple lines using a "Literal Block Scalar" `|` will include the newlines and any trailing spaces. Using a "Folded Block Scalar" `>` will fold newlines to spaces; it's used to make what would otherwise be a very long line easier to read and edit. In either case the indentation will be ignored. Examples are: - - include_newlines: | - exactly as you see - will appear these three - lines of poetry - - fold_newlines: > - this is really a - single line of text - despite appearances - -While in the above `>` example all newlines are folded into spaces, there are two ways to enforce a newline to be kept: - - fold_some_newlines: > - a - b - - c - d - e - f - same_as: "a b\nc d\n e\nf\n" - -Let's combine what we learned so far in an arbitrary YAML example. This really has nothing to do with Ansible, but will give you a feel for the format: - - --- - # An employee record - name: Martin D'vloper - job: Developer - skill: Elite - employed: True - foods: - - Apple - - Orange - - Strawberry - - Mango - languages: - perl: Elite - python: Elite - pascal: Lame - education: | - 4 GCSEs - 3 A-Levels - BSc in the Internet of Things - -That's all you really need to know about YAML to start writing Ansible playbooks. - -Gotchas -------- - -While you can put just about anything into an unquoted scalar, there are some exceptions. A colon followed by a space (or newline) `": "` is an indicator for a mapping. A space followed by the pound sign `" #"` starts a comment. - -Because of this, the following is going to result in a YAML syntax error: - - foo: somebody said I should put a colon here: so I did - - windows_drive: c: - -...but this will work: - - windows_path: c:\windows - -You will want to quote hash values using colons followed by a space or the end of the line: - - foo: 'somebody said I should put a colon here: so I did' - - windows_drive: 'c:' - -...and then the colon will be preserved. - -Alternatively, you can use double quotes: - - foo: "somebody said I should put a colon here: so I did" - - windows_drive: "c:" - -The difference between single quotes and double quotes is that in double quotes you can use escapes: - - foo: "a \t TAB and a \n NEWLINE" - -The list of allowed escapes can be found in the YAML Specification under "Escape Sequences" (YAML 1.1) or "Escape Characters" (YAML 1.2). - -The following is invalid YAML: - -``` {.sourceCode .text} -foo: "an escaped \' single quote" -``` - -Further, Ansible uses "{{ var }}" for variables. If a value after a colon starts with a "{", YAML will think it is a dictionary, so you must quote it, like so: - - foo: "{{ variable }}" - -If your value starts with a quote the entire value must be quoted, not just part of it. Here are some additional examples of how to properly quote things: - - foo: "{{ variable }}/additional/string/literal" - foo2: "{{ variable }}\\backslashes\\are\\also\\special\\characters" - foo3: "even if it's just a string literal it must all be quoted" - -Not valid: - - foo: "E:\\path\\"rest\\of\\path - -In addition to `'` and `"` there are a number of characters that are special (or reserved) and cannot be used as the first character of an unquoted scalar: `` [] {} > | * & ! % # ` @ , ``. - -You should also be aware of `? : -`. In YAML, they are allowed at the beginning of a string if a non-space character follows, but YAML processor implementations differ, so it's better to use quotes. - -In Flow Collections, the rules are a bit more strict: - - a scalar in block mapping: this } is [ all , valid - - flow mapping: { key: "you { should [ use , quotes here" } - -Boolean conversion is helpful, but this can be a problem when you want a literal yes or other boolean values as a string. In these cases just use quotes: - - non_boolean: "yes" - other_string: "False" - -YAML converts certain strings into floating-point values, such as the string 1.0. If you need to specify a version number (in a requirements.yml file, for example), you will need to quote the value if it looks like a floating-point value: - - version: "1.0" diff --git a/pages/cookbook.md b/pages/cookbook.md deleted file mode 100644 index f9c7687..0000000 --- a/pages/cookbook.md +++ /dev/null @@ -1,89 +0,0 @@ -# Some random and useful recipes - -## Disabling authorization -Edit the file `/etc/kvmd/override.yaml`: -```yaml -kvmd: - auth: - enabled: false -``` -then restart `kvmd`: -``` -[root@pikvm ~]# systemctl restart kvmd -``` - -## Disabling ATX and hiding the menu -If you don't need ATX power control you can disable the relevant Web-UI menu in `/etc/kvmd/override.yaml`: -```yaml -kvmd: - atx: - type: disabled -``` -then restart `kvmd`: -``` -[root@pikvm ~]# systemctl restart kvmd -``` - -## Disabling webterm -``` -[root@pikvm ~]# systemctl disable --now kvmd-webterm -``` - -## Take a HDMI screenshot via console on PiKVM -``` -# curl --unix-socket /run/kvmd/ustreamer.sock http://localhost/snapshot -o screen.jpg -``` - -## Get installed KVMD version via console -``` -# pacman -Q | grep kvmd -``` - -## Enable Serial-over-USB connection -Specifically to v2. This can be used for terminal access from the managed server to the PiKVM, or for any other purpose that requires a serial connection. In the last case, you only need to perform step 1 and reboot. - -1. Edit `/etc/kvmd/override.yaml` (remove `{}` if this your first configuration entry) and add these lines: - ``` yaml - otg: - devices: - serial: - enabled: true - ``` -2. Run the following command: - ``` - # echo ttyGS0 >> /etc/securetty - ``` -3. Create the directory `/etc/systemd/system/getty@ttyGS0.service.d` and add a file file named `ttyGS0.override` into it. Afterwards edit the file and copy this into it: - ```ini - [Service] - TTYReset=no - TTYVHangup=no - TTYVTDisallocate=no - ``` -4. Run these comands: - ``` - # systemctl enable getty@ttyGS0.service - # reboot - ``` -5. Once PiKVM is rebooted you will have access to a virtual serial port on the server that the USB is connected to. Use mingetty, screen, putty, or something like this to access the kvm from the server. The port is called `/dev/ttyAMA0`. - -## Enable Ethernet-over-USB network -See [here](usb_ethernet.md). - -## Using Ethernet wiznet w5500 with ZeroW -See [here](https://github.com/pikvm/pikvm/issues/158#issuecomment-768305834). - -## Disable mass storage emulation -See [here](msd.md#disable-msd). - -## Upload .ISO images manually -See [here](msd.md#upload-images-manually-without-web-ui). - -## Mass Storage Drives -See [here](msd.md#multiple-and-writable-drives). - -## Create a Microsoft Windows based Flash disk image -See [here](msd.md#create-a-microsoft-windows-based-flash-disk-image). - -## Create a drive image on macOS -See [here](msd.md#create-a-drive-image-on-macos). diff --git a/pages/edid.md b/pages/edid.md deleted file mode 100644 index 2a1e616..0000000 --- a/pages/edid.md +++ /dev/null @@ -1,48 +0,0 @@ -# EDID - -EDID is information about the video modes supported by the video capture device. -In the case of PiKVM, this is an HDMI CSI bridge. Usually, you don't need to change this, since the default configuration is quite flexible, -but sometimes, for example for strange UEFIs/BIOSes, this may be necessary (the [story](https://github.com/pikvm/pikvm/issues/78)). - -The EDID is stored on the PiKVM in the file `/etc/kvmd/tc358743-edid.hex`. If you write new data there, it will be applied on the PiKVM reboot. - -You can also apply the new EDID without rebooting to make sure it works: -* Switch filesystem to RW-mode: `rw`. -* Create file with EDID `/root/edid.hex` (examples of file contents are shown below). -* Apply EDID using the command `v4l2-ctl --device=/dev/kvmd-video --set-edid=file=/root/edid.hex --fix-edid-checksums`. -* DO NOT REBOOT the PiKVM. Just your PC. Check the UEFI/BIOS. -* If everything works, you can write the same data to `/etc/kvmd/tc358743-edid.hex`. -* Switch filesystem to RO-mode: `ro`. - -The examples below are tested on these devices, but they are also suitable for others. To edit or create EDID you can use [AW EDID Editor](https://www.analogway.com/emea/products/software-tools/aw-edid-editor). - -### 1280x1024 as preferred resolution, Gigabyte GA-H77-DS3H -`00 FF FF FF FF FF FF 00 52 62 88 88 00 88 88 88 1C 15 01 03 80 00 00 78 0A EE 91 A3 54 4C 99 26 0F 50 54 25 40 00 01 00 01 00 01 00 01 00 01 00 01 00 01 01 01 01 D5 1B 00 50 50 00 19 40 08 20 B8 00 80 00 10 00 00 1E EC 2C 80 A0 70 38 1A 40 30 20 35 00 40 44 21 00 00 1E 00 00 00 FC 00 50 49 2D 4B 56 4D 20 56 69 64 65 6F 0A 00 00 00 FD 00 32 3D 0F 2E 0F 00 00 00 00 00 00 00 00 01 4D 02 03 04 00 DE 0D 20 A0 30 58 12 20 30 20 34 00 F0 B4 00 00 00 18 E0 15 00 A0 40 00 16 30 30 20 34 00 00 00 00 00 00 18 B4 14 00 A0 50 D0 11 20 30 20 35 00 80 D8 10 00 00 18 AB 22 A0 A0 50 84 1A 30 30 20 36 00 B0 0E 11 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45` - -### 1920x1080 as preferred resolution, Gigabyte GA-H77-DS3H, Intel NUC -`00 FF FF FF FF FF FF 00 52 62 88 88 00 88 88 88 1C 15 01 03 80 00 00 78 0A EE 91 A3 54 4C 99 26 0F 50 54 25 40 00 01 00 01 00 01 00 01 00 01 00 01 00 01 01 01 01 D3 2C 80 A0 70 38 1A 40 30 20 35 00 40 44 21 00 00 1E 7E 1D 00 A0 50 00 19 40 30 20 37 00 80 00 10 00 00 1E 00 00 00 FC 00 50 49 2D 4B 56 4D 20 56 69 64 65 6F 0A 00 00 00 FD 00 32 3D 0F 2E 0F 00 00 00 00 00 00 00 00 01 C4 02 03 04 00 DE 0D 20 A0 30 58 12 20 30 20 34 00 F0 B4 00 00 00 18 E0 15 00 A0 40 00 16 30 30 20 34 00 00 00 00 00 00 18 B4 14 00 A0 50 D0 11 20 30 20 35 00 80 D8 10 00 00 18 AB 22 A0 A0 50 84 1A 30 30 20 36 00 B0 0E 11 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45` - -### 1280x1024 as preferred, disabled 1080p at all -This may be necessary in extremely rare cases if the BIOS is completely buggy. In the future, we will provide a way to dynamically switch EDID. -``` -00FFFFFFFFFFFF005262888800888888 -1C150103800000780AEE91A3544C9926 -0F50542FCF0001000100010001000100 -0100010101018C2300A050001E403020 -370080001000001E000000FC0050492D -4B564D20566964656F0A000000FD0032 -3D0F2E0F000000000000000000000010 -0000000000000000000000000000016B -02030400DE0D20A03058122030203400 -F0B400000018E01500A0400016303020 -3400000000000018B41400A050D01120 -3020350080D810000018AB22A0A05084 -1A3030203600B00E1100001800000000 -00000000000000000000000000000000 -00000000000000000000000000000000 -00000000000000000000000000000045 -``` - -# Default EDID - -If for some reason you need to go back to the default EDID (changing attached device etc), you can find it locally on the Pi at `/usr/share/kvmd/configs.default/kvmd/tc358743-edid.hex` (`cp /usr/share/kvmd/configs.default/kvmd/tc358743-edid.hex /etc/kvmd/tc358743-edid.hex`) or in the [kvmd repo](https://github.com/pikvm/kvmd/blob/master/configs/kvmd/tc358743-edid.hex). diff --git a/pages/faq.md b/pages/faq.md deleted file mode 100644 index 93e0a95..0000000 --- a/pages/faq.md +++ /dev/null @@ -1,294 +0,0 @@ -# FAQ & Troubleshooting -As a first step, we recommend carefully reading our documentation on [GitHub](https://github.com/pikvm/pikvm). Most steps to successfully set up your PiKVM are already described there. If you run into any issues you can check this page which will list common errors. If that still doesn't help you you're welcome to raise an [issue ticket](https://github.com/pikvm/pikvm/issues) or [join our Discord](https://discord.gg/bpmXfz5) for further help. - -Note: if you can't find an answer to your question here, try the [Community FAQ](community_faq.md). It will be merged with this page in the future - ------ -# Navigation -* [Common questions](#common-questions) -* [First steps](#first-steps) -* [Video problems](#video-problems) -* [USB problems (keyboard, mouse, mass storage)](#usb-problems-keyboard-mouse-mass-storage-etc) -* [Web UI problems](#web-ui-problems) -* [Hardware problems (Wi-Fi, ATX, etc)](#hardware-problems-wi-fi-atx-etc) - ------ -# Common questions - -### Can I connect multiple servers to a single PiKVM? -
- Click to view - -* Yes, but it will require additional work to set up. See [this page](multiport.md). -
- -### How can I get the access to PiKVM in my local network over Internet? -
- Click to view - -* 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](tailscale.md), which is configured on PiKVM with a [few simple commands](tailscale.md). -
- -### Can I use PiKVM with non-Raspberry boards (Orange, Nano, etc)? -
- Click to view - -* Yes, but you will have to prepare the operating system yourself. As for the PiKVM software, you will need to replace some config files (such as UDEV rules). If you are a developer or an experienced system administrator, you will not have any problems with this. In addition, we are open to patches. If you need help with this, please contact us via [Discord](https://discord.gg/bpmXfz5). -
- ------ -# First steps - -### What is the default password? How do I change it? -
- Click to view - -* There are two types of accounts: OS and PiKVM (web interface) accounts. The system account `root` can be used for SSH/UART access and has the password `root`. The web interface account is called `admin` and has the password `admin`. The PiKVM account cannot be used for SSH access and vice versa. - - To change passwords, use the following commands (under root): - ```bash - su - # If you're in the webterm - rw # Switch filesystem to read-write mode - passwd root # Change OS root password - kvmd-htpasswd set admin # Change web ui admin password - ro # Back to read-only - ``` -
- -### How do I get root access in the web terminal? -
- Click to view - -* The web terminal works with the account `kvmd-webterm`. This is a regular user with no administrator privileges and. In addition, `sudo` and login are disabled for this user for security reasons. To get `root` access, you need to use the `su -` command (minus is important) and **enter the root password**. -
- -### Where is the PiKVM configuration located? -
- Click to view - -* Almost all KVMD (the main daemon controlling PiKVM) configuration files located in `/etc/kvmd`. You can also find nginx configs and SSL certificates there. KVMD configs use [YAML](config.md) syntax. The specific platform parameters can be found in the file `/etc/kvmd/main.yaml` and **you should never edit it**. Use `/etc/kvmd/override.yaml` to redefine the system parameters. - - Another files that are also not recommended for editing have read-only permissions. If you edit any of these files, you will need to manually make changes to them when you upgrade your system. You can view the current configuration and all available KVMD parameters using the command `kvmd -m`. -
- -### I can't edit any file on PiKVM. Why is the system in read-only mode? -
- Click to view - -* The PiKVM file system is always mounted in read-only mode. This measure prevents it from being damaged by a sudden power outage. To change the configuration you must first switch the filesystem to write mode using the command `rw` from root. After the changes, be sure to run the command `ro` to switch it back to read-only. If you get a message that the file system is busy, then the easiest way is to perform a `reboot`. -
- -### How do I update PiKVM with the latest software? -
- Click to view - -* PiKVM OS is based on Arch Linux ARM and is fully updated from the repository by a regular package manager. Connect to your PiKVM via ssh and run: - ``` - rw - pacman -Syu - reboot - ``` - - :exclamation: Pacman saves all installed packages in a compressed format so that you can roll back to the old version if something goes wrong. After you've updated and made sure everything works, it makes sense to clear the package cache so that it doesn't take up space on the SD card: `rw; rm -rf /var/cache/pacman/pkg; ro`. -
- ------ -# Video problems - -### I can see the video but I can't see the WebRTC switch -
- Click to view - -* WebRTC is an alternative mode for the default MJPEG and it's only supported on v2+ platforms with the CSI video capture device. See [this](webrtc.md) page to solve any problems with WebRTC. -
- -### PiKVM does not show the video from the computer at all -
- Click to view - -* Double-check that the video capture device is connected correctly. For the [CSI bridge](/README.md#for-the-hdmi-csi-bridge), this should be exactly the camera port, for the [USB dongle](/README.md#for-the-hdmi-usb-dongle), strictly the port indicated in the picture. -* Some laptops do not output any signal until you switched the output (usually via the FN + and an F5 key on the keyboard). -* Your computer may have turned on sleep mode for the monitor. Move the mouse and turn it off. -
- -### The video works in the booted OS, but not in the BIOS/UEFI -
- Click to view - -* The problem appears on Intel NUC, GA-H77-DS3H, and some other devices with using CSI bridge. All you need to do is [change the EDID data](edid.md). This is the information about supported resolutions that the CSI bridge reports to your computer. -
- -### Glitchy or wrong BIOS/UEFI resolution -
- Click to view - -* On some motherboards, the BIOS may be displayed at a lower resolution, or with some rendering issues/glitches, specially on newer ASUS ones. Like this: - - ASUS BIOS glitch - - This can be solved by enabling the **Compatibility Support Module (CSM)** in your BIOS, usually under the **Boot** options. - - If you can't or don't want to enable the CSM, you can try connecting a DisplayPort monitor, or a [dummy plug](http://amazon.com/s?k=displayport+dummy+plug). If you remove the DP cable/adapter the bug will reappear. - - If none of this works, try connecting the DP cable first, boot into the BIOS, disable the CSM and shutdown (do not restart) your PC. Then, boot into the BIOS and enable the CSM before shutting down your PC. Then connect the HDMI and turn your PC on again. -
- -### CSI bridge does not work with official Raspberry Pi PoE HAT -
- Click to view - -* Details [here](https://github.com/pikvm/pikvm/issues/6). The reason is that the [official HAT](https://www.raspberrypi.org/products/poe-hat) has a built-in fan controller that conflicts with the TC358743 chip of the bridge. The solution is to disable the fan control and connect it to the power line so that it works continuously. To turn off the controller you need to add the line `disable_poe_fan=1` to `/boot/config.txt`. -
- -### The video freezes a few seconds after the start, restarting the Web UI or VNC does not help -
- Click to view - -* The story is [here](https://github.com/raspberrypi/firmware/issues/1562). Very-very rarely, Raspberry boards can have a hardware defect that causes some of the chip blocks to be unstable under normal power. The solution is to slightly increase the power supply, as in overclocking. Add `over_voltage=1` (or `over_voltage=2` if previous doesn't help) to `/boot/config.txt` and perform `reboot`. - - To make sure that you are facing this particular problem, first perform a diagnostic: - - Boot the PiKVM without the specified options. - - Open Web-UI and wait for freezing. - - Click **System -> Reset Stream**. - - Click **System -> Open log** and make sure that the log contains messages like `H264: Can't wait for the VCOS semaphore`. - - Make sure that the last message from ustreamer was `H264: Configuring MMAL encoder` (not counting messages about connecting and disconnecting stream clients). -
- -### No image from computer with Linux + Awesome WM -
- Click to view - -* Sometimes Awesome WM on Linux can't recognize a video output change on a cable. That is, if the cable was first inserted into the monitor, and then you reconnected it to PiKVM - it may happen that you will not see the image. It seems that the problem is Awesome WM, since for example with KDE, it is not reproducable. If you turn on your workstation with PiKVM already connected, everything will work fine. -
- ------ -# USB problems (keyboard, mouse, mass storage, etc) - -### My computer does not recognize USB of PiKVM v2+ at all -
- Click to view - -* Make sure that you have used the correct USB cable with DATA lines to connect the OTG port for the Raspberry to the computer. You may have decided to use a USB hub instead of a Y-cable and **it won't work**. Use good cables and follow the instructions :) -* In rare cases, some very buggy BIOSes does not like HID and Mass Storage in one USB device. You can either [disable Mass Storage](https://github.com/pikvm/pikvm/blob/master/pages/msd.md#disable-msd), or use [Arduino HID](https://github.com/pikvm/pikvm/blob/master/pages/arduino_hid.md) to physically separate them. -
- -### BIOS/UEFI does not recognize USB of v2+, but computer does -
- Click to view - -* If you are using a USB hub or USB PCI controller, this may not be handled by your BIOS. Try to use another USB port. Some ports may have a built-in hub on the motherboard and a buggy BIOS that can't handle it. -
- -### The keyboard works in BIOS/UEFI, but the mouse does not -
- Click to view - -* The BIOS does not support absolute mouse mode, which is preferred by PiKVM. In this case, [you can enable relative or dual positioning mode](mouse.md). -
- -### I can't wake up suspended computer on v2+ -
- Click to view - -* This feature is experimental and requires manual activation. Perform a full system update, edit `/etc/kvmd/override.yaml`, and reboot. After that, you can use remote wakeup by pressing any keyboard key or mouse button. - ```yaml - otg: - remote_wakeup: true - ``` -
- -### Mass storage drive working (I can boot an image from PiKVM v2+), but keyboard/mouse does not -
- Click to view - -* In rare cases, some very buggy BIOSes does not like HID and Mass Storage in one USB device. You can either [disable Mass Storage](https://github.com/pikvm/pikvm/blob/master/pages/msd.md#disable-msd), or use [Arduino HID](https://github.com/pikvm/pikvm/blob/master/pages/arduino_hid.md) to physically separate them. -
- -### Buggy absolute mouse on Windows 98 as managed server -
- Click to view - -* How to fix: - - [v2+/OTG](https://github.com/pikvm/pikvm/blob/master/pages/mouse.md#fixing-the-absolute-mouse-on-windows-98). - - [Arduino HID](https://github.com/pikvm/pikvm/blob/master/pages/arduino_hid.md#fixing-the-usb-absolute-mouse-on-windows-98). -
- -### Big mouse latency on another Raspberry as managed server -
- Click to view - -* Unusual case: RPi4 is used as a PiKVM to control RPi3. In this case, the mouse delay may be several seconds. To fix it, just add line `usbhid.mousepoll=0` to `/boot/config.txt` to the server (i.e. RPI3 in our case) and reboot it. -
- ------ -# Web UI problems - -### Chrome Certificate Issue -
- Click to view - -* The latest versions of Chrome do not allow access to the page with a self signed certificate, so if you see the following screen when loading the PiKVM website: - - Chrome Blocking - -* You can proceed by typing ```thisisunsafe``` and Chrome will then load the page. -
- -### Pressing ESC in full screen mode causes this to close -
- Click to view - -* Your browser does not support [keyboard lock](https://caniuse.com/mdn-api_keyboard_lock). Right now, only Chrome implements this. -
- -### I can't use this on iOS: the Web UI network indicator flashes yellow -
- Click to view - -* Safari on iOS contains an old bug that prevents a web application from connecting over a web socket if you use a self-signed certificate on the server (the default for PiKVM). There are two solutions: - - Install a valid SSL certificate for PiKVM host to `/etc/kvmd/nginx/ssl`. - - Disable HTTPS at all in `/etc/kvmd/nginx/nginx.conf`. To do this, comment some lines [like in this file](https://github.com/pikvm/kvmd/blob/master/configs/nginx/nginx.conf#L39) and restart web server: `systemctl restart kvmd-nginx`. - - :exclamation: Don't do this for insecure networks or the Internet. Your passwords and what you type on the keyboard will be transmitted in unencrypted form. -
- -### The Web UI doesn't work properly in Firefox while it works fine in Chrome -
- Click to view - -* This might be related to your specific hardware combination or browser hardware acceleration. Try [disabling hardware acceleration in Firefox](https://support.mozilla.org/en-US/kb/hardware-acceleration-and-windowblinds-crash) or updating your GPU and chipset drivers. -
- -### Unexpected interruption while loading the image for Mass storage drive -
- Click to view - -* If problems occur when uploading even a small disk image it may be due to unstable network operation or antivirus software. It is well known that Kaspersky antivirus cuts off PiKVM connections during uploading, so you should add the PiKVM website to Kaspersky's list of exceptions or not filter web requests with the antivirus. Antivirus programs can also affect the performance of certain interface elements, for example the quality slider. For Kaspersky, the steps to add the network address of PiKVM's website to the exclusion list is: **Protection -> Private browsing -> Categories and exclusions -> Exclusions**. -
- -### I can't copy clipboard contents from the server (the machine controlled via PiKVM) to the client -
- Click to view - -* The clipboard only works from the client to the server not vice versa. There is currently no way to do it. -
- ------ -# Hardware problems (Wi-Fi, ATX, etc) - -### No Wi-Fi on Raspberry Pi Zero W -
- Click to view - -* If your device is unable to connect to the WiFi network that you have setup check the 2.4 GHz WiFi channel used by your WiFi access point. - If channels 12 to 14 are used (some countries have banned these channels) try to use a channel between 1 and 11. - -* Some Zeros contain a defective Wi-Fi chip. You can either return the device to the store, or try the [software workaround](https://github.com/pikvm/pikvm/issues/137). -
- -### LEDs/Switches does not work in ATX control -
- Click to view - -* Double check your wiring as per [the documentation](/README.md#setting-up-the-v2). Make sure you placed the relays (G3VM-61A1) in the correct orientation. The relays for switches (Power, Reset) have a different orientation than the ones for LEDs. -
diff --git a/pages/flashing_hid.md b/pages/flashing_hid.md deleted file mode 100644 index 313b4d8..0000000 --- a/pages/flashing_hid.md +++ /dev/null @@ -1,344 +0,0 @@ -# Flashing the Arduino HID - -## TTL Firmware (the default option for v0 or v2) -This operation can be done using your RPi (except Pi Zero W). Here the common steps: - - 1. Disconnect the RESET wire from the Arduino board. - 1. Connect the Arduino and RPi with a suitable USB cable. - 1. Log in to the Raspberry Pi using SSH (`ssh root@` with password `root` by default) or using keyboard and monitor. The Raspberry Pi obtains the network address over DHCP. - 1. Execute `rw`, add line `dtoverlay=spi0-1cs` to `/boot/config.txt` and perform `reboot`. - 1. Upload the firmware (USB keyboard & mouse is used by default, on this step [you can choose PS/2 keyboard](arduino_hid.md#ps2-keyboard)): - ```shell - [root@pikvm ~]# rw - [root@pikvm ~]# systemctl stop kvmd - [root@pikvm ~]# cp -r /usr/share/kvmd/hid ~ - [root@pikvm ~]# cd ~/hid - [root@pikvm hid]# make - [root@pikvm hid]# make install - [root@pikvm hid]# reboot - ``` - 1. Connect the RESET wire, disconnect the USB cable, and reboot the RPi. - -With a Pi Zero W, you may consider building the firmware on a faster system and programming using USB or booting from another SD card and following the build steps using a clone of the kvmd repo. - -## SPI Firmware -This operation can be done using your Raspberry Pi without disconnecting any wires: - - 1. Connect the Arduino and RPi with a suitable USB cable. - 1. Log in to the Raspberry Pi using SSH (`ssh root@` with password `root` by default) or using keyboard and monitor. The Raspberry Pi obtains the network address over DHCP. - 1. Build and upload the firmware (USB keyboard & mouse is used by default) - ```shell - [root@pikvm ~]# rw - [root@pikvm ~]# systemctl stop kvmd - [root@pikvm ~]# cp -r /usr/share/kvmd/hid ~ - [root@pikvm ~]# cd ~/hid - [root@pikvm hid]# make spi - [root@pikvm hid]# make install - [root@pikvm hid]# reboot - ``` -## Common Errors - -### Circuit Issues -#### Common - Reset Wire -Different pins are used for the reset wire but serve a similar function. For programming the TTL firmware over USB, the reset wire should be disconnected. When programming using SPI, the reset wire needs to be connected through a transistor circuit and connected to GPIO25 (pin 22 on the GPIO header) - -#### SPI-specific Wiring -The 3v3, ground, Reset (GPIO25), MISO, MOSI, SCLK, and CS1 need to be connected appropriately. SPIO_CS0 and SPIO_CS1 can both be used but the default configuration uses SPIO_CS1 for the Arduino Microcontroller (CS0 is used for another device on the v3). These generally follow a block as follows: -``` -Pin 0 2 4 - 2 0 0 - .........GR.C....... -Row # 12345678901234567890 - ........3MMS........ -Pin 0 1 3 - 1 7 9 -``` - -The most common error is an "off-by-one" error where pins are shifted by a row. Some cases have non-standard GPIO layouts so please be careful when following these instructions using a case that has a modified pinout. - -### Library Compatibility -On `make install` you may encounter the following error: -``` -/root/.platformio/packages/tool-avrdude/avrdude: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory -``` -Create a symlink for this library: -```bash -[root@pikvm ~]# ln -s /usr/lib/libtinfo.so.6 /usr/lib/libtinfo.so.5 -``` -And run `make install` again. - -If you have any problems or questions, contact us using Discord: https://discord.gg/bpmXfz5 - -### Example SPI build + Flash -
- Here's an end-to-end build and flash of the SPI HID firmware using the default options as described above. - -```bash -[root@pikvm ~]# rw -[root@pikvm ~]# systemctl stop kvmd -[root@pikvm ~]# cp -r /usr/share/kvmd/hid ~ -[root@pikvm ~]# cd ~/hid -[root@pikvm hid]# make spi -make _build E=spi -make[1]: Entering directory '/root/hid' -rm -f .current -platformio run --environment spi -************************************************************************************************************************************ -If you like PlatformIO, please: -- follow us on Twitter to stay up-to-date on the latest project news > https://twitter.com/PlatformIO_Org -- star it on GitHub > https://github.com/platformio/platformio -- try PlatformIO IDE for embedded development > https://platformio.org/platformio-ide -************************************************************************************************************************************ - -Processing spi (platform: atmelavr; board: micro; framework: arduino) ------------------------------------------------------------------------------------------------------------------------------------- -Platform Manager: Installing atmelavr -Unpacking [####################################] 100% -Platform Manager: atmelavr @ 3.1.0 has been installed! -The platform 'atmelavr' has been successfully installed! -The rest of the packages will be installed later depending on your build environment. -Tool Manager: Installing platformio/toolchain-atmelavr @ ~1.50400.0 -Downloading [####################################] 100% -Unpacking [####################################] 100% -Tool Manager: toolchain-atmelavr @ 1.50400.190710 has been installed! -Tool Manager: Installing platformio/framework-arduino-avr @ ~5.1.0 -Downloading [####################################] 100% -Unpacking [####################################] 100% -Tool Manager: framework-arduino-avr @ 5.1.0 has been installed! -Tool Manager: Installing platformio/tool-avrdude @ * -Tool Manager: tool-avrdude @ 1.60300.200527 has been installed! -Tool Manager: Installing platformio/tool-scons @ ~4.40001.0 -Unpacking [####################################] 100% -Tool Manager: tool-scons @ 4.40001.0 has been installed! -Verbose mode can be enabled via `-v, --verbose` option -patch([], []) -patch([], []) -CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/micro.html -PLATFORM: Atmel AVR (3.1.0) > Arduino Micro -HARDWARE: ATMEGA32U4 16MHz, 2.50KB RAM, 28KB Flash -DEBUG: Current (simavr) On-board (simavr) -PACKAGES: - - framework-arduino-avr 5.1.0 - - tool-avrdude 1.60300.200527 (6.3.0) - - toolchain-atmelavr 1.50400.190710 (5.4.0) -LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf -LDF Modes: Finder ~ chain, Compatibility ~ soft -Library Manager: Installing HID-Project @ 2.6.1 -Library Manager: HID-Project @ 2.6.1 has been installed! -Library Manager: Installing git+https://github.com/Harvie/ps2dev#v0.0.3 -git version 2.30.0 -Cloning into '/root/hid/.platformio/.cache/tmp/pkg-installing-84arveu0'... -Note: switching to 'a043002178450772d72a58b0c42752a506fd4dea'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -Library Manager: ps2dev @ 0.0.3+sha.a043002 has been installed! -Library Manager: Installing digitalWriteFast @ 1.0.0 -Library Manager: digitalWriteFast @ 1.0.0 has been installed! -Found 8 compatible libraries -Scanning dependencies... -Dependency Graph -|-- 2.6.1 -| |-- 1.0 -|-- 0.0.3+sha.a043002 -|-- 1.0.0 -|-- 1.0 -Building in release mode -patch -p1 -d /root/hid/.platformio/packages/framework-arduino-avr < patches/no-main.patch -patching file cores/arduino/main.cpp -([], []) -patch -p1 -d /root/hid/.platformio/packages/framework-arduino-avr < patches/optional-usb-serial.patch -patching file cores/arduino/PluggableUSB.cpp -patching file cores/arduino/USBCore.cpp -([], []) -patch -p1 -d /root/hid/.platformio/packages/framework-arduino-avr < patches/get-plugged-endpoint.patch -patching file cores/arduino/PluggableUSB.h -([], []) -patch -p1 -d /root/hid/.pio/libdeps/spi/HID-Project < patches/shut-up.patch -patching file src/KeyboardLayouts/ImprovedKeylayouts.h -([], []) -patch -p1 -d /root/hid/.pio/libdeps/spi/HID-Project < patches/no-hid-singletones.patch -patching file src/SingleReport/BootKeyboard.cpp -patching file src/SingleReport/BootKeyboard.h -patching file src/SingleReport/BootMouse.cpp -patching file src/SingleReport/BootMouse.h -patching file src/SingleReport/SingleAbsoluteMouse.cpp -patching file src/SingleReport/SingleAbsoluteMouse.h -([], []) -patch -p1 -d /root/hid/.pio/libdeps/spi/HID-Project < patches/absmouse-win-fix.patch -patching file src/SingleReport/SingleAbsoluteMouse.cpp -([], []) -Compiling .pio/build/spi/src/main.cpp.o -Compiling .pio/build/spi/src/spi.cpp.o -Compiling .pio/build/spi/lib2d3/HID/HID.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/MultiReport/AbsoluteMouse.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/MultiReport/Consumer.cpp.o -Archiving .pio/build/spi/lib2d3/libHID.a -Indexing .pio/build/spi/lib2d3/libHID.a -Compiling .pio/build/spi/libd81/HID-Project/MultiReport/Gamepad.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/MultiReport/ImprovedKeyboard.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/MultiReport/ImprovedMouse.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/MultiReport/NKROKeyboard.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/MultiReport/SurfaceDial.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/MultiReport/System.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/SingleReport/BootKeyboard.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/SingleReport/BootMouse.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/SingleReport/RawHID.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/SingleReport/SingleAbsoluteMouse.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/SingleReport/SingleConsumer.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/SingleReport/SingleGamepad.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/SingleReport/SingleNKROKeyboard.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/SingleReport/SingleSystem.cpp.o -Compiling .pio/build/spi/libd81/HID-Project/port/samd.cpp.o -Compiling .pio/build/spi/libeaf/ps2dev/ps2dev.cpp.o -Archiving .pio/build/spi/lib822/libdigitalWriteFast.a -Indexing .pio/build/spi/lib822/libdigitalWriteFast.a -Compiling .pio/build/spi/lib519/SPI/SPI.cpp.o -.pio/libdeps/spi/ps2dev/src/ps2dev.cpp: In member function 'int PS2dev::keyboard_reply(unsigned char, unsigned char*)': -.pio/libdeps/spi/ps2dev/src/ps2dev.cpp:243:17: warning: variable 'enabled' set but not used [-Wunused-but-set-variable] - unsigned char enabled; - ^ -Archiving .pio/build/spi/libd81/libHID-Project.a -Archiving .pio/build/spi/libFrameworkArduinoVariant.a -Indexing .pio/build/spi/libFrameworkArduinoVariant.a -Indexing .pio/build/spi/libd81/libHID-Project.a -Compiling .pio/build/spi/FrameworkArduino/CDC.cpp.o -Archiving .pio/build/spi/lib519/libSPI.a -Archiving .pio/build/spi/libeaf/libps2dev.a -Indexing .pio/build/spi/lib519/libSPI.a -Indexing .pio/build/spi/libeaf/libps2dev.a -Compiling .pio/build/spi/FrameworkArduino/HardwareSerial.cpp.o -Compiling .pio/build/spi/FrameworkArduino/HardwareSerial0.cpp.o -Compiling .pio/build/spi/FrameworkArduino/HardwareSerial1.cpp.o -Compiling .pio/build/spi/FrameworkArduino/HardwareSerial2.cpp.o -Compiling .pio/build/spi/FrameworkArduino/HardwareSerial3.cpp.o -Compiling .pio/build/spi/FrameworkArduino/IPAddress.cpp.o -Compiling .pio/build/spi/FrameworkArduino/PluggableUSB.cpp.o -Compiling .pio/build/spi/FrameworkArduino/Print.cpp.o -Compiling .pio/build/spi/FrameworkArduino/Stream.cpp.o -Compiling .pio/build/spi/FrameworkArduino/Tone.cpp.o -Compiling .pio/build/spi/FrameworkArduino/USBCore.cpp.o -Compiling .pio/build/spi/FrameworkArduino/WInterrupts.c.o -Compiling .pio/build/spi/FrameworkArduino/WMath.cpp.o -.platformio/packages/framework-arduino-avr/cores/arduino/USBCore.cpp: In function 'bool ClassInterfaceRequest(USBSetup&)': -.platformio/packages/framework-arduino-avr/cores/arduino/USBCore.cpp:378:5: warning: unused variable 'i' [-Wunused-variable] - u8 i = setup.wIndex; - ^ -Compiling .pio/build/spi/FrameworkArduino/WString.cpp.o -Compiling .pio/build/spi/FrameworkArduino/abi.cpp.o -Compiling .pio/build/spi/FrameworkArduino/hooks.c.o -Compiling .pio/build/spi/FrameworkArduino/main.cpp.o -Compiling .pio/build/spi/FrameworkArduino/new.cpp.o -Compiling .pio/build/spi/FrameworkArduino/wiring.c.o -Compiling .pio/build/spi/FrameworkArduino/wiring_analog.c.o -Compiling .pio/build/spi/FrameworkArduino/wiring_digital.c.o -Compiling .pio/build/spi/FrameworkArduino/wiring_pulse.S.o -Compiling .pio/build/spi/FrameworkArduino/wiring_pulse.c.o -Compiling .pio/build/spi/FrameworkArduino/wiring_shift.c.o -Archiving .pio/build/spi/libFrameworkArduino.a -Indexing .pio/build/spi/libFrameworkArduino.a -Linking .pio/build/spi/firmware.elf -Building .pio/build/spi/firmware.hex -Checking size .pio/build/spi/firmware.elf -Advanced Memory Usage is available via "PlatformIO Home > Project Inspect" -RAM: [= ] 9.9% (used 253 bytes from 2560 bytes) -Flash: [=== ] 34.7% (used 9952 bytes from 28672 bytes) -=================================================== [SUCCESS] Took 56.86 seconds =================================================== - -Environment Status Duration -------------- -------- ------------ -spi SUCCESS 00:00:56.861 -=================================================== 1 succeeded in 00:00:56.861 =================================================== - -************************************************************************************************************************************ -There is a new version 5.1.0 of PlatformIO available. -Please upgrade it via `platformio upgrade` or `pip install -U platformio` command. -Changes: https://docs.platformio.org/en/latest/history.html -************************************************************************************************************************************ - -echo -n spi > .current -make[1]: Leaving directory '/root/hid' -[root@pikvm hid]# make install -platformio run --environment spi --target upload -Processing spi (platform: atmelavr; board: micro; framework: arduino) ------------------------------------------------------------------------------------------------------------------------------------- -Verbose mode can be enabled via `-v, --verbose` option -CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/micro.html -PLATFORM: Atmel AVR (3.1.0) > Arduino Micro -HARDWARE: ATMEGA32U4 16MHz, 2.50KB RAM, 28KB Flash -DEBUG: Current (simavr) On-board (simavr) -PACKAGES: - - framework-arduino-avr 5.1.0 - - tool-avrdude 1.60300.200527 (6.3.0) - - toolchain-atmelavr 1.50400.190710 (5.4.0) -LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf -LDF Modes: Finder ~ chain, Compatibility ~ soft -Found 8 compatible libraries -Scanning dependencies... -Dependency Graph -|-- 2.6.1 -| |-- 1.0 -|-- 0.0.3+sha.a043002 -|-- 1.0.0 -|-- 1.0 -Building in release mode -Checking size .pio/build/spi/firmware.elf -Advanced Memory Usage is available via "PlatformIO Home > Project Inspect" -RAM: [= ] 9.9% (used 253 bytes from 2560 bytes) -Flash: [=== ] 34.7% (used 9952 bytes from 28672 bytes) -Configuring upload protocol... -AVAILABLE: custom -CURRENT: upload_protocol = custom -Uploading .pio/build/spi/firmware.hex - -avrdude: AVR device initialized and ready to accept instructions - -Reading | ################################################## | 100% 0.00s - -avrdude: Device signature = 0x1e9587 (probably m32u4) -avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed - To disable this feature, specify the -D option. -avrdude: erasing chip -avrdude: reading input file ".pio/build/spi/firmware.hex" -avrdude: writing flash (9952 bytes): - -Writing | ################################################## | 100% 2.78s - -avrdude: 9952 bytes of flash written -avrdude: verifying flash memory against .pio/build/spi/firmware.hex: -avrdude: load data flash data from input file .pio/build/spi/firmware.hex: -avrdude: input file .pio/build/spi/firmware.hex contains 9952 bytes -avrdude: reading on-chip flash data: - -Reading | ################################################## | 100% 2.33s - -avrdude: verifying ... -avrdude: 9952 bytes of flash verified - -avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF) - -avrdude done. Thank you. - -=================================================== [SUCCESS] Took 7.54 seconds =================================================== - -Environment Status Duration -------------- -------- ------------ -spi SUCCESS 00:00:07.536 -=================================================== 1 succeeded in 00:00:07.536 =================================================== -[root@pikvm hid]# reboot -``` - -
diff --git a/pages/flashing_os.md b/pages/flashing_os.md deleted file mode 100644 index 1495e32..0000000 --- a/pages/flashing_os.md +++ /dev/null @@ -1,105 +0,0 @@ -# Flashing the OS image -Download the appropriate memory card image from https://pikvm.org/download.html. Select it based on the board, platform, and the video capture device you are using. For example: choose **v2-hdmi-rpi4.img.bz2** for Raspberry Pi 4 with HDMI-to-CSI capture bridge. - -Note: right now, pre-compiled images are only available for the Raspberry Pi 4 and ZeroW. In all other cases, you will need to build the operating system yourself. But don't worry, it's [very simple](building_os.md). - - -## Using Linux CLI -Decompress and flash image and follow to the [final steps](#the-final-steps). Be careful when choosing your device path: -``` -# bzip2 -d v2-hdmi-rpi4.img.bz2 -# dd if=v2-hdmi-rpi4.img of=/dev/mmcblkX -``` - - -## Using balenaEtcher (Linux, MacOS and Windows) -1. Download and install [balenaEtcher](https://www.balena.io/etcher). - -2. Even on modern computers it might be faster to first extract the compressed image first. A bug in a balenaEtcher prior to version 1.5.108 caused it to use large amounts of RAM and a tediously slow flashing process. Extract the image using your favorite archive software. If you don't have one that supports .bz2 images (on Windows for example) - [7-Zip](https://www.7-zip.org) is a great (free) choice.

_Flashing the compressed image directly: ~12 minutes; extracting first (~1 minute on an SSD) and flashing afterwards only takes ~3 minutes._ - -3. Run Balena Etcher: - - drawing - -4. Press **Flash from file** and select the image: - - drawing - -5. Insert the memory card into the card reader. Press **Select target** and choose your memory card: - - drawing - -6. Press **Flash!** button. - - drawing - -7. Wait for the process to finish. Get yourself a coffee or do some stretching. :wink: If an error occurs during flashing, repeat the process: - - drawing - - **NOTE** - If Etcher does not work for you and you continue to get failed bootup's, download RaspberryPi imager and use that instead - -## The final steps -1. **Important for ZeroW**. In order for your device to connect to Wi-Fi, you will have to tell it which network to use with which password. To do this, mount the first partition of the memory card (FAT32) and edit the `pikvm.txt` file there. Do not remove line `FIRSTBOOT=1`, just add your wifi settings like this: - ``` - FIRSTBOOT=1 - WIFI_ESSID="mynet" - WIFI_PASSWD="p@s$$w0rd" - ``` - There is a possibility that, in countries that support CH13, the ZeroW will not connect. You will need to configure your router to disable channels 12-14 or disable Auto scan mode so it will connect. - - Save, unmount and follow the next step. - - **NOTE** - This can also be applied to the latest Rpi4 images, it is however easier to set this up using `wifi-menu -o` -

**NOTE** - For ZeroW w/o header, if you add this [device](https://www.pishop.us/product/solderless-serial-to-usb-adapter-for-raspberry-pi-zero/), this will add a local console without breaking the current overlay. To Access for example: Look for `ZeroW console serial` in windows and update the driver from the [VCP driver section](https://ftdichip.com/drivers/vcp-drivers/) -

**NOTE** - If you do not see this on your wifi, you will need to redo this step. Due to a first time run, you will need to recreate this file with the above information. - -2. When the process is complete, pull out the memory card and insert it into the Raspberry Pi. Connect the Raspberry Pi to the power supply. Your device will obtain the IP address via DHCP automatically.
:exclamation:Windows users: balenaEtcher will automatically safely remove the memory card. If you are using a Windows version prior to Windows 10 1809 and a different flashing software, you should do the safe remove manually. - -3. After power-up, PiKVM OS generates unique SSH keys and certificates. Do not turn off the Raspberry Pi until it's fully booted. If you set up Wi-Fi in step 1, it won't be able to connect to the network on the first boot. You need to wait 10 minutes for all the OS preparations to complete, then just restart the device. On the second boot, the Raspberry will connect to the network without any problems. - -3a. Please scan for your pikvm either using Angry IP scanner for PC or Fing for mobile before proceeding to the next step, if not found please restart step 1. - -4. Congratulations! Your PiKVM will be available via SSH (`ssh root@` with the password `root` by default) and HTTPS. In most networks you should be able to reach PiKVM via any browser with the URL `https://pikvm/`. If that doesn't work you'll need to find the IP address manually in your router and try it via `https://`. The default login username is `admin` with `admin` as the password). For HTTPS a self-signed certificate is used by default. Your browser will give you a warning about an invalid SSL certificate which you can safely ignore. - - Please see this page for additional functionality https://github.com/pikvm/pikvm/tree/master/pages - -5. To change the root password use command `passwd` via SSH or webterm. To change PiKVM web password use `kvmd-htpasswd set admin`. As indicated on the login screen, you need to use `rw` to make the root filesystem writable before issuing these commands. After making changes, make sure to run the command `ro` to switch the filesystem back to read-only. If you are using a web terminal, use the `su -` command to get root access (enter the root password). - -6. After installation, we recommend you to update your operating system: - ``` - rw - pacman -Syu - reboot - ``` - **NOTE** - PROXY servers make networks behave not in a normal manor, therefor, may or may not update properly. The end user is ultimately responsible for coming up with solutions to combat this. - -7. Pacman saves all installed packages in a compressed format so that you can roll back to the old version if something goes wrong. After you've updated and made sure everything works, it makes sense to clear the package cache so that it doesn't take up space on the SD card: - ``` - # rw - # pacman -Sc - # rm -rf /var/cache/pacman/pkg - # ro - ``` -8. **Important note for HDMI-USB dongle** users only. Because of this, many video capture devices tell the server's video card that the HDMI cable is supposedly disconnected. This may lead to the fact that if you boot the server without an active stream, the server will not detect your capture card. This is easy to fix: - * Switch filesystem to RW-mode: - ``` - # rw - ``` - * Edit file `/etc/kvmd/override.yaml` and add these lines: - ```yaml - kvmd: - streamer: - forever: true - cmd_append: [--slowdown] - ``` - * Finish: - ``` - # ro - # systemctl restart kvmd - ``` - - -If you have any problems or questions, contact us using Discord: https://discord.gg/bpmXfz5 - -Subscribe to our Subreddit to follow news and releases: https://www.reddit.com/r/pikvm diff --git a/pages/gpio.md b/pages/gpio.md deleted file mode 100644 index 5c8bc0f..0000000 --- a/pages/gpio.md +++ /dev/null @@ -1,432 +0,0 @@ -# GPIO -[GPIO (general-purpose input/output)](https://en.wikipedia.org/wiki/General-purpose_input/output) is a series of digital interfaces that can be used to connect relays, LEDs, sensors, and other components. - -:exclamation: Note: Using GPIO on a PiKVM was designed as a feature for advanced users, so please familiarize yourself with the topic to make sure you understand how to use use it before setting it up. Otherwise you might damage your Raspberry Pi or components. - -When talking about PiKVM and GPIO it refers not solely to the [physical interface of the Raspberry Pi](https://www.raspberrypi.org/documentation/usage/gpio), but also to various plugins (for example, for [USB relays](http://vusb.wikidot.com/project:driver-less-usb-relays-hid-interface)) that can also be used transparently by emulating an abstract GPIO API. - -# Configuration -Setting up GPIO is considerably complex. The interface is divided into several layers for flexibility. Any configuration is performed using a file `/etc/kvmd/override.yaml` which uses the [YAML syntax](https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html). We will look at each part of the configuration individually with an example for each. Sections should be combined under shared keys. - -Wrong: -```yaml -kvmd: - gpio: - drivers: ... -kvmd: - gpio: - scheme: ... -``` -Correct: -```yaml -kvmd: - gpio: - drivers: ... - scheme: ... -``` - -### Drivers -The first part of the configuration refers to the hardware layer, which defines which IO channels are used (standard GPIO pins of the Raspberry Pi, an USB relay, and so on). If you just want to use GPIO with the default settings you can skip to the next section [Scheme](#Scheme). - -Each hardware input/output requires a individual driver configuration entry. Each driver has a type (which refers to the plugin that handles the communication between PiKVM and the hardware) and a unique name. This allows you to either can add multiple drivers of the same type with different settings or connect multiple USB HID relays. - -:exclamation: Each driver requires a unique name. Names surrounded by double underscore are system reserved and should not be used. - -The only exception to this is the default GPIO driver with the name `__gpio__`, representing the physical GPIO interface of the Raspberry Pi. The configuration section for `__gpio__` is only required in your `/etc/kvmd/override.yaml` if you want to change the default settings. It can be omitted if you are fine with the defaults. - -```yaml -kvmd: - gpio: - drivers: - # This example shows how the default __gpio__ driver settings can be changed. It can be omitted if you are fine with the defaults. - __gpio__: # Names surrounded by double underscore are system reserved - type: gpio # Refers to the plugin name handling the communication - - # You can define another gpio driver for some reason - my_gpio: - type: gpio # Refers to the plugin name handling the communication - - # Example for a USB HID relay connected to PiKVM - relay: - type: hidrelay # Eefers to the plugin name handling the communication - device: /dev/hidraw0 # The path to the linux device -``` - -### Scheme -The second part defines how the various driver channels are configured. Each channel has a unique name, a mode (`input` or `output`), a pin number, and a reference to the driver configured in the previous part. - -:exclamation: Names that starts and ends with two underscores (like `__magic__`) are reserved. - -Two interaction modes are available for outputs: `pulse` and `switch`. In pulse mode, the output quickly switches its state to logical 1 and back (just like pressing a button). In switch mode, it saves (toggles) the state that the user set. When PiKVM is started/rebooted (any time the KVMD daemon is started or stopped) all output channels are reset to 0. This can be changed using the `initial` parameter. For example, `initial=true` for logic 1 on startup. - -If you don't specify a driver for the channel in the scheme the default driver, `__gpio__` will be used. - -| Parameter | Type | Allowed values | Default | Description | -|-----------------------------------|-----------|--------------------------|---------|-----------------------| -| `led1`, `button1`, `relay1`, etc. | `string` | `a-Z`, numbers, `_`, `-` | | A section for the named channel | -| `pin` | `integer` | `X >= 0` | | Refers to a GPIO pin or driver's pin/port | -| `mode` | `enum` | `input` or `output` | | Defines if a channel is used for input or output, may be limited by driver plugin | -| **Input only** | | | | | -| `debounce` | `float` | `x >= 0` | `0.1` | [Debounce](https://www.arduino.cc/en/Tutorial/Debounce) time in seconds. `0` for disable debounce | -| **Output only** | | | | | -| `switch` | `bool` | `true` or `false` | `true` | Enables or disables the switch mode on the channel (enabled by default). | -| `initial` | `nullable bool` | `true`, `false` or `null` | `false` | Defines the initial state of the switch upon boot, `null` for don't make changes (the last one does not supported by generic GPIO) | -| `inverted` | `bool` | `true` or `false` | `false` | Inverts the active logical level | -| `pulse` | | | | A section header to define switch pulse configuration | -| `delay` | `float` | `X >= 0` | `0.1` | Defines the pulse time in seconds, `0` for disable pulsing | -| `min_delay` | `float` | `X >= 0.1` | `0.1` | -| `max_delay` | `float` | `X >= 0.1` | `0.1` | - -__Example configuration__ -```yaml -kvmd: - gpio: - scheme: - # A certain device sends signals to the RPi and we want the PiKVM to display this as an led - led1: - pin: 19 # GPIO pin number on the RPi - mode: input - led2: - pin: 16 # GPIO pin number on the RPi - mode: input - - # Two outputs of RPi's GPIO - button1: - pin: 26 # GPIO pin number on the RPi - mode: output - switch: false # Disable switching, only pulse available - button2: - pin: 20 # GPIO pin number on the RPi - mode: output - switch: false # Disable switching, only pulse available - - relay1: # Channel 1 of the relay /dev/hidraw0 - pin: 0 # Numerating starts from 0 - mode: output # Relays can't be inputs - initial: null # Don't reset the state to 0 when initializing and terminating KVMD - relay2: # Channel 2 - pin: 1 - mode: output # Relays can't be inputs - initial: null - pulse: - delay: 2 # Default pulse value - max_delay: 2 # The pulse interval can be between min_delay=0.1 (by default) and max_delay=2 -``` - -### View -This is the last part of the required configuration. It defines how the previous driver and channel configuration is rendered on the Web interface. Here's an example for the example configuration above: - -```yaml -kvmd: - gpio: - view: - header: - title: Switches # the menu title - table: # The menu items are rendered in the form of a table of text labels and controls - - ["#Generic GPIO leds"] # Text starting with the sharp symbol will be a label - - [] # creates a horizontal separator and starts a new table - - ["#Test 1:", led1, button1] # Text label, one input, one button with text "Click" - - ["#Test 2:", led2, button2] - - [] # creates a horizontal separator and starts a new table - - ["#HID Relays /dev/hidraw0"] - - [] # creates a horizontal separator and starts a new table - - ["#Relay #1:", "relay1|Boop 0.1"] # Text label and button with alternative text - - ["#Relay #2:", "relay2|Boop 2.0"] # Text label and button with alternative text -``` - -This will be rendered as: - -drawing - -Some rules and customization options: -- Text starting with the `#` symbol will be a label. -- To place a channel in a cell, use the name you defined in the scheme. -- Inputs are displayed as round LEDs. -- Outputs are displayed as a switch AND a button. -- If the switch mode is disabled, only a button will be displayed. If pulse is disabled, only a switch will be shown. -- To change the LED's color specify it after the channel name like `"led1|red"`. Available: `green`, `yellow` and `red`. -- To change title of the button, write some its name like `"relay1|My cool relay"`. -- Buttons and switches can request confirmation on acting. To do this write its name like `"relay1|confirm|My cool relay"`. The third argument with a title is required in this case. - -# Hardware modules and pseudo-drivers - -### Raspberry's GPIO -
- :exclamation:Click to view:exclamation: - -The driver `gpio` provides access to regular GPIO pins with input and output modes. It uses `/dev/gpiochip0` and the libgpiod library to communicate with the hardware. Does not support saving state between KVMD restarts (meaning `initial=null`). - -You can use the [interactive scheme](https://pinout.xyz/) when selecting the pins to use. Please note that when selecting a pin for a channel, you need to use a logical number instead of a physical number. That is, if you want to use a physical pin with the number 40, the channel must have the number 21 corresponding to the logical GPIO21. - -Channels should not use duplicate pins. You can also not use already used pins. To see which pins are currently used, run the command `gpioinfo`. -
- -### USB HID Relay -
- :exclamation:Click to view:exclamation: - -The driver `hidrelay` provides access to cheap managed [USB HID relays](http://vusb.wikidot.com/project:driver-less-usb-relays-hid-interface) that can be found on AliExpress. This driver does not support input mode, only output. To use it, you need to specify the path to the device file (like `/dev/hidraw0`) using the `device` parameter. - -Additionally, we recommend to configure access rights and static device name using [UDEV rules](https://wiki.archlinux.org/index.php/udev). For example, create `/etc/udev/rules.d/99-kvmd-extra.rules`: -``` -KERNEL=="hidraw[0-9]*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", GROUP="kvmd" -``` - -Channels should not use duplicate physical numbers. The driver supports saving state between KVMD restarts (meaning `initial=null`). -
- -### ezCoo KVM switch -
- :exclamation:Click to view:exclamation: - -You can use GPIO to control KVM port switching. This usually requires the use of relays and buttons, but for the [ezCoo switch](https://github.com/pikvm/pikvm/blob/master/pages/ezcoo.md) there is a special `ezcoo` driver that simulates GPIO by sending commands to the switch via serial port. So you can make a menu in PiKVM to control the multiport switch. -
- -### IPMI -
- :exclamation:Click to view:exclamation: - -The driver `ipmi` provides the ability to send IPMI commands (on, off, reset) and show the power status of the remote host. In fact, this is not a hardware driver, but something like a pseudo-GPIO. Each "pin" is actually responsible for a specific IPMI operation of `ipmitool`: - -| Pin | Type | Command | -|-----|----------|---------| -| `0` | `input` | `ipmitool ... power status`, can be used to draw the LED in the menu | -| `1` | `output` | `ipmitool ... power on`, sends the `on` command (and only this), so like all other outputs it should be a button | -| `2` | `output` | `ipmitool ... power off` | -| `3` | `output` | `ipmitool ... power cycle` | -| `4` | `output` | `ipmitool ... power reset` | -| `5` | `output` | `ipmitool ... power diag` | -| `6` | `output` | `ipmitool ... power soft` | - -You are supposed to define one driver per host: -```yaml -kvmd: - gpio: - drivers: - my_server: - type: ipmi - host: myserver.local - user: admin - passwd: admin - scheme: - my_server_status: - driver: my_server - pin: 0 - mode: input - my_server_on: - driver: my_server - pin: 1 - mode: output - switch: false - my_server_off: - driver: my_server - pin: 2 - mode: output - switch: false - view: - table: - - [my_server_status, "my_server_on|On", "my_server_off|Off"] -``` -
- -### Wake-on-LAN -
- :exclamation:Click to view:exclamation: - -The driver `wol` provides a simple generator of Wake-on-LAN packages. One driver and one output are generated for one host if a [simplified configuration method](wol.md) is used. However, you can define multiple drivers if you want to manage different hosts. One driver controls one host, and can only be used as an output. Pin numbers are ignored. -```yaml -kvmd: - gpio: - drivers: - wol_server1: - type: wol - mac: ff:ff:ff:ff:ff:f1 - wol_server2: - type: wol - mac: ff:ff:ff:ff:ff:f2 - ip: 192.168.0.100 - port: 9 - scheme: - wol_server1: - driver: wol_server1 - pin: 0 - mode: output - switch: false - wol_server2: - driver: wol_server2 - pin: 0 - mode: output - switch: false - view: - table: - - ["#Server 1", "wol_server1|Send Wake-on-LAN"] - - ["#Server 2", "wol_server2|Send Wake-on-LAN"] -``` -
- -### PWM -
- :exclamation:Click to view:exclamation: - -The `pwm` driver allows you to use [some GPIO pins](https://pinout.xyz/pinout/pwm) on the Raspberry Pi for PWM. - -Here the small example with servo control: - -1. Add to `/boot/config.txt`: - ``` - dtoverlay=pwm - ``` - -2. Create `/etc/udev/rules.d/99-kvmd-pwm.rules`: - ``` - SUBSYSTEM=="pwm*", ACTION=="add", RUN+="/bin/chgrp -R kvmd /sys%p", RUN+="/bin/chmod -R g=u /sys%p" - SUBSYSTEM=="pwm*", ACTION=="change", ENV{TRIGGER}!="none", RUN+="/bin/chgrp -R kvmd /sys%p", RUN+="/bin/chmod -R g=u /sys%p" - ``` - -3. Connect Servo motor like SG90 PWM connection to RPi GPIO18, +5V and GND to a 5V and GND pin on header: - -4. Add to /etc/kvmd/override.yaml - ```yaml - kvmd: - gpio: - drivers: - servo1: - type: pwm - chip: 0 # PWM Chip Number - period: 20000000 # Servo Motor SG90 Period in nano-seconds - duty_cycle_push: 1500000 # Servo Motor SG90 duty_cycle for pushing button - duty_cycle_release: 1000000 # Servo Motor SG90 duty_cycle for releasing button - scheme: - short_press: - driver: servo1 - pin: 0 # Pin number is the PWM channel number on the PWM Chip - mode: output - switch: false - pulse: - delay: 0.5 - max_delay: 2 - long_press: - driver: servo1 - pin: 0 # Pin number is the PWM channel number on the PWM Chip - mode: output - switch: false - pulse: - delay: 2 - max_delay: 2 - extra_long_press: - driver: servo1 - pin: 0 # Pin number is the PWM channel number on the PWM Chip - mode: output - switch: false - pulse: - delay: 10 - max_delay: 20 - view: - header: - title: Controls - table: - - ["#Servo - Short Press", "short_press|Press"] - - ["#Servo - Long Press", "long_press|Press"] - - ["#Servo - Extra Long Press", "extra_long_press|Press"] - ``` -
- -### Servo -
- :exclamation:Click to view:exclamation: - -The `servo` module is built on top of the `pwm` module and allows user to define angles instead of `duty_cyles` to control a PWM enabled servo motor like SG90. When the button is pressed the servo motor moves to an angle defined by `angle_push` and when button is released it moves back to `angle_release`. In the example configuration for a [cheap 5V SG90 Servo](https://www.ebay.co.uk/itm/184555802744), the motor moves to an angle of 45 degrees when button is pressed and moves back to 20 degress when released. - -❗ To use Servo motors in PiKVM you need to follow steps 1-3 for [PWM Module](#pwm) and then use the following configuration. - -Add to /etc/kvmd/override.yaml -```yaml -kvmd: - gpio: - drivers: - servo1: - type: servo - chip: 0 # PWM Chip Number - period: 20000000 # Servo Motor SG90 Period in nano-seconds - duty_cycle_min: 350000 # Servo Motor SG90 duty_cycle for -90 degrees - duty_cycle_max: 2350000 # Servo Motor SG90 duty_cycle for +90 degrees - angle_max: 90 # Servo Motor SG90 angle at duty_cycle_max - angle_min: -90 # Servo Motor SG90 angle at duty_cycle_min - angle_push: 45 # Servo Motor SG90 angle to push button - angle_release: 20 # Servo Motor SG90 angle to release button - scheme: - short_press: - driver: servo1 - pin: 0 # Pin number is the PWM channel number on the PWM Chip - mode: output - switch: false - pulse: - delay: 0.5 - max_delay: 2 - long_press: - driver: servo1 - pin: 0 # Pin number is the PWM channel number on the PWM Chip - mode: output - switch: false - pulse: - delay: 2 - max_delay: 2 - extra_long_press: - driver: servo1 - pin: 0 # Pin number is the PWM channel number on the PWM Chip - mode: output - switch: false - pulse: - delay: 10 - max_delay: 20 - view: - header: - title: Controls - table: - - ["#Servo - Short Press", "short_press|Press"] - - ["#Servo - Long Press", "long_press|Press"] - - ["#Servo - Extra Long Press", "extra_long_press|Press"] -``` - -
- -### Philips Hue -
- :exclamation:Click to view:exclamation: - -The `hue` module can control [smartplugs](https://shop.ledvance.com/en/products/smart-plug-eu) and lamps over Philips Hue Bridge API. In general the plugin can switch any device on/off which is connected to the bridge. To use it you will need API token aka username: -1. Open `http://bridge/debug/clip.html`. -2. In the URL: Field type `/api/`. -3. In the Message Body: Field type: `{"devicetype": "pikvm"}`. -4. Hit the Get Button. -5. As the Response you become the Username: `{"success": {"username": "apiusername"}`. - -Example: -```yaml -kvmd: - gpio: - drivers: - hue: - type: hue - url: http://bridge - token: YG-xxxxxxxxxxxx - scheme: - plug_button: - driver: hue - pin: 32 - mode: output - initial: null - switch: true - pulse: - delay: 0 - plug_led: - driver: hue - pin: 32 - mode: input - view: - table: - - ["plug_led", "plug_button"] - -``` - -
diff --git a/pages/tailscale.md b/pages/tailscale.md deleted file mode 100644 index 2baf061..0000000 --- a/pages/tailscale.md +++ /dev/null @@ -1,21 +0,0 @@ -# Tailscale VPN -As an example, You can use [Tailscale](https://tailscale.com/) to access PiKVM on the internal network. This is a convenient and free (for private use) tool for organizing a small VPN network. This document is provided as an example for accessing your pikvm over the inet but you can also use zerotier or remote.it. Basic support like whats shown below is provided as an example, any other setting or functionality needs to be redirected to the appropriate community. - -# Installation -## On the PiKVM side -1. Use these commands: - ``` - # rw - # pacman -Syy - # pacman -S tailscale-pikvm - # 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 the page https://login.tailscale.com/admin/machines to view your VPN network. -* Follow the URL in the web browser: `https://` and you will see PiKVM web interface. diff --git a/pages/v3.md b/pages/v3.md deleted file mode 100644 index 70a6701..0000000 --- a/pages/v3.md +++ /dev/null @@ -1,96 +0,0 @@ -# PiKVM v3 Tech info - -## Description -The **PiKVM v3 HAT Board** is designed to work with the **Raspberry Pi 4** and provides the following features: -* **HDMI capture** device with max resolution 1080p 50Hz and audio support -* **Keyboard** & **mouse** emulation -* **Mass storage emulation** (i.e., virtual flash drive or CD drive provided by image file saved on PiKVM) -* Ability to simulate "**removal and insertion**" for USB for above mentioned devices -* **ATX controller** (allowing to switch power even if target device is off or operating system hangs) -* Onboard **real-time clock** -* 5v PWM **fan controller** -* USB & RJ-45 **serial console** - -## Requirements -To use PiKVM v3, you will need the following things, which are NOT included in the base kit: -* **Raspberry Pi 4** (a model with any amount of memory is suitable) -* **5.1v 3A** official Raspberry power supply with USB-C -* A regular **HDMI cable** -* **USB-C to USB-A cable** with DATA lines (for keyboard and mouse emulation) -* **Straight Ethernet cable** (NOT crossover, to connect the HAT board and ATX board) -* **Micro-SD** card at least **16 Gb class 10** is strongly recommended - -# Known issues & limitations -* The actual frame rate of the image received via HDMI will depend on the network bandwidth, resolution and the load on the Raspberry Pi. This is usually ~20-24 FPS for 1080p over LAN. -* **AIMOS** KVM switch not trully compatible with v3.2, but works great with v3.3 (Kickstarter edition) -* There may be **compatibility** issues with some motherboards (such as **HP** or **DELL**) which are the same as those that exist with PiKVM v2. Not everything is perfect, but if you have already used PiKVM v2 - our new v3 will work perfectly and please you. If there is no image from the BIOS, you can fine-tune the HDMI settings, but it is possible that the Mass Storage devices will not be available in the BIOS. - -# Installation -0. Print a plastic case if you want it ([v3.3](../stl/v3.3/README.md) for the Kickstarter model, [v3.2](../stl/v3.2/README.md) for the pre-release). -1. Build the device: - * [Device with or without the 3D-printed case](https://www.youtube.com/watch?v=-SRL92VJ870) - * [With the metal case](https://www.youtube.com/watch?v=jdqiwHKQcD4) (+ [AUM option](https://youtu.be/GGMufHuqyp0)) - -3. [Install the operating system](flashing_os.md) (choose the v3 image). -4. Power it up -5. If your kit includes the display and/or the fan, you'll need to turn them on after installation: - ```bash - su - # The default password is "root" - rw - systemctl enable --now kvmd-oled # For the display - systemctl enable --now kvmd-fan # For the fan - ro - logout - ``` -5. **Important!** If you are going to use GPIO pins to control a relay, KVM switch, or anything else, be sure to check the v3 shield pinout. Many ports are busy with internal functions. Before using them for your own use, you must disable them, otherwise you may damage the device. - -# IO ports -drawing - -### Description -1. **USB for the power** - 5.1v 3A is strongly recommended. The official Raspberry Pi 4 power supply is perfect for this. -2. **Power (green) and activity (red) LEDs** - Show the device status. The red LED lights up when there is disk activity. -3. **USB serial console** - Hardware serial console to login and configure the Raspberry Pi via a terminal emulator. It operates at a speed of 115200 baud. Just plug in the USB and you will see a USB-TTL device on your host. -4. **USB serial console status LED** - The console has independent power from the USB connected host, so you can reboot the Pi and not lose the connection to the console. The LED indicates the presence of power via USB. -5. **COM serial console** - For connection, the so-called CISCO-style serial cable is used (on the one hand, RJ45, on the other, COM port). You can buy any suitable cable or [make your own](https://wiki.mikrotik.com/wiki/Manual:System/Serial_Console). If you do not need console access to the PiKVM, this port can be used to access the server. -6. **PoE pins** - PiKVM is compatible with PoE hats. These pins are used for power supply. -7. **UART jumpers** - The two jumpers installed here provide communication between the console ports (3, 5) and the UART of Raspberry. By removing them, you will get access to the UART. -8. **Audio capture jumpers** - The PiKVM can capture audio. Although this is not yet implemented in the software, the hardware capability is already present and you can use the `arecord` command to record audio. These pins are used for this purpose. If you need additional GPIO pins, you can remove these jumpers, comment line `dtoverlay=tc358743-audio` in `/boot/config.txt`, and use the [GPIO 19, 20 and 21](https://pinout.xyz/pinout/pin35_gpio19) as you see fit. -9. **HDMI reset jumper** - Currently unused. In the future, it will be used for hardware resetting of the video capture chip. If you remove it, you will be able to use the [GPIO 17]( - https://pinout.xyz/pinout/pin11_gpio17) -10. **GPIO pins** - With the exception of the used pins, the rest are at your service. -11. **ATX controller interface** - Use the ethernet [straight cable](https://www.home-network-help.com/straight.html) to connect the ATX adapter (included). Connect the wires of the power button, reset button, and the power and HDD LEDs inside your server enclosure to the adapter. -12. **1-Wire & Neo-pixel interface** - Unused right now. For neopixel used [GPIO 13](https://pinout.xyz/pinout/pin33_gpio13) (same as for the red status LED). -13. **OTG USB** - The port to connect to the server. Here, the keyboard, mouse, disk, and so on are emulated. -14. **OTG USB AUX** - For fans of soldering. You can use these pins to connect OTG if you have installed PiKVM inside the server case. -15. **HDMI input** - From 640x480 to 1920x1080 50Hz (max). -16. **Service USB** - Use the dual USB-C bridge (included) to connect the Rspberry and v3 shield with this port. -17. **HDMI 5v LED** -18. **HDMI 3.3v LED** -19. **AUM socket** - To connect an Advanced USB Module that provides an alternative way to emulate the keyboard and mouse and mass storage. -20. **CSI socket** - Use a wide flat cable to connect to the Raspberry Pi. -21. **5v fan connector** - Connector for controlling a 5v fan with PWM support. -22. **5v power pins** - To receive or alternatively supply power to the PiKVM. -23. **Top secret** - Currently unused. -24. **I2C for the display** diff --git a/pages/video.md b/pages/video.md deleted file mode 100644 index 92ffe4f..0000000 --- a/pages/video.md +++ /dev/null @@ -1,34 +0,0 @@ -# Video -Currently, PiKVM uses MJPEG for video transmission. This is a simple and widely supported, but not very effective video format. -In the near future, it is planned to support H264, and then switch to it as the main one. - -The H264 implementation is still under development, but right now you can use it to record video from your server. -To do this, uStreamer supports simultaneous MJPEG and H264 encoding since version 3.0. - -### Video recording -:exclamation: Best of all this feature only works for HDMI to CSI bridge. For the USB HDMI dongle, there will be a decrease in FPS to 10-15 for 1080p. Work in progress. - -* Perform full system update to get the latest uStreamer and install ffmpeg: - ``` - rw - pacman -Syu - pacman -S ffmpeg - ``` -* For USB dongle only: Add line `gpu_mem=256` to `/boot/config.txt`. -* Perform `reboot` command. -* Run `rw` after the reboot. -* Add memory sink options to `/etc/kvmd/override.yaml`. This is necessary to get a dump of the video stream: - ```yaml - kvmd: - streamer: - cmd_append: - - "--h264-sink=kvmd::ustreamer::h264" - ``` -* Restart kvmd: `systemctl restart kvmd`. H264 encoding is almost CPU-free, so if you use RPi4 or RPi3, you can leave the option permanently. -* To record a video, you need to enable the stream (open the web interface or connect via VNC). Then run something like this in the console: - ``` - rw - ustreamer-dump --sink kvmd::ustreamer::h264 --output - | ffmpeg -use_wallclock_as_timestamps 1 -i pipe: -c:v copy test.mp4 - ``` -* Press `Ctrl+C` to stop recording. You video will be in the file `test.mp4`. -* After finishing work, do not forget to switch the file system to read-only mode using `ro` command. diff --git a/pages/vnc.md b/pages/vnc.md deleted file mode 100644 index 232a844..0000000 --- a/pages/vnc.md +++ /dev/null @@ -1,47 +0,0 @@ -# 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. - -:exclamation: **Please note: we strongly advise against using VNC without X.509 or TLS encryption on untrusted networks!** Otherwise your password will be transmitted over the network in plain text. Unfortunately, this is the reality of the VNC protocol. - -# Enabling VNC on the PiKVM side -1. Switch PiKVM filesystem to 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` - - :exclamation: **(remove `{}` before adding lines)**: - ```yaml - vnc: - keymap: /usr/share/kvmd/keymaps/ru - ``` - _All available keymaps are located in /usr/share/kvmd/keymaps:_ - - ![VNC keymaps](https://raw.githubusercontent.com/pikvm/pikvm/master/img/vnc-keymaps.png) - -3. _Optional:_ (This step is not nessessory if using TigerVNC) Some VNC clients (for example TightVNC) can't use user/password authentication. In this case you can enable passphrases 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 back to read-only: `ro`. - -# Configuring the client -We recommend [TigerVNC](https://tigervnc.org) for a better experience on desktop. -Here are our recommended settings for TigerVNC: -* **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**, **X.509 TLS** and **Anonymous TLS** encryption (or choose one preferred mode). - - Enable **Username and password** authentication. - -For iOS and Android the recommended application is bVNC: -* [Google Play](https://play.google.com/store/apps/details?id=com.iiordanov.bVNC) -* [App Store](https://apps.apple.com/us/app/bvnc-pro/id1506461202) - -# Unsupported clients -* Guacamole - Incorrectly implements vencrypt, no JPEG compression. -* Vinagre - Incorrectly implements vencrypt. diff --git a/pages/wifi_config.md b/pages/wifi_config.md deleted file mode 100644 index 0b3e044..0000000 --- a/pages/wifi_config.md +++ /dev/null @@ -1,101 +0,0 @@ -# Setting up WiFi / WLAN -The following describes how to setup a WiFi connection on the default pikvm builds based on Arch Linux. The process might vary for other Linux distros. -I'd recommend to do this while having a display and keyboard connected directly to the Raspberry Pi as you will loose network connectivity once you connect to a WiFi. -Alternatively you can connect to the pikvm via ssh. The built-in Terminal (available through the browser) should also work. - -**Note:** I'm omitting any sudo prefix for commands as the default installation runs as root anyway. If your installation does not run as root you'll have to add `sudo` in front of each command. - -## Make filesystem writeable -By default the pikvm filesystem is read-only. In order to make changes you'll need to switch to read-write mode. Do this by typing `rw` in the console. -``` -rw -``` - -## Enable WiFi auto roaming mode -If you want your Raspberry Pi to automatically connect to any configured and available WiFi networks you have to set the following option. On Raspberry Pis wlan0 is the default name of the wlan device. -``` -systemctl enable netctl-auto@wlan0.service -``` - -## Create WiFi profiles -### via GUI -You can create WiFi profiles either manually or by using `wifi-menu` - GUI. This requires the WiFi you want to connect to in signal range. -``` -wifi-menu -o -``` -The `-o` makes sure that the WiFi passphrase is stored encrypted. Otherwise it will be stored in cleartext in the profile file. `wifi-menu` will scan for all available WiFi networks and provide you a list: - -![Wifi Menu 1](https://raw.githubusercontent.com/pikvm/pikvm/master/img/wifi-1.png) - -Select the WiFi you want to connect to and give the profile file a name. The default name is wlan0-wifiname: - -![Wifi Menu 2](https://raw.githubusercontent.com/pikvm/pikvm/master/img/wifi-2.png) - -Enter the WPA-Passphrase: - -![Wifi Menu 3](https://raw.githubusercontent.com/pikvm/pikvm/master/img/wifi-3.png) - -Afterwards `wifi-menu` will try to connect to the WiFi. If you're connected via ssh or the Web Terminal you'll loose connection to the Raspberry Pi. Most DHCP servers will give the Raspberry Pi a new (and usually different) IP address for each interface (LAN / WLAN). - -If everything worked out you should be connected to your WiFi now. `wifi-menu` created a new profile file for you in */etc/netctl*. - -### Manually -If you want to store the WiFi passphrase encrypted you have to generate it via `wpa_passphrase`: -``` -wpa_passphrase wifiname this_is_my_great_and_secure_key_1234567890 -``` - -![WPA passphrase generation](https://raw.githubusercontent.com/pikvm/pikvm/master/img/wifi-4.png) - -Copy the second hexadecimal string without *psk=*. In this example _814c45d0f88f60636532b034c463639a506670f8ba3c7965e62cdbc1989f6d66_. -Create a new file with the editor of your choice: -``` -nano /etc/netctl/wlan0-wifiname -``` -or -``` -vi /etc/netctl/wlan0-wifiname -``` -Copy the following template into the file and modify it with your parameters. -**Attention:** Please note the \\" after Key= is required for encrypted passphrases. If you want to put your WiFi passphrase in cleartext the \\" is not required. See [this](https://github.com/joukewitteveen/netctl/blob/master/docs/netctl.profile.5.txt) for the quoting rules and more WiFi profile configuration options. -``` -Description='My great WiFi' -Interface=wlan0 -Connection=wireless -Security=wpa -ESSID=wifiname -IP=dhcp -Key=\"814c45d0f88f60636532b034c463639a506670f8ba3c7965e62cdbc1989f6d66 -``` -Save the file and you're good to go. You can manually connect to the profile you've just created with: -``` -netctl-auto switch-to wlan0-wifiname -``` - -Adding a Hidden SSID: -You need to edit /etc/netctl/wlan0- file and add the hidden option -``` -Description='Hidden SSID template' -Interface=wlan0 -Connection=wireless -Security=wpa -ESSID=WIFI-Name -IP=dhcp -Key=supersecretpassword -Hidden=yes -``` - -### 5GHz WiFi in the US -If you want to connect to a 5GHz WiFi in the US and it's not listed, create `/etc/wpa_supplicant/wpa_supplicant-wlan0.conf` with a single line `country=US`, and enable it with: -``` -systemctl enable wpa_supplicant@wlan0 -``` - -## Make filesystem read-only again -Do this by typing `ro` in the console -``` -ro -``` -## Additional resources - -- [Arch Linux Wiki for netctl](https://wiki.archlinux.org/index.php/Netctl) diff --git a/pages/xh-hk4401.md b/pages/xh-hk4401.md deleted file mode 100644 index 1b240e0..0000000 --- a/pages/xh-hk4401.md +++ /dev/null @@ -1,109 +0,0 @@ -# XH-HK4401 4-port HDMI USB KVM Switch -![KVM](https://raw.githubusercontent.com/pikvm/pikvm/master/img/xh-hk4401.jpg) - -This KVM is sold (https://www.aliexpress.com/item/4000849336545.html) under many names, and comes in two versions. -The only way these two versions differ is that one has one of its USB ports replaced with a PS/2 port. The -identifying feature is that they come with a small external control unit with 4 buttons. This controller is -connected to the main KVM via a micro USB cable, however this is **NOT** as USB connection. - -:exclamation: Audio was not tested, it is assumed to be non-functional. - -## Connections -1. Connect the USB-A cable from the Raspberry Pi OTG port to to any of the USB ports on the XH-HK4401 switch. -All 3/4 USB ports work exactly the same, internally they are just connected to a USB HUB. -2. Connect the HDMI out from the XH-HK4401 switch to the Raspberry Pi CSI-2 to HDMI input. -3. Connect host USB and HDMI cables from the XH-HK4401 switch to the machines to be managed per the switch -instructions. -4. Finally see below for details about connecting to the control micro USB port. :exclamation: This it not a -normal USB micro port - -:exclamation: There is a limitation in the underlying PiKVM software related to plugging video cables from a host which is already powered and connected to a monitor to a Raspberry Pi CSI2-HDMI encoder. These limitations apply equally when using the XH-HK4401 KVM switch. If video is not present in PiKVM, try keeping all host machines off and connecting them directly to the XH-HK4401 switch before powering the hosts on. - -## RS-232 Control cable -The control unit communicates to the KVM using the RS-232 protocol (at 5v) not USB, and one of the following -solutions must be used. - -### 1. An inverter circuit - -For this you will need: -- 2x 2n7000 MOSFETs -- 2x 10K resistors -- 1x USB Micro connector, or sacrificial micro USB cable -- Optional: USB UART adapter - -![KVM](https://raw.githubusercontent.com/pikvm/pikvm/master/img/xh-hk4401_circuit.jpg) - -You can connect this either via a USB UART adapter, or directly to the Raspberry Pi: GND -> Pin 6, TX -> Pin 8, RX -> Pin 10. -On the v3 PiKVM hat you will need to disable the UART jumpers to use the on-board UART. - -:exclamation: Please search online for USB pinouts to ensure you connect it properly. - -### 2. Inverting USB UART adapter - -Some USB UART adapters have the rare feature to invert the logic level of the RX/TX signals. For example the FTDI FT232 can -be configured via the FTDI configuration GUI to do this. With such an adapter, the circuit above is not required. All you -need is to connect it to a micro-USB connector. - -## Adding UI elements to control the KVM switch -The UI can be updated to add buttons to switch between KVM inputs and indicators for which input is currently selected. The instructions below will make these available in the PiKVM UI after clicking the "GPIO" menu button in the KVM view. - -1. SSH into PiKVM -2. Enable read-write mode on the sd card via `rw` -3. Edit the `/etc/kvmd/override.yaml` file and include the following. Note the assumption that you are using a USB UART present on `/dev/ttyUSB0`: -```yaml -kvmd: - gpio: - drivers: - hk: - type: xh-hk4401 - device: /dev/ttyUSB0 - scheme: - ch0_led: - driver: hk - pin: 0 - mode: input - ch1_led: - driver: hk - pin: 1 - mode: input - ch2_led: - driver: hk - pin: 2 - mode: input - ch3_led: - driver: hk - pin: 3 - mode: input - ch0_button: - driver: hk - pin: 0 - mode: output - switch: false - ch1_button: - driver: hk - pin: 1 - mode: output - switch: false - ch2_button: - driver: hk - pin: 2 - mode: output - switch: false - ch3_button: - driver: hk - pin: 3 - mode: output - switch: false - view: - table: - - ["#Input 1", ch0_led, ch0_button] - - ["#Input 2", ch1_led, ch1_button] - - ["#Input 3", ch2_led, ch2_button] - - ["#Input 4", ch3_led, ch3_button] - ``` -4. Return to read-only mode for the sd card via `ro` -5. Restart the kvmd service: `systemctl restart kvmd` - -## Switching between hosts in the UI - -To switch between hosts, enter the KVM UI and click the "GPIO" menu. You should see 4 inputs, one of which will have a green circle indicating it is currently selected. Click the other inputs to change the selected host.

CvTkj81c( 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 literal 0 HcmV?d00001 diff --git a/img/arduino_spi_hid.png b/docs/arduino_hid/arduino_spi_hid.png similarity index 100% rename from img/arduino_spi_hid.png rename to docs/arduino_hid/arduino_spi_hid.png diff --git a/img/arduino_spi_hid_bb.jpg b/docs/arduino_hid/arduino_spi_hid_bb.jpg similarity index 100% rename from img/arduino_spi_hid_bb.jpg rename to docs/arduino_hid/arduino_spi_hid_bb.jpg diff --git a/img/arduino_spi_hid_rpi.jpg b/docs/arduino_hid/arduino_spi_hid_rpi.jpg similarity index 100% rename from img/arduino_spi_hid_rpi.jpg rename to docs/arduino_hid/arduino_spi_hid_rpi.jpg diff --git a/img/ps2_kbd.png b/docs/arduino_hid/ps2_kbd.png similarity index 100% rename from img/ps2_kbd.png rename to docs/arduino_hid/ps2_kbd.png diff --git a/pages/bluetooth_hid.md b/docs/bluetooth_hid.md similarity index 76% rename from pages/bluetooth_hid.md rename to docs/bluetooth_hid.md index 218ab47..4446955 100644 --- a/pages/bluetooth_hid.md +++ b/docs/bluetooth_hid.md @@ -1,30 +1,41 @@ # Bluetooth HID + PiKVM is able to emulate a Bluetooth keyboard & mouse. This is not the main case of using PiKVM since you still need it to pair with a remote host, but can be used for something like mobile KVM. -:exclamation: Using Bluetooth HID requires additional configuration of the operating system. For v2, this means losing the UART port, -since it will be used by Bluetooth. Also, Bluetooth operation was tested only on RPi4 and v2 platform. Other boards may require different system service settings. +!!! warning + Using Bluetooth HID requires additional configuration of the operating system. For v2+, this means losing the UART port, since it will be used by Bluetooth. Also, Bluetooth operation was tested only on RPi4 and v2+ platform. Other boards may require different system service settings. + +!!! note + Bluetooth mouse can work only in [relative mode](mouse.md). The reason is that many Bluetooth host drivers do not correctly implement HID descriptors. Horizontal scrolling is not supported for the same reason. + -:exclamation: Bluetooth mouse can work only in [relative mode](mouse.md). The reason is that many Bluetooth host drivers do not correctly implement HID descriptors. Horizontal scrolling is not supported for the same reason. +## Configuring the OS -# Configuring the OS 1. Switch filesystem to RW-mode, perform update and install some packages: + ``` # rw # pacman -Syu # pacman -S bluez bluez-utils raspberrypi-bluetooth ``` + 2. Edit `/boot/config.txt` and comment these lines: + ``` #enable_uart=1 #dtoverlay=disable-bt ``` + 3. Create an empty directory `/var/lib/bluetooth` and add mountpoint to `/etc/fstab`: + ``` # mkdir /var/lib/bluetooth # echo 'tmpfs /var/lib/bluetooth tmpfs nodev,nosuid,mode=0755 0 0' >> /etc/fstab ``` + 4. Override and enable the services: + ``` # mkdir /etc/systemd/system/bluetooth.service.d # cat << EOF > /etc/systemd/system/bluetooth.service.d/override.conf @@ -35,7 +46,9 @@ since it will be used by Bluetooth. Also, Bluetooth operation was tested only on # systemctl enable bluetooth # systemctl enable raspberrypi-btuart ``` + 5. Override `kvmd` service: + ``` # mkdir /etc/systemd/system/kvmd.service.d # cat << EOF > /etc/systemd/system/kvmd.service.d/override.conf @@ -44,16 +57,24 @@ since it will be used by Bluetooth. Also, Bluetooth operation was tested only on CapabilityBoundingSet=CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_ADMIN CAP_SETUID CAP_SETGID CAP_CHOWN EOF ``` + 6. Add following lines to `/etc/kvmd/override.yaml`: + ```yaml kvmd: hid: type: bt ``` -7. Perform reboot: `reboot`. -8. To reverse, uncomment lines from Step 2 and remove lines in Step 6, ```reboot``` -# Using Bluetooth HID +7. Perform `reboot`. + +8. To reverse, uncomment lines from Step 2 and remove lines in Step 6, and `reboot`. + + +## Using Bluetooth HID + * After a reboot, the PiKVM will be ready for detection and pairing with no auth. You will see the `PiKVM HID` device. + * Once the server is connected, PiKVM will no longer be discoverable and pairable to other clients until you unpair the server. + * If something went wrong, use the web menu `System -> Reset keyboard & mouse`. This will cause unpair the device and switch the PiKVM to public mode before the first client is connected. diff --git a/docs/building_os.md b/docs/building_os.md new file mode 100644 index 0000000..e80d8d1 --- /dev/null +++ b/docs/building_os.md @@ -0,0 +1,106 @@ +# Building the OS + +The PiKVM OS is based on Arch Linux ARM and contains all the required packages and configs for it to work. To build the OS you will need x86_64 Linux machine with: + +* kernel >= 5.8 +* glibc >= 2.33 +* docker >= 19.03.13 + +Docker must be enabled in privileged mode. + +1. When starting with a clean OS you need to install and configure docker (after adding your user to the docker group you must log out and log back in), as well as git and make. An example for Ubuntu: + + ```shell + [user@localhost ~]$ sudo apt-get install git make curl binutils -y + [user@localhost ~]$ curl -fsSL https://get.docker.com -o get-docker.sh + [user@localhost ~]$ sudo sh get-docker.sh + [user@localhost ~]$ sudo usermod -aG docker $USER + ``` + + Re-login to apply the changes. + +2. Git checkout the build toolchain: + + ```shell + [user@localhost ~]$ git clone --depth=1 https://github.com/pikvm/os + [user@localhost ~]$ cd os + ``` + +3. Determine the target hardware configuration (platform): + + * Choose the board: `BOARD=rpi4` for Raspberry Pi 4 or `BOARD=zerow`, `BOARD=rpi2`, `BOARD=rpi3` for other options. + * Choose the platform: + * `PLATFORM=v3-hdmi` for RPi4 and PiKVM v3 HAT. + * `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=v0-hdmiusb` for RPi 2 or 3 with HDMI-USB dongle and Arduino HID. + * Other options are for legacy or specialized PiKVM boards (WIP). + +4. Create the config file `config.mk` for the target system. You must specify the path to the SD card on your local computer (this will be used to format and install the system) and the version of your Raspberry Pi and platform. You can change other parameters as you wish. Please note: if your password contains the # character, you must escape it using a backslash like `ROOT_PASSWD = pass\#word`. + + ```Makefile + [user@localhost os]$ cat config.mk + # rpi3 for Raspberry Pi 3; rpi2 for the version 2, zerow for ZeroW + BOARD = rpi4 + + # Hardware configuration + PLATFORM = v2-hdmi + + # Target hostname + HOSTNAME = pikvm + + # ru_RU, etc. UTF-8 only + LOCALE = en_US + + # See /usr/share/zoneinfo + TIMEZONE = Europe/Moscow + + # For SSH root user + ROOT_PASSWD = root + + # Web UI credentials: user=admin, password= + WEBUI_ADMIN_PASSWD = admin + + # IPMI credentials: user=admin, password= + IPMI_ADMIN_PASSWD = admin + + # SD card device + CARD = /dev/mmcblk0 + ``` + + If you want to configure wifi (for ZeroW board for example) you must add these lines to `config.mk`: + + ```Makefile + WIFI_ESSID = "my-network" + WIFI_PASSWD = "P@$$word" + ``` + +4. Build the OS. It may take about one hour depending on your Internet connection: + + ```shell + [user@localhost os]$ make os + ``` + +5. One of two actions: + * Put SD card into card reader and install OS (**you should disable automounting beforehand**: `systemctl stop udisk2` or something like that): + + ```shell + [user@localhost os]$ make install + ``` + + * Make the image to copy elsewhere and burn on to SD card: + + ```shell + [user@localhost os]$ make image + ``` + + Image is then available as a bziped file in `images/`. + +6. After installation remove the SD card and insert it into your RPi. Turn on the power. The RPi will try to get an IP address using DHCP on your LAN. It will then be available via SSH. + +7. If you can't find the device's address, try using the following command: + + ```shell + [user@localhost os]$ make scan + ``` diff --git a/pages/community_faq.md b/docs/community_faq.md similarity index 52% rename from pages/community_faq.md rename to docs/community_faq.md index 007c5d5..353051c 100644 --- a/pages/community_faq.md +++ b/docs/community_faq.md @@ -1,86 +1,6 @@ -# Community FAQ - -### Index -- [Can this be used for gaming? Why not?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#can-this-be-used-for-gaming-why-not) -- [Can this do 4K?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#can-this-do-4k) -- [Does PIKVM support sound](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#does-pikvm-support-sound) -- [Why so much latency between the screen and target?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#why-so-much-latency-between-the-screen-and-target) -- [Is PiKVM an OS or its own Distro?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#is-pikvm-an-os-or-its-own-distro) -- [Why are you using Arch Linux?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#why-are-you-using-arch-linux) -- [Can I power the Pi via POE?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#can-i-power-the-pi-via-poe) -- [Do I need a power splitter? Why do I need one?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#do-i-need-a-power-splitter-why-do-i-need-one) -- [I can't get the KVM KB to work on my ZeroW!](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#i-cant-get-the-kvm-kb-to-work-on-my-zerow) -- [Can I use a KB on my ZeroW?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#can-i-use-a-kb-on-my-zerow) -- [Can you have the pikvm(RPi4) connected along with a monitor?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#can-you-have-the-pikvmrpi4-connected-along-with-a-monitor) -- [Wouldn't it be good to have different hostnames for your multitude of pikvms?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#wouldnt-it-be-good-to-have-different-hostnames-for-your-multitude-of-pikvms) -- [I want to do something not related to PiKVM](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#i-want-to-do-something-not-related-to-pikvm) -- [Can this be used in any other distro’s like Rasbian? Run this in a Docker?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#can-this-be-used-in-any-other-distros-like-rasbian-run-this-in-a-docker) -- [Can you switch from USB to CSI or from CSI to USB?](#can-you-switch-from-usb-to-csi-or-from-csi-to-usb) -- [My Pi keeps disconnecting from my wireless! What do I do?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#my-pi-keeps-disconnecting-from-my-wireless-what-do-i-do) -- [I want a static IP!!](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#i-want-a-static-ip) -- [Why do I keep getting a different IP?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#why-do-i-keep-getting-a-different-ip) -- [HELP! I can't find the IP on the ZeroW/RPi4](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#help-i-cant-find-the-ip-on-the-zerowrpi4) -- [Help! I ran out of space AKA room!](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#help-i-ran-out-of-space-aka-room-what-now) -- [Can you connect a camera to this and still make pikvm functional?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#can-you-connect-a-camera-to-this-and-still-make-pikvm-functional) -- [I have a question that is not answered here!! Now what?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#i-have-a-question-that-is-not-answered-here-now-what) -- [HELP! Something isn't working!!](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#help-something-isnt-working) -- [HELP! I am getting a 500/503 error when I try and access the main KVM page!](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#help-i-am-getting-a-500503-error-when-I-try-and-access-the-main-kvm-page) -- [Can you use an iPad on PiKVM?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#can-you-use-an-ipad-on-pikvm) -- [Can I use RealVNC/Guacamole to connect to PiKVM?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#can-i-use-realvncguacamole-to-connect-to-pikvm) -- [How do I add my own SSL cert?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#how-do-i-add-my-own-ssl-cert) -- [How do I emulate various USB devices on the target machine?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#how-do-i-emulate-various-usb-devices-on-the-target-machine) -- [Things to do after initial install](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#things-to-do-after-initial-install) -- [Can I have a RW FS all of the time?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#can-i-have-a-rw-fs-all-of-the-time) -- [Can you run a desktop on pikvm?](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#can-you-run-a-desktop-on-pikvm) -- [Troubleshooting](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#troubleshooting) -- [Common Commands for troubleshooting PiKVM](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#common-commands-for-troubleshooting-pikvm) -- [Common ARCH commands](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#common-arch-commands) -- [Common wifi commands](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#common-wifi-commands) -- [Bootup/power issues](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#bootuppower-issues) -- [PiKVM Complains about low power warnings](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#pikvm-complains-about-low-power-warnings) -- [USB Video Capture Issues](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#usb-video-capture-issues) -- [HDMI-CSI Capture issues](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#hdmi-csi-capture-issues) -- [Misc stuff](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#misc-stuff) -- [Useful links](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#useful-links) - -### Can this be used for gaming? Why not? -- ❗No:exclamation:, the max bus lanes the Pi provides, is not enough to support anything faster than 30 FPS. Your better off looking at other solutions for this. -- ❗No:exclamation:, PiKVM does not capture and transmit audio at this time. The developers have indicated that this may be available for the v3 hat at some point in the future, but it is not a priority for development at this time. - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### Can this do 4K? -- For the CSI Bridge, ❗No:exclamation:. there is not enough bandwidth in the CSI bus for that much data. 1080p50 will max out the bandwidth -- For the USB capture devices: Technically yes, but they will downsample to something smaller to meet the usb2.0 bandwidth limitations, so the source may be 4k, but the stream will not. - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### Does PIKVM support sound? -- At this time sound is not supported on any platform however, once sound is implimented, it will only be available for v3. Due to a hardware bug in v0/v2 capture devices, sound may or may not work. - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### Why so much latency between the screen and target? -- capture device+compression+network+decompression+external network(if applicable) - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### Is PiKVM an OS or its own Distro? -- Yes and No, Other than the some repacking and patches, its heavly based off an existing [Arch Linux ARM](https://archlinuxarm.org/). - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### Why are you using Arch Linux? -- The developer was more familiar with Arch Linux so this was chosen as the base operating system. As a Linux distribution, it has more in common than not with other distributions. -

-As an appliance, users are not expected to interact with the host operating system often, if at all. There are some distribution-specific differences, by default networking is done using either systemd-networkd or netctl but NetworkManager can be used as a replacement if one prefers. - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - ### Can I power the Pi via POE? - Yes! But you will still need to ensure you isolate the 5v connection between the Raspberry Pi and host PC to prevent backpower issues that can cause instability or damage to either the host PC or the Pi. Power/Data cable + usb power blocker would work. Please see Variant #1 in the main getting started page for details. -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Do I need a power splitter? Why do I need one? - Yes for RPi4, Yes and No for ZeroW - Yes if you want dedicated power, otherwise No @@ -89,7 +9,6 @@ As an appliance, users are not expected to interact with the host operating syst - You can also get a power splitter board from Tindi or PiShop [(Links provided under variants #3 & #4)](https://github.com/pikvm/pikvm#hardware-for-v2) - If you have the v3 HAT - This is built in -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### I can't get the KVM KB to work on my ZeroW! Make sure that you did NOT modify your config.txt file, this is the default: @@ -105,7 +24,6 @@ dtoverlay=dwc2,dr_mode=peripheral ``` Ensure that you have the cable(Needs to support both power/data) plugged into the right port, the one closest to the mini HDMI is the correct port -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Can I use a KB on my ZeroW? - Yes but kb/mouse passthrough will not work. Its one or the other - This is especially true if you use an addon that requires the below to change. @@ -114,7 +32,6 @@ Ensure that you have the cable(Needs to support both power/data) plugged into th - Passthrough mode - Uncomment out dtoverlay=dwc2 -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Can you have the pikvm(RPi4) connected along with a monitor? - **A community member has had success with the following: https://www.amazon.com/gp/product/B08DQWLXF1** @@ -127,7 +44,6 @@ Ensure that you have the cable(Needs to support both power/data) plugged into th - Please use the search function in Discord, some users have had sucess in getting this to work but your mileage may vary - The better solution is to capture the stream in a dir and then use VLC to stream to that capture on another computer. This will result in fps loss. -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Wouldn't it be good to have different hostnames for your multitude of pikvms? Yes! And it's easy to do! Using a SSH session or the web terminal: @@ -137,33 +53,28 @@ Yes! And it's easy to do! Using a SSH session or the web terminal: - Optional: Edit `/etc/kvmd/meta.yaml` to alter the displayed hostname in the web UI - Reboot the pikvm -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### I want to do something not related to PiKVM - It's recommended that you review Arch documents related to what you want to do, while there are several folks in discord who can help, there is no obligation...they do it for the feels. So if you don't get an answer within the time frame you are looking for, it's advised you start google searching for what you want. -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Can this be used in any other distro’s like Rasbian? Run this in a Docker? - Officially, no. Unofficially yes and totally #unsupported. Please DM @srepac on discord for the directions. - Docker image is available, search the docker hub but this is #unsupported and #unofficial and not updated. -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Can you switch from USB to CSI or from CSI to USB? - Officially, no. You would be advised to make 2 seperate SD cards and swap them when needed. Unofficially yes and totally NOT supported. Please DM @srepac on discord for the script and directions. -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### My Pi keeps disconnecting from my wireless! What do I do? - You can try the following: Edit "/etc/conf.d/wireless-regdom" and look for your region and uncomment it. Example: WIRELESS_REGDOM="US" -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### I want a static IP!! - You can configure systemd-networkd for a static address for ethernet NIC. Config file is /etc/systemd/network/eth0.network - For wireless adapter, config file is /etc/netctl/wlan0- -- See pikvm/wifi_config.md at master · pikvm/pikvm · GitHub for details on how to get basic wireless config with DHCP going. Afterwards, you’ll need to edit the /etc/netctl/wlan0- file changing the IP=dhcp line with the following lines updated to reflect your network: +- See [this page](wifi.md) for details on how to get basic wireless config with DHCP going. Afterwards, you’ll need to edit the /etc/netctl/wlan0- file changing the IP=dhcp line with the following lines updated to reflect your network: ``` For /etc/systemd/network/eth0.network [Match] @@ -183,7 +94,6 @@ DNS=("192.168.X.X 1.0.0.1 1.1.1.1") ``` - You can also reserve the IP in your dhcp server (Quicker) -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Why do I keep getting a different IP? - You can do 2 of the following actions: @@ -194,7 +104,6 @@ ClientIdentifier=mac ``` - OR reserve the DHCP ip in your server/router -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### HELP!! I can't find the IP on the ZeroW/RPi4 - Open a browser and type: pikvm, still doesnt work? @@ -214,7 +123,6 @@ Windows Power shell: arp -a | findstr 'b8-27-eb' (Replace with the above, all lo - add ```IP: \4``` - Once you reboot, you will now see the IP in the upper left -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Help! I ran out of space aka room! What now? @@ -228,19 +136,11 @@ rm -rf /var/cache/pacman/pkg/* - Exit read/write mode by executing ro as root - You can also use gparted to resize partitions without "losing data", although there is a chance this may delete all of your data -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Can you connect a camera to this and still make pikvm functional? - Yes, any cheapo webcam can be used in place of the usb dongle, please use the usb image - A PiCam will NOT work -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### I have a question that is not answered here!! Now what? -- Please look at all pins on Discord and/or ask in #chat -- Please look in #news on Discord - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### HELP!! Something isn't working!! - What was the last thing or most recent thing you did? Did you undo it? @@ -248,7 +148,6 @@ rm -rf /var/cache/pacman/pkg/* - Did you hook this to anything else? If not why not? - Did you try different cables? -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### HELP! I am getting a 500/503 error when I try and access the main KVM page! - This is due to a bad line in your yaml file, here are some steps you can make to help in the future. @@ -263,19 +162,11 @@ set tabstospaces ``` - Now re-edit your override.yaml file and just use tab to get the right spacing, you might need to delete the current leading "spaces" to ensure proper formatting -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Can you use an iPad on PiKVM? - Yes, with the correct hardware you can control an iPad - Yes, activate VNC and use JUMP app(Full featured but more expensive), or bVNC(Not recommended, lack luster features but cheap). RealVNC does NOT work -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### Can I use RealVNC/Guacamole to connect to PiKVM? -- No, RealVNC is not a real vnc so will not work -- No, Guacamole supports a minimum of VNC capabilities and is fundamentally incompatible with PiKVM (for example, it does not support JPEG for video compression). - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### How do I add my own SSL cert? - If you have a certificate(:exclamation:**Making a cert falls outside the scope of PIKVM - Please reference Linux documentation**:exclamation:), replace the public key in /etc/kvmd/nginx/ssl/server.crt and private key in /etc/kvmd/nginx/ssl/server.key and restart the kvmd-nginx service. @@ -291,7 +182,6 @@ ssl_certificate_key /etc/kvmd/nginx/ssl/server.key; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; ``` -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### How do I emulate various USB devices on the target machine? By default this is what is set: @@ -324,7 +214,6 @@ Use the following USB Data Base to get the desired devices: ```https://the-sz.co - Example: - ```vendor_id: 0x06940``` -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Things to do after initial install: - Fix date: 'timedatectl list-timezones' then 'timedatectl set-timezone America/Los_Angeles' (Change to your location) @@ -343,17 +232,10 @@ nano /etc/fstab 192.168.1.XXX:/volume1/Data /mnt/Data nfs auto,rw,soft 0 0 ``` -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Can you run a desktop on pikvm? - Yes BUT, its not recommended OR supported as this OS should be used in RO and it will need RW enabled all of the time. Instructions [here](https://www.linuxfordevices.com/tutorials/linux/how-to-install-gui-on-arch-linux) -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### Can I have a RW FS all of the time? -- YES! BUT its not recommended, however this is what you can do:```nano /boot/cmdline.txt``` & ```nano /etc/fstab``` Change ro to rw and change the /boot line from ro to rw - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Troubleshooting - :exclamation:**It is expected that you are aware of basic networking while working on this project and that you have read up on the project prior to going to Discord**:exclamation: @@ -407,7 +289,6 @@ lrwxrwxrwx 1 root root 5 Apr 5 21:33 /dev/kvmd-hid-mouse -> hidg1 lrwxrwxrwx 1 root root 6 Mar 15 09:07 /dev/kvmd-video -> video0 ``` -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Common Commands for troubleshooting PiKVM @@ -415,54 +296,21 @@ lrwxrwxrwx 1 root root 6 Mar 15 09:07 /dev/kvmd-video -> video0 - `journalctl -u kvmd-vnc` - `journalctl -u kvmd-ipmi` -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### Common ARCH commands -- search - `pacman -Ss 'the thing'` -- install - `pacman -S 'the thing'` -- remove - `pacman -Rscnd 'the thing'` - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### Common wifi commands -- `iwconfig` manipulate the basic wireless parameters -- `iwlist` allow's you to initiate scanning and list frequencies, bit-rates, encryption keys… -- `iwspy` displays per node link quality -- `iwpriv` allow's you to manipulate the Wireless Extensions specific to a driver (private) - -- Some examples -``` -iw dev wlan0 scan | egrep "signal:|SSID:" | sed -e "s/\tsignal: //" -e "s/\tSSID: //" | awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}' | sort -``` -``` -iwlist wlan0 scan | egrep "Cell|ESSID|Signal|Rates" -``` -``` -iwlist wlan0 scan -``` -``` -iw wlan0 info -``` - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Bootup/power issues - PiKVM won’t boot past “rainbow” screen - Are you plugged into the right HDMI port? Needs to be the one next to the power for RPI4 - Have you reflashed your SD card? -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### PiKVM Complains about low power warnings - Are you using a `proper` power supply? Not one you hacked together? - Some USB power bricks advertise 5V @ 2.1A or higher, but can’t deliver consistent 5V. Best to use rpi foundation recommended power supplies -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### USB Video Capture Issues - Make sure this is a capture card and not an adapter (HDMI->USB) -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### HDMI-CSI Capture issues - Have you reset the Target PC? @@ -474,54 +322,12 @@ iw wlan0 info - If you are getting snow looking screen, you need to make sure you select 50hz OR select anything below 1080p, like 720p60 - If you are getting an Indian looking screen, please clear the browser cache or use private/incog window -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### Capturing video from non HDMI sources -- TBD - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### Keyboard/Mouse Issues -- TBD - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### OTG Keyboard/Mouse Connection -- TBD - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### Arduino Keyboard Mouse Connection (UART wiring) -- TBD - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### Arduino Keyboard/Mouse Connection (SPI Wiring) -- TBD - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### ATX Control Issues -- TBD - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### HDMI KVM Interface Issues -- TBD - ->[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) - -### Connection issues -- TBD - -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Misc stuff - Fully working [example](https://docs.google.com/document/d/1wgBZHxwpbJWkJBD3I8ZkZxSDxt0DdNDDYRNtVoL_vK4) of a Pi4 USB-HDMI KVM attached to AIMOS 4-port HDMI KVM switch (8 port is on AliExpress), with keyboard hotkey switching between inputs, and mass storage media emulation on a Pi Zero W - PiKVM that mitigates HDMI backpower and requires no splitter board [here](https://docs.google.com/document/d/1M9xUgNE_-P8GydKr_3qIgXUR9YzqApHNPhetRv3pcsE/edit) - VERY useful scripts that enhance the PiKVM's functionality - Please DM @srepac on discord to gain access -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) ### Useful links - https://www.tomshardware.com/how-to/kvm-over-ip-raspberry-pi - Very good article on PIKVM setup @@ -541,4 +347,3 @@ Facibom Binchil Cobeky Ctzrzyt Davitu - Community recommended USB capture [card](https://www.amazon.com/gp/product/B08FG54QPH) - Community recommended Loop device that allows [Monitor+PiKVM](https://www.amazon.com/gp/product/B08DQWLXF1) -[Back to the Top](https://github.com/pikvm/pikvm/blob/master/pages/community_faq.md#Index) diff --git a/docs/edid.md b/docs/edid.md new file mode 100644 index 0000000..c1ac88e --- /dev/null +++ b/docs/edid.md @@ -0,0 +1,92 @@ +# EDID + +EDID is information about the video modes supported by the video capture device. +In the case of PiKVM, this is an HDMI CSI bridge. Usually, you don't need to change this, since the default configuration is quite flexible, +but sometimes, for example for strange UEFIs/BIOSes, this may be necessary (the [story](https://github.com/pikvm/pikvm/issues/78)). + +The EDID is stored on the PiKVM in the file `/etc/kvmd/tc358743-edid.hex`. If you write new data there, it will be applied on the PiKVM reboot. + +You can also apply the new EDID without rebooting to make sure it works: + +* Switch filesystem to RW-mode: `rw`. +* Create file with EDID `/root/edid.hex` (examples of file contents are shown below). +* Apply EDID using the command `v4l2-ctl --device=/dev/kvmd-video --set-edid=file=/root/edid.hex --fix-edid-checksums`. +* DO NOT REBOOT the PiKVM. Just your PC. Check the UEFI/BIOS. +* If everything works, you can write the same data to `/etc/kvmd/tc358743-edid.hex`. +* Switch filesystem to RO-mode: `ro`. + +The examples below are tested on these devices, but they are also suitable for others. To edit or create EDID you can use [AW EDID Editor](https://www.analogway.com/emea/products/software-tools/aw-edid-editor). + + +## Custom EDIDs + +??? example "1280x1024 as preferred. Useful for Gigabyte GA-H77-DS3H" + ``` + 00FFFFFFFFFFFF005262888800888888 + 1C150103800000780AEE91A3544C9926 + 0F505425400001000100010001000100 + 010001010101D51B0050500019400820 + B80080001000001EEC2C80A070381A40 + 3020350040442100001E000000FC0050 + 492D4B564D20566964656F0A000000FD + 00323D0F2E0F0000000000000000014D + 02030400DE0D20A03058122030203400 + F0B400000018E01500A0400016303020 + 3400000000000018B41400A050D01120 + 3020350080D810000018AB22A0A05084 + 1A3030203600B00E1100001800000000 + 00000000000000000000000000000000 + 00000000000000000000000000000000 + 00000000000000000000000000000045 + ``` + +??? example "1920x1080 as preferred. Useful for Gigabyte GA-H77-DS3H or Intel NUC" + ``` + 00FFFFFFFFFFFF005262888800888888 + 1C150103800000780AEE91A3544C9926 + 0F505425400001000100010001000100 + 010001010101D32C80A070381A403020 + 350040442100001E7E1D00A050001940 + 3020370080001000001E000000FC0050 + 492D4B564D20566964656F0A000000FD + 00323D0F2E0F000000000000000001C4 + 02030400DE0D20A03058122030203400 + F0B400000018E01500A0400016303020 + 3400000000000018B41400A050D01120 + 3020350080D810000018AB22A0A05084 + 1A3030203600B00E1100001800000000 + 00000000000000000000000000000000 + 00000000000000000000000000000000 + 00000000000000000000000000000045 + ``` + +??? example "1280x1024 as preferred, disabled 1080p at all. This may be necessary in extremely rare cases if the BIOS is completely buggy. In the future, we will provide a way to dynamically switch EDID" + ``` + 00FFFFFFFFFFFF005262888800888888 + 1C150103800000780AEE91A3544C9926 + 0F50542FCF0001000100010001000100 + 0100010101018C2300A050001E403020 + 370080001000001E000000FC0050492D + 4B564D20566964656F0A000000FD0032 + 3D0F2E0F000000000000000000000010 + 0000000000000000000000000000016B + 02030400DE0D20A03058122030203400 + F0B400000018E01500A0400016303020 + 3400000000000018B41400A050D01120 + 3020350080D810000018AB22A0A05084 + 1A3030203600B00E1100001800000000 + 00000000000000000000000000000000 + 00000000000000000000000000000000 + 00000000000000000000000000000045 + ``` + + +## Default EDID + +If for some reason you need to go back to the default EDID (changing attached device etc), you can find it locally on the Pi at `/usr/share/kvmd/configs.default/kvmd/tc358743-edid.hex`: + +``` +# cp /usr/share/kvmd/configs.default/kvmd/tc358743-edid.hex /etc/kvmd/tc358743-edid.hex +``` + +... or in the [kvmd repo](https://github.com/pikvm/kvmd/blob/master/configs/kvmd/tc358743-edid.hex). diff --git a/pages/ezcoo.md b/docs/ezcoo.md similarity index 50% rename from pages/ezcoo.md rename to docs/ezcoo.md index c67ecec..5b5f585 100644 --- a/pages/ezcoo.md +++ b/docs/ezcoo.md @@ -1,99 +1,117 @@ # ezCoo managed multiport KVM switch -The ezCoo managed switch can be controlled by PiKVM to allow it to connect to multiple hosts. A typical scenario is a single PiKVM device which can control and switch between multiple hosts or servers using the ezCoo switch. UI elements can be added to the [GPIO dropdown](gpio.md) to allow switching between hosts from the PiKVM webpage. The instructions here were tested with the ~~[ezCoo SW41HA HDMI 4x1 switch](https://www.easycoolav.com/products/hdmi20-switch-4x1-with-usb20-kvm-4-port-usbsupport-4k60hz-444-and-hdr-audio-breakout)~~ [ezCoo EZ-SW41HA-KVMU3L 4x1 switch](https://www.easycoolav.com/products/hdmi20-switch-4x1-with-usb30-kvm-3-port-usbsupport-4k60hz-444-and-hdr-audio-breakout-36). Both older USB2.0 and newer USB3.0 variants are supported. The following was testing on a Raspberry Pi 4 but should also work on the Pi 2 and 3. This document was createdy using the contributions from multiple users on the [PiKVM Discord](https://discord.gg/bpmXfz5) and the author appreciates their efforts. +The ezCoo managed switch can be controlled by PiKVM to allow it to connect to multiple hosts. A typical scenario is a single PiKVM device which can control and switch between multiple hosts or servers using the ezCoo switch. UI elements can be added to the [GPIO dropdown](gpio.md) to allow switching between hosts from the PiKVM webpage. The instructions here were tested with the ~~[ezCoo SW41HA HDMI 4x1 switch](https://www.easycoolav.com/products/hdmi20-switch-4x1-with-usb20-kvm-4-port-usbsupport-4k60hz-444-and-hdr-audio-breakout)~~ [ezCoo EZ-SW41HA-KVMU3L 4x1 switch](https://www.easycoolav.com/products/hdmi20-switch-4x1-with-usb30-kvm-3-port-usbsupport-4k60hz-444-and-hdr-audio-breakout-36). Both older USB2.0 and newer USB3.0 variants are supported. The following was testing on a Raspberry Pi 4 but should also work on the Pi 2 and 3. This document was createdy using the contributions from multiple users in our [Discord](https://discord.gg/bpmXfz5) and the author appreciates their efforts. -:exclamation: While most images of the switch do not show the sides, there is a Micro USB port on the side of the ezCoo switch. This is the management port, which is controlled via COM port on the ezCoo KVM. When plugged into the Raspberry Pi, it appears as `/dev/ttyUSB0`. +!!! info + While most images of the switch do not show the sides, there is a Micro USB port on the side of the ezCoo switch. This is the management port, which is controlled via COM port on the ezCoo KVM. When plugged into the Raspberry Pi, it appears as `/dev/ttyUSB0`. + +!!! info + Audio was not tested, it is assumed to be non-functional. -:exclamation: Audio was not tested, it is assumed to be non-functional. ## Connections + From a high level, the ezCoo switch uses standard connections to the host machines (USB-A to USB-B and HDMI). The Raspberry Pi OTG connector (the one coming from the USB-C port on a Pi 4 via the custom splitter cable or device) should be connected to the USB 3 port on the ezCoo switch. There is an additional USB cable connected to the managed port on the switch. 1. Connect the USB-A cable from the Raspberry Pi OTG port to ezCoo switch USB 3 port on the front of the switch. **Note**: If this cable is connected to the keyboard port of the ezCoo switch the mouse will not be present. + 2. Connect the HDMI out from the ezCoo switch to the Raspberry Pi CSI-2 to HMDI input. Other users have reported HMDI encoder USB dongles as working. + 3. Connect a USB-A to Micro USB cable from the Raspberry Pi to the management port on the side of the ezCoo switch. + 4. Connect host USB and HDMI cables from the ezCoo switch to the machines to be managed per the switch instructions. + 5. At this point the KVM switch should be present as a device on the PiKVM. SSH into PiKVM and ensure a device like `/dev/ttyUSB0` is present. The following instructions assume this is the KVM switch. -:exclamation: There is a limitation in the underlying PiKVM software related to plugging video cables from a host which is already powered and connected to a monitor to a Raspberry Pi CSI2-HDMI encoder. These limitations apply equally when using the ezCoo KVM switch. If video is not present in PiKVM, try keeping all host machines off and connecting them directly to the ezCoo switch before powering the hosts on. +!!! info + There is a limitation in the underlying PiKVM software related to plugging video cables from a host which is already powered and connected to a monitor to a Raspberry Pi CSI2-HDMI encoder. These limitations apply equally when using the ezCoo KVM switch. If video is not present in PiKVM, try keeping all host machines off and connecting them directly to the ezCoo switch before powering the hosts on. + ## Adding UI elements to control the KVM switch + The UI can be updated to add buttons to switch between KVM inputs and indicators for which input is currently selected. The instructions below will make these available in the PiKVM UI after clicking the "GPIO" menu button in the KVM view. -1. SSH into PiKVM -2. Enable read-write mode on the sd card via `rw` -3. Edit the file: `nano /etc/kvmd/override.yaml` and include the following. Note the assumption that the KVM switch is present on `/dev/ttyUSB0`: -```yaml -kvmd: - gpio: - drivers: - ez: - type: ezcoo - device: /dev/ttyUSB0 - scheme: - ch0_led: - driver: ez - pin: 0 - mode: input - ch1_led: - driver: ez - pin: 1 - mode: input - ch2_led: - driver: ez - pin: 2 - mode: input - ch3_led: - driver: ez - pin: 3 - mode: input - ch0_button: - driver: ez - pin: 0 - mode: output - switch: false - ch1_button: - driver: ez - pin: 1 - mode: output - switch: false - ch2_button: - driver: ez - pin: 2 - mode: output - switch: false - ch3_button: - driver: ez - pin: 3 - mode: output - switch: false - view: - table: - - ["#Input 1", ch0_led, ch0_button] - - ["#Input 2", ch1_led, ch1_button] - - ["#Input 3", ch2_led, ch2_button] - - ["#Input 4", ch3_led, ch3_button] - ``` -3a. Make sure to notate the spacing for each line, needs to be a total of 4 spaces:
+1. Enable read-write mode on the SD card via `rw` + +2. Edit the file: `nano /etc/kvmd/override.yaml` and include the following. Note the assumption that the KVM switch is present on `/dev/ttyUSB0`: + + ```yaml + kvmd: + gpio: + drivers: + ez: + type: ezcoo + device: /dev/ttyUSB0 + scheme: + ch0_led: + driver: ez + pin: 0 + mode: input + ch1_led: + driver: ez + pin: 1 + mode: input + ch2_led: + driver: ez + pin: 2 + mode: input + ch3_led: + driver: ez + pin: 3 + mode: input + ch0_button: + driver: ez + pin: 0 + mode: output + switch: false + ch1_button: + driver: ez + pin: 1 + mode: output + switch: false + ch2_button: + driver: ez + pin: 2 + mode: output + switch: false + ch3_button: + driver: ez + pin: 3 + mode: output + switch: false + view: + table: + - ["#Input 1", ch0_led, ch0_button] + - ["#Input 2", ch1_led, ch1_button] + - ["#Input 3", ch2_led, ch2_button] + - ["#Input 4", ch3_led, ch3_button] + ``` + + Make sure to notate the spacing for each line, needs to be a total of 4 spaces: + ``` For example: parent: 0 spaces (kvmd:) child: 4 spaces (gpio:) sub-child: 8 spaces (drivers:) sub-sub-child: 16 spaces (ez:) - - -4. Return to read-only mode for the sd card via `ro` -5. Restart the kvmd service: `systemctl restart kvmd` -6. If you are still not getting KB output, issue a ```ls -la /dev/tty* | grep USB``` , if no output change cables (Alot of cables are power only) + ``` + +3. Return to read-only mode for the sd card via `ro`. + +4. Restart the kvmd service: `systemctl restart kvmd`. + +5. If you are still not getting KB output, issue a `ls -la /dev/tty* | grep USB` , if no output change cables (Alot of cables are power only) + ## Switching between hosts in the UI To switch between hosts, enter the KVM UI and click the "GPIO" menu. You should see 4 inputs, one of which will have a green circle indicating it is currently selected. Click the other inputs to change the selected host. -## Additional step for the USB3.0 version -Please add ```protocol: 2``` to the override.yaml under the ```type: ezcoo``` at the same level: +## Additional step for the USB 3.0 version + +Please add `protocol: 2` to the override.yaml under the `type: ezcoo` at the same level: ```yaml kvmd: @@ -103,4 +121,4 @@ kvmd: type: ezcoo protocol: 2 device: /dev/ttyUSB0 - ``` +``` diff --git a/docs/faq.md b/docs/faq.md new file mode 100644 index 0000000..c09cbfb --- /dev/null +++ b/docs/faq.md @@ -0,0 +1,304 @@ +# FAQ & Troubleshooting +As a first step, we recommend carefully reading our documentation on [GitHub](https://github.com/pikvm/pikvm). Most steps to successfully set up your PiKVM are already described there. If you run into any issues you can check this page which will list common errors. If that still doesn't help you you're welcome to raise an [issue ticket](https://github.com/pikvm/pikvm/issues) or [join our Discord](https://discord.gg/bpmXfz5) for further help. + +!!! tip + If you can't find an answer to your question here, try the [Community FAQ](community_faq.md). It will be merged with this page in the future. + + +## Common questions + +??? question "Can I connect multiple servers to a single PiKVM?" + Yes, but it will require additional work to set up. See [this page](multiport.md). + + +??? question "How can I get the access to PiKVM in my local network over 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](tailscale.md), which is configured on PiKVM with a [few simple commands](tailscale.md). + + +??? question "Can I use PiKVM for gaming?" + No, because: + + * For HDMI-CSI bridge, bus bandwidth is not enough to transmit more than 1080p50. + * For HDMI-USB dongle, high latency and low video quality. + * General hardware video capture differs from software streaming and introduces additional latency. + * PiKVM can't transmit audio at this time. It will be available on PiKVM v3 HAT at some point in the future (implemented in the hardware, but doesn't have software support). + + +??? question "Can PiKVM do 4K video?" + * For HDMI-CSI bridge, no. There is not enough bandwidth in the CSI bus for that much data. 1080p50 will max out the bandwidth. + * For the USB capture devices: technically yes, they will downsample to something smaller to meet the USB 2.0 bandwidth limitations, so the source may be 4k, but the stream will not. + * The 4K real-time video will not fit through the network anyway. + + +??? question "Where does the video latency come from?" + Here is the chain of transferring an image to your browser or VNC client. + + `Capture device -> Compression -> Network -> Decompression -> Rendering` + + 100-200ms is very, very fast for this. But we are working to speed things up even more. + + +??? question "Does PiKVM support sound?" + At this time sound is not supported on any platform however, once sound is implimented, it will only be available for PiKVM v3 HAT. Due to a hardware bug in HDMI-CSI bridges, sound may or may not work. + + +??? question "Can I use PiKVM with non-Raspberry boards (Orange, Nano, etc)?" + Yes, but you will have to prepare the operating system yourself. As for the PiKVM software, you will need to replace some config files (such as UDEV rules). If you are a developer or an experienced system administrator, you will not have any problems with this. In addition, we are open to patches. If you need help with this, please contact us via [Discord](https://discord.gg/bpmXfz5). + + +??? question "Is PiKVM OS its own custom distro?" + No. PiKVM OS is an [Arch Linux ARM](https://archlinuxarm.org) with our own repository for KVM-related packages. We distribute OS images (that is, our Arch Linux ARM build) to simplify installation, since PiKVM requires some tuning of the OS and special partitioning of the memory card. + + +??? question "Why is PiKVM OS based on Arch Linux ARM and not Raspbian / Raspberry Pi OS?" + There are several reasons: + + * Several years ago, when PiKVM was just starting out, Raspbian didn't have a minimalistic buiimage and the transition to systemd was in full swing, which is why the distribution was not too stable. + * Raspbian did not have all the necessary packages in the repositories to satisfy most software dependencies. + * PiKVM was born as a pet project, and the founder likes Arch the most. + + However, we plan to provide an alternative OS image based on Raspbian in the future - now it is quite stable. + + +## First steps + +??? question "What is the default password? How do I change it?" + There are two types of accounts: OS and PiKVM (web interface) accounts. The system account `root` can be used for SSH/UART access and has the password `root`. The web interface account is called `admin` and has the password `admin`. The PiKVM account cannot be used for SSH access and vice versa. + + To change passwords, use the following commands (under root): + + ```bash + su - # If you're in the webterm + rw # Switch filesystem to read-write mode + passwd root # Change OS root password + kvmd-htpasswd set admin # Change web ui admin password + ro # Back to read-only + ``` + + +??? question "How do I get root access in the web terminal?" + The web terminal works with the account `kvmd-webterm`. This is a regular user with no administrator privileges and. In addition, `sudo` and login are disabled for this user for security reasons. To get `root` access, you need to use the `su -` command (minus is important) and **enter the root password**. + + +??? question "Where is the PiKVM configuration located?" + Almost all KVMD (the main daemon controlling PiKVM) configuration files located in `/etc/kvmd`. You can also find nginx configs and SSL certificates there. KVMD configs use [YAML](https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html) syntax. The specific platform parameters can be found in the file `/etc/kvmd/main.yaml` and **you should never edit it**. Use `/etc/kvmd/override.yaml` to redefine the system parameters. + + Another files that are also not recommended for editing have read-only permissions. If you edit any of these files, you will need to manually make changes to them when you upgrade your system. You can view the current configuration and all available KVMD parameters using the command `kvmd -m`. + + +??? question "I can't edit any file on PiKVM. Why is the system in read-only mode?" + The PiKVM file system is always mounted in read-only mode. This measure prevents it from being damaged by a sudden power outage. To change the configuration you must first switch the filesystem to write mode using the command `rw` from root. After the changes, be sure to run the command `ro` to switch it back to read-only. If you get a message that the file system is busy, then the easiest way is to perform a `reboot`. + + +??? question "I want to get read-write filesystem all of the time" + !!! danger "DON'T DO THIS" + !!! danger "DON'T DO THIS" + !!! danger "DON'T DO THIS" + + **Seriously, DON'T**. Read-only mode increases the life of the memory card and protects the filesystem from power loss failures. See the question above ^ ^ ^ + + You can turn it off, but don't say you weren't warned. + + ??? danger "DON'T OPEN THIS SPOILER AND DON'T DO THIS" + Okay, fine. + + * Edit `/boot/cmdline.txt` and change option `ro` to `rw`. + * Do the same in `/etc/fstab` for the `/boot` partition. + * Comment `tmpfs` lines in `/etc/fstab` for `/var/lib` and `/var/log`. + !!! danger "But again: DON'T DO THIS" + + +??? question "How to install or remove any packages in PiKVM OS?" + PiKVM OS is based on Arch Linux ARM and uses the [pacman](https://wiki.archlinux.org/title/Pacman) package manager. + + * Switch filesystem to RW-mode: `rw`. + * Update the package cache: `pacman -Syy`. + * Find some packages (`emacs` for example): `pacman -Ss emacs`. + * Install it: `pacman -S emacs`. + * Remove it: `pacman -R emacs`. + * Switch filesystem to RO-mode: `ro`. + + +??? question "How do I update PiKVM with the latest software?" + PiKVM OS is based on Arch Linux ARM and is fully updated from the repository by a regular package manager. Connect to your PiKVM via ssh and run: + + ``` + # rw + # pacman -Syu + # reboot + ``` + + Pacman saves all installed packages in a compressed format so that you can roll back to the old version if something goes wrong. After you've updated and made sure everything works, it makes sense to clear the package cache so that it doesn't take up space on the SD card: `rw; rm -rf /var/cache/pacman/pkg; ro`. + + +??? question "I don't need ATX functions. How do I disable this in the Web UI?" + If you don't need ATX power control you can disable the relevant Web UI menu in `/etc/kvmd/override.yaml`: + + ```yaml + kvmd: + atx: + type: disabled + ``` + + ... then restart `kvmd`: + + ``` + # systemctl restart kvmd + ``` + + +??? question "How to disable the web terminal?" + ``` + # systemctl disable --now kvmd-webterm + ``` + + +??? question "How to completely disable authorization in PiKVM?" + Edit the file `/etc/kvmd/override.yaml`: + + ```yaml + kvmd: + auth: + enabled: false + ``` + + ... then restart `kvmd`: + + ``` + [root@pikvm ~]# systemctl restart kvmd + ``` + + +## Video problems + +??? question "I can see the video but I can't see the WebRTC switch" + WebRTC is an alternative mode for the default MJPEG and it's only supported on v2+ platforms with the CSI video capture device. See [this](webrtc.md) page to solve any problems with WebRTC. + + +??? question "PiKVM does not show the video from the computer at all" + * Double-check that the video capture device is connected correctly. For the [CSI bridge](/README.md#for-the-hdmi-csi-bridge), this should be exactly the camera port, for the [USB dongle](/README.md#for-the-hdmi-usb-dongle), strictly the port indicated in the picture. + * Some laptops do not output any signal until you switched the output (usually via the FN + and an F5 key on the keyboard). + * Your computer may have turned on sleep mode for the monitor. Move the mouse and turn it off. + + +??? question "The video works in the booted OS, but not in the BIOS/UEFI" + The problem appears on Intel NUC, GA-H77-DS3H, and some other devices with using CSI bridge. All you need to do is [change the EDID data](edid.md). This is the information about supported resolutions that the CSI bridge reports to your computer. + + +??? question "Glitchy or wrong BIOS/UEFI resolution" + On some motherboards, the BIOS may be displayed at a lower resolution, or with some rendering issues/glitches, specially on newer ASUS ones. Like this: + + ASUS BIOS glitch + + This can be solved by enabling the **Compatibility Support Module (CSM)** in your BIOS, usually under the **Boot** options. + + If you can't or don't want to enable the CSM, you can try connecting a DisplayPort monitor, or a [dummy plug](http://amazon.com/s?k=displayport+dummy+plug). If you remove the DP cable/adapter the bug will reappear. + + If none of this works, try connecting the DP cable first, boot into the BIOS, disable the CSM and shutdown (do not restart) your PC. Then, boot into the BIOS and enable the CSM before shutting down your PC. Then connect the HDMI and turn your PC on again. + + +??? question "CSI bridge does not work with official Raspberry Pi PoE HAT" + Details [here](https://github.com/pikvm/pikvm/issues/6). The reason is that the [official HAT](https://www.raspberrypi.org/products/poe-hat) has a built-in fan controller that conflicts with the TC358743 chip of the bridge. The solution is to disable the fan control and connect it to the power line so that it works continuously. To turn off the controller you need to add the line `disable_poe_fan=1` to `/boot/config.txt`. + + +??? question "The video freezes a few seconds after the start, restarting the Web UI or VNC does not help" + The story is [here](https://github.com/raspberrypi/firmware/issues/1562). Very-very rarely, Raspberry boards can have a hardware defect that causes some of the chip blocks to be unstable under normal power. The solution is to slightly increase the power supply, as in overclocking. Add `over_voltage=1` (or `over_voltage=2` if previous doesn't help) to `/boot/config.txt` and perform `reboot`. + + To make sure that you are facing this particular problem, first perform a diagnostic: + + * Boot the PiKVM without the specified options. + * Open Web-UI and wait for freezing. + * Click `System -> Reset Stream`. + * Click `System -> Open log` and make sure that the log contains messages like `H264: Can't wait for the VCOS semaphore`. + * Make sure that the last message from ustreamer was `H264: Configuring MMAL encoder` (not counting messages about connecting and disconnecting stream clients). + + +??? question "No image from computer with Linux + Awesome WM" + Sometimes Awesome WM on Linux can't recognize a video output change on a cable. That is, if the cable was first inserted into the monitor, and then you reconnected it to PiKVM - it may happen that you will not see the image. It seems that the problem is Awesome WM, since for example with KDE, it is not reproducable. If you turn on your workstation with PiKVM already connected, everything will work fine. + + +## USB problems (keyboard, mouse, mass storage, etc) + +??? question "My computer does not recognize USB of PiKVM v2+ at all" + * Make sure that you have used the correct USB cable with DATA lines to connect the OTG port for the Raspberry to the computer. You may have decided to use a USB hub instead of a Y-cable and **it won't work**. Use good cables and follow the instructions :) + * In rare cases, some very buggy BIOSes does not like HID and Mass Storage in one USB device. You can either [disable Mass Storage](msd.md#disable-msd), or use [Arduino HID](arduino_hid.md) to physically separate them. + + +??? question "BIOS/UEFI does not recognize USB of v2+, but computer does" + If you are using a USB hub or USB PCI controller, this may not be handled by your BIOS. Try to use another USB port. Some ports may have a built-in hub on the motherboard and a buggy BIOS that can't handle it. + + +??? question "The keyboard works in BIOS/UEFI, but the mouse does not" + The BIOS does not support absolute mouse mode, which is preferred by PiKVM. In this case, [you can enable relative or dual positioning mode](mouse.md). + + +??? question "I can't wake up suspended computer on v2+" + This feature is experimental and requires manual activation. Perform a full system update, edit `/etc/kvmd/override.yaml`, and reboot. After that, you can use remote wakeup by pressing any keyboard key or mouse button. + + ```yaml + otg: + remote_wakeup: true + ``` + + +??? question "Mass storage drive working (I can boot an image from PiKVM v2+), but keyboard/mouse does not" + In rare cases, some very buggy BIOSes does not like HID and Mass Storage in one USB device. You can either [disable Mass Storage](msd.md#disable-msd), or use [Arduino HID](arduino_hid.md) to physically separate them. + + +??? question "Buggy absolute mouse on Windows 98 as managed server" + How to fix: + + * [v2+/OTG](mouse.md#fixing-the-absolute-mouse-on-windows-98). + * [Arduino HID](arduino_hid.md#fixing-the-usb-absolute-mouse-on-windows-98). + + +??? question "Big mouse latency on another Raspberry as managed server" + Unusual case: RPi4 is used as a PiKVM to control RPi3. In this case, the mouse delay may be several seconds. To fix it, just add line `usbhid.mousepoll=0` to `/boot/config.txt` to the server (i.e. RPI3 in our case) and reboot it. + + +## Web UI problems + +??? question "Chrome Certificate Issue" + The latest versions of Chrome do not allow access to the page with a self signed certificate, so if you see the following screen when loading the PiKVM website: + + Chrome Blocking + + You can proceed by typing `thisisunsafe` and Chrome will then load the page. + + +??? question "Pressing ESC in full screen mode causes this to close" + Your browser does not support [keyboard lock](https://caniuse.com/mdn-api_keyboard_lock). Right now, only Chrome implements this. + + +??? question "I can't use this on iOS: the Web UI network indicator flashes yellow" + Safari on iOS contains an old bug that prevents a web application from connecting over a web socket if you use a self-signed certificate on the server (the default for PiKVM). There are two solutions: + + * Install a valid SSL certificate for PiKVM host to `/etc/kvmd/nginx/ssl`. + * Disable HTTPS at all in `/etc/kvmd/nginx/nginx.conf`. To do this, comment some lines [like in this file](https://github.com/pikvm/kvmd/blob/master/configs/nginx/nginx.conf#L39) and restart web server: `systemctl restart kvmd-nginx`. + + !!! danger + Don't do this for insecure networks or the Internet. Your passwords and what you type on the keyboard will be transmitted in unencrypted form. + + +??? question "The Web UI doesn't work properly in Firefox while it works fine in Chrome" + This might be related to your specific hardware combination or browser hardware acceleration. Try [disabling hardware acceleration in Firefox](https://support.mozilla.org/en-US/kb/hardware-acceleration-and-windowblinds-crash) or updating your GPU and chipset drivers. + + +??? question "Unexpected interruption while loading the image for Mass storage drive" + If problems occur when uploading even a small disk image it may be due to unstable network operation or antivirus software. It is well known that Kaspersky antivirus cuts off PiKVM connections during uploading, so you should add the PiKVM website to Kaspersky's list of exceptions or not filter web requests with the antivirus. Antivirus programs can also affect the performance of certain interface elements, for example the quality slider. For Kaspersky, the steps to add the network address of PiKVM's website to the exclusion list is: `Protection -> Private browsing -> Categories and exclusions -> Exclusions`. + + +??? question "I can't copy clipboard contents from the server (the machine controlled via PiKVM) to the client" + The clipboard only works from the client to the server not vice versa. There is currently no way to do it. + + +## Hardware problems (Wi-Fi, ATX, etc) + +??? question "No Wi-Fi on Raspberry Pi Zero W" + * If your device is unable to connect to the Wi-Fi network that you have setup check the 2.4 GHz Wi-Fi channel used by your Wi-Fi access point. + If channels 12 to 14 are used (some countries have banned these channels) try to use a channel between 1 and 11. + * Some Zeros contain a defective Wi-Fi chip. You can either return the device to the store, or try the [software workaround](https://github.com/pikvm/pikvm/issues/137). + + +??? question "LEDs/Switches does not work in ATX control" + Double check your wiring as per [the documentation](/README.md#setting-up-the-v2). Make sure you placed the relays (G3VM-61A1) in the correct orientation. The relays for switches (Power, Reset) have a different orientation than the ones for LEDs. diff --git a/img/bios_glitch.png b/docs/faq/bios_glitch.png similarity index 100% rename from img/bios_glitch.png rename to docs/faq/bios_glitch.png diff --git a/img/chrome.png b/docs/faq/chrome.png similarity index 100% rename from img/chrome.png rename to docs/faq/chrome.png diff --git a/docs/first_steps.md b/docs/first_steps.md new file mode 100644 index 0000000..b73d02e --- /dev/null +++ b/docs/first_steps.md @@ -0,0 +1,128 @@ +# First steps + +## Getting access to PiKVM + +By default, PiKVM receives a dynamic IP address via DHCP. + +??? example "Finding PiKVM in the network" + To determine the IP address of your PiKVM, use one of the following methods: + + * **Common way:** Open the web interface of your router and find the list of issued IP addresses there. It depends on the router model. + * **Linux-only:** Use the command `arp-scan --localnet`. + * **Linux, MacOS, Windows:** Download and run [Angry IP Scanner](https://angryip.org). + +For future examples, let's assume that your PiKVM has received the address **192.168.0.100**, which you have successfully detected using the instructions above. Then your device was assigned a hostname: **pikvm**. + +??? example "Access to PiKVM Web Interface" + In most networks you should be able to reach PiKVM via any browser with the URL `https://192.168.0.100/` or `https://pikvm/`. Google Chrome (Chromium), Firefox and Safari work best. Microsoft Edge and Internet Explorer are not supported. + + **The default user is `admin` and the password is also `admin`.** After logging in, you will get access to the menu with the main functions. Using the Web terminal, you can change system settings and passwords. + + The latest versions of Chrome do not allow access to the page with a self signed certificate, which is used in PiKVM by default. You can proceed by typing `thisisunsafe` and Chrome will then load the page. + +??? example "Access to PiKVM via SSH" + SSH is the most common remote access method in the Linux world. PiKVM is accessible via SSH. This method is used to manage the device: + + * **Linux, MacOS:** Open any terminal application and run: `ssh root@192.168.0.100` or `ssh root@pikvm`. + * **Windows:** Use [PuTTY](https://www.putty.org/) for this. + + **The default `root` password is `root`.** + +??? danger "✮ ✮ ✮ CHANGE THE PASSWORDS! ✮ ✮ ✮" + PiKVM comes with the following default passwords: + + * **Linux admin** (SSH, etc.): user `root`, password `root`. + * **PiKVM Web Interface**: user `admin`, password `admin`. + + **These are two separate entities with independent accounts.** To change passwords, you will need to use the terminal (read below) access via SSH or Web Terminal. If you are using the Web Terminal, use the `su -` command to get root access (enter the root user password). + + ``` + # rw + # passwd root + # kvmd-htpasswd set admin + # ro + ``` + + +## Configuring PiKVM + +Most of the PiKVM settings are done through configuration files. All configuration changes must be made from under the `root` user (that is, the administrator). + +!!! tip "Obtaining root access" + * If you have logged in via SSH, then most likely you are already `root`. + * To get `root` in the Web Terminal, use command `su -` and enter the root password. + +The PiKVM memory card is mounted in read-only mode. It protects the filesystem from damage in case of sudden power outage. To edit any files and make changes, it is necessary to remount the file system to the read-write mode. + +!!! tip "Enabling write mode" + * To enable write-mode, run command `rw` (under `root`). + * To disable it, run command `ro`. + * If you receive the message "Device is busy", perform `reboot`. + +In this handbook, you will often find instructions for editing configuration files. The simplest and most beginner-friendly text editor is `nano`, but you can also use `vim`. + +??? example "Editing files in the Web Terminal" + ``` + $ su - + # rw + # nano /etc/kvmd/override.yaml + # ro + ``` + +----- +## Structure of configuration files + +Most of the PiKVM configuration files are located in the `/etc/kvmd` directory. + +The `/etc/kvmd/main.yaml` file defines the platform config and **you should never edit it**. To redefine system parameters use the file `/etc/kvmd/override.yaml`. All other files that are also not recommended for editing have read-only permissions. + +In the `/etc/kvmd/meta.yaml` file you can specify some information regarding the host that this PiKVM manages. + +!!! tip + A complete list of all parameters can be viewed using the `kvmd -m` command. + +Files with the suffix `*.yaml` uses the [YAML syntax](https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html) +and describes a parameter tree with key-value pairs of different types. +To define the parameters within one section, an indent of 4 spaces is used. +Comments starts with the `#` symbol. + +!!! warning "Only 4 spaces should be used for indentation" + Be careful when editing YAML and follow this rule. + Invalid indentation or tabs instead of spaces will cause an error when starting the services. + +??? example "Sections under the same keys should be merged" + * **Wrong:** + + ```yaml + kvmd: + gpio: + drivers: ... + kvmd: + gpio: + scheme: ... + ``` + + * **Correct:** + + ```yaml + kvmd: + gpio: + drivers: ... + scheme: ... + ``` + + +----- +## What's next? +* Set up Internet access using [port forwarding](port_forwarding.md) or [Tailscale VPN](tailscale.md). +* Explore PiKVM features using the table of contents on the left. +* Join our [Discord](https://discord.gg/bpmXfz5) to contact the community and developers. +* Check out the [GitHub](https://github.com/pikvm) - PiKVM is a fully Open Source project! + + +----- +## FAQ and Troubleshooting +If you have any questions or run into problems, take a look at the [FAQ](faq.md). +Seriously, it's really useful! We've probably already found a solution for it :) + +For any other help and support, you can contact us via the [Discord chat](https://discord.gg/bpmXfz5). diff --git a/docs/flashing_hid.md b/docs/flashing_hid.md new file mode 100644 index 0000000..5f14c41 --- /dev/null +++ b/docs/flashing_hid.md @@ -0,0 +1,364 @@ +# Flashing the Arduino HID + +## TTL Firmware (the default option) + +This operation can be done using your RPi (except Pi Zero W). Here the common steps: + +1. Disconnect the RESET wire from the Arduino board. + +2. Connect the Arduino and RPi with a suitable USB cable. + +3. Log in to the Raspberry Pi using SSH (`ssh root@` with password `root` by default) or using keyboard and monitor. The Raspberry Pi obtains the network address over DHCP. + +4. Execute `rw`, add line `dtoverlay=spi0-1cs` to `/boot/config.txt` and perform `reboot`. + +5. Upload the firmware (USB keyboard & mouse is used by default, on this step [you can choose PS/2 keyboard](arduino_hid.md#ps2-keyboard)): + + ```shell + [root@pikvm ~]# rw + [root@pikvm ~]# systemctl stop kvmd + [root@pikvm ~]# cp -r /usr/share/kvmd/hid ~ + [root@pikvm ~]# cd ~/hid + [root@pikvm hid]# make + [root@pikvm hid]# make install + [root@pikvm hid]# reboot + ``` + +6. Connect the RESET wire, disconnect the USB cable, and reboot the RPi. + +With a Pi Zero W, you may consider building the firmware on a faster system and programming using USB or booting from another SD card and following the build steps using a clone of the [KVMD repo](https://github.com/pikvm/kvmd). + + +## SPI Firmware + +This operation can be done using your Raspberry Pi without disconnecting any wires: + +1. Connect the Arduino and RPi with a suitable USB cable. + +2. Log in to the Raspberry Pi using SSH (`ssh root@` with password `root` by default) or using keyboard and monitor. The Raspberry Pi obtains the network address over DHCP. + +3. Build and upload the firmware (USB keyboard & mouse is used by default) + + ```shell + [root@pikvm ~]# rw + [root@pikvm ~]# systemctl stop kvmd + [root@pikvm ~]# cp -r /usr/share/kvmd/hid ~ + [root@pikvm ~]# cd ~/hid + [root@pikvm hid]# make spi + [root@pikvm hid]# make install + [root@pikvm hid]# reboot + ``` + +## Common Errors + +### Circuit Issues + +#### Common - Reset Wire +Different pins are used for the reset wire but serve a similar function. For programming the TTL firmware over USB, the reset wire should be disconnected. When programming using SPI, the reset wire needs to be connected through a transistor circuit and connected to GPIO25 (pin 22 on the GPIO header) + + +#### SPI-specific Wiring +The 3v3, ground, Reset (GPIO25), MISO, MOSI, SCLK, and CS1 need to be connected appropriately. SPIO_CS0 and SPIO_CS1 can both be used but the default configuration uses SPIO_CS1 for the Arduino Microcontroller (CS0 is used for another device on the v3). These generally follow a block as follows: + +``` +Pin 0 2 4 + 2 0 0 + .........GR.C....... +Row # 12345678901234567890 + ........3MMS........ +Pin 0 1 3 + 1 7 9 +``` + +The most common error is an "off-by-one" error where pins are shifted by a row. Some cases have non-standard GPIO layouts so please be careful when following these instructions using a case that has a modified pinout. + + +### Library Compatibility + +On `make install` you may encounter the following error: + +``` +/root/.platformio/packages/tool-avrdude/avrdude: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory +``` + +Create a symlink for this library: + +``` +# ln -s /usr/lib/libtinfo.so.6 /usr/lib/libtinfo.so.5 +``` + +... and run `make install` again. + +If you have any problems or questions, contact us using [Discord](https://discord.gg/bpmXfz5). + + +## Example SPI build + Flash + +??? note "Here's an end-to-end build and flash of the SPI HID firmware using the default options as described above" + ``` + [root@pikvm ~]# rw + [root@pikvm ~]# systemctl stop kvmd + [root@pikvm ~]# cp -r /usr/share/kvmd/hid ~ + [root@pikvm ~]# cd ~/hid + [root@pikvm hid]# make spi + make _build E=spi + make[1]: Entering directory '/root/hid' + rm -f .current + platformio run --environment spi + ************************************************************************************************************************************ + If you like PlatformIO, please: + - follow us on Twitter to stay up-to-date on the latest project news > https://twitter.com/PlatformIO_Org + - star it on GitHub > https://github.com/platformio/platformio + - try PlatformIO IDE for embedded development > https://platformio.org/platformio-ide + ************************************************************************************************************************************ + + Processing spi (platform: atmelavr; board: micro; framework: arduino) + ------------------------------------------------------------------------------------------------------------------------------------ + Platform Manager: Installing atmelavr + Unpacking [####################################] 100% + Platform Manager: atmelavr @ 3.1.0 has been installed! + The platform 'atmelavr' has been successfully installed! + The rest of the packages will be installed later depending on your build environment. + Tool Manager: Installing platformio/toolchain-atmelavr @ ~1.50400.0 + Downloading [####################################] 100% + Unpacking [####################################] 100% + Tool Manager: toolchain-atmelavr @ 1.50400.190710 has been installed! + Tool Manager: Installing platformio/framework-arduino-avr @ ~5.1.0 + Downloading [####################################] 100% + Unpacking [####################################] 100% + Tool Manager: framework-arduino-avr @ 5.1.0 has been installed! + Tool Manager: Installing platformio/tool-avrdude @ * + Tool Manager: tool-avrdude @ 1.60300.200527 has been installed! + Tool Manager: Installing platformio/tool-scons @ ~4.40001.0 + Unpacking [####################################] 100% + Tool Manager: tool-scons @ 4.40001.0 has been installed! + Verbose mode can be enabled via `-v, --verbose` option + patch([], []) + patch([], []) + CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/micro.html + PLATFORM: Atmel AVR (3.1.0) > Arduino Micro + HARDWARE: ATMEGA32U4 16MHz, 2.50KB RAM, 28KB Flash + DEBUG: Current (simavr) On-board (simavr) + PACKAGES: + - framework-arduino-avr 5.1.0 + - tool-avrdude 1.60300.200527 (6.3.0) + - toolchain-atmelavr 1.50400.190710 (5.4.0) + LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf + LDF Modes: Finder ~ chain, Compatibility ~ soft + Library Manager: Installing HID-Project @ 2.6.1 + Library Manager: HID-Project @ 2.6.1 has been installed! + Library Manager: Installing git+https://github.com/Harvie/ps2dev#v0.0.3 + git version 2.30.0 + Cloning into '/root/hid/.platformio/.cache/tmp/pkg-installing-84arveu0'... + Note: switching to 'a043002178450772d72a58b0c42752a506fd4dea'. + + You are in 'detached HEAD' state. You can look around, make experimental + changes and commit them, and you can discard any commits you make in this + state without impacting any branches by switching back to a branch. + + If you want to create a new branch to retain commits you create, you may + do so (now or later) by using -c with the switch command. Example: + + git switch -c + + Or undo this operation with: + + git switch - + + Turn off this advice by setting config variable advice.detachedHead to false + + Library Manager: ps2dev @ 0.0.3+sha.a043002 has been installed! + Library Manager: Installing digitalWriteFast @ 1.0.0 + Library Manager: digitalWriteFast @ 1.0.0 has been installed! + Found 8 compatible libraries + Scanning dependencies... + Dependency Graph + |-- 2.6.1 + | |-- 1.0 + |-- 0.0.3+sha.a043002 + |-- 1.0.0 + |-- 1.0 + Building in release mode + patch -p1 -d /root/hid/.platformio/packages/framework-arduino-avr < patches/no-main.patch + patching file cores/arduino/main.cpp + ([], []) + patch -p1 -d /root/hid/.platformio/packages/framework-arduino-avr < patches/optional-usb-serial.patch + patching file cores/arduino/PluggableUSB.cpp + patching file cores/arduino/USBCore.cpp + ([], []) + patch -p1 -d /root/hid/.platformio/packages/framework-arduino-avr < patches/get-plugged-endpoint.patch + patching file cores/arduino/PluggableUSB.h + ([], []) + patch -p1 -d /root/hid/.pio/libdeps/spi/HID-Project < patches/shut-up.patch + patching file src/KeyboardLayouts/ImprovedKeylayouts.h + ([], []) + patch -p1 -d /root/hid/.pio/libdeps/spi/HID-Project < patches/no-hid-singletones.patch + patching file src/SingleReport/BootKeyboard.cpp + patching file src/SingleReport/BootKeyboard.h + patching file src/SingleReport/BootMouse.cpp + patching file src/SingleReport/BootMouse.h + patching file src/SingleReport/SingleAbsoluteMouse.cpp + patching file src/SingleReport/SingleAbsoluteMouse.h + ([], []) + patch -p1 -d /root/hid/.pio/libdeps/spi/HID-Project < patches/absmouse-win-fix.patch + patching file src/SingleReport/SingleAbsoluteMouse.cpp + ([], []) + Compiling .pio/build/spi/src/main.cpp.o + Compiling .pio/build/spi/src/spi.cpp.o + Compiling .pio/build/spi/lib2d3/HID/HID.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/MultiReport/AbsoluteMouse.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/MultiReport/Consumer.cpp.o + Archiving .pio/build/spi/lib2d3/libHID.a + Indexing .pio/build/spi/lib2d3/libHID.a + Compiling .pio/build/spi/libd81/HID-Project/MultiReport/Gamepad.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/MultiReport/ImprovedKeyboard.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/MultiReport/ImprovedMouse.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/MultiReport/NKROKeyboard.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/MultiReport/SurfaceDial.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/MultiReport/System.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/SingleReport/BootKeyboard.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/SingleReport/BootMouse.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/SingleReport/RawHID.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/SingleReport/SingleAbsoluteMouse.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/SingleReport/SingleConsumer.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/SingleReport/SingleGamepad.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/SingleReport/SingleNKROKeyboard.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/SingleReport/SingleSystem.cpp.o + Compiling .pio/build/spi/libd81/HID-Project/port/samd.cpp.o + Compiling .pio/build/spi/libeaf/ps2dev/ps2dev.cpp.o + Archiving .pio/build/spi/lib822/libdigitalWriteFast.a + Indexing .pio/build/spi/lib822/libdigitalWriteFast.a + Compiling .pio/build/spi/lib519/SPI/SPI.cpp.o + .pio/libdeps/spi/ps2dev/src/ps2dev.cpp: In member function 'int PS2dev::keyboard_reply(unsigned char, unsigned char*)': + .pio/libdeps/spi/ps2dev/src/ps2dev.cpp:243:17: warning: variable 'enabled' set but not used [-Wunused-but-set-variable] + unsigned char enabled; + ^ + Archiving .pio/build/spi/libd81/libHID-Project.a + Archiving .pio/build/spi/libFrameworkArduinoVariant.a + Indexing .pio/build/spi/libFrameworkArduinoVariant.a + Indexing .pio/build/spi/libd81/libHID-Project.a + Compiling .pio/build/spi/FrameworkArduino/CDC.cpp.o + Archiving .pio/build/spi/lib519/libSPI.a + Archiving .pio/build/spi/libeaf/libps2dev.a + Indexing .pio/build/spi/lib519/libSPI.a + Indexing .pio/build/spi/libeaf/libps2dev.a + Compiling .pio/build/spi/FrameworkArduino/HardwareSerial.cpp.o + Compiling .pio/build/spi/FrameworkArduino/HardwareSerial0.cpp.o + Compiling .pio/build/spi/FrameworkArduino/HardwareSerial1.cpp.o + Compiling .pio/build/spi/FrameworkArduino/HardwareSerial2.cpp.o + Compiling .pio/build/spi/FrameworkArduino/HardwareSerial3.cpp.o + Compiling .pio/build/spi/FrameworkArduino/IPAddress.cpp.o + Compiling .pio/build/spi/FrameworkArduino/PluggableUSB.cpp.o + Compiling .pio/build/spi/FrameworkArduino/Print.cpp.o + Compiling .pio/build/spi/FrameworkArduino/Stream.cpp.o + Compiling .pio/build/spi/FrameworkArduino/Tone.cpp.o + Compiling .pio/build/spi/FrameworkArduino/USBCore.cpp.o + Compiling .pio/build/spi/FrameworkArduino/WInterrupts.c.o + Compiling .pio/build/spi/FrameworkArduino/WMath.cpp.o + .platformio/packages/framework-arduino-avr/cores/arduino/USBCore.cpp: In function 'bool ClassInterfaceRequest(USBSetup&)': + .platformio/packages/framework-arduino-avr/cores/arduino/USBCore.cpp:378:5: warning: unused variable 'i' [-Wunused-variable] + u8 i = setup.wIndex; + ^ + Compiling .pio/build/spi/FrameworkArduino/WString.cpp.o + Compiling .pio/build/spi/FrameworkArduino/abi.cpp.o + Compiling .pio/build/spi/FrameworkArduino/hooks.c.o + Compiling .pio/build/spi/FrameworkArduino/main.cpp.o + Compiling .pio/build/spi/FrameworkArduino/new.cpp.o + Compiling .pio/build/spi/FrameworkArduino/wiring.c.o + Compiling .pio/build/spi/FrameworkArduino/wiring_analog.c.o + Compiling .pio/build/spi/FrameworkArduino/wiring_digital.c.o + Compiling .pio/build/spi/FrameworkArduino/wiring_pulse.S.o + Compiling .pio/build/spi/FrameworkArduino/wiring_pulse.c.o + Compiling .pio/build/spi/FrameworkArduino/wiring_shift.c.o + Archiving .pio/build/spi/libFrameworkArduino.a + Indexing .pio/build/spi/libFrameworkArduino.a + Linking .pio/build/spi/firmware.elf + Building .pio/build/spi/firmware.hex + Checking size .pio/build/spi/firmware.elf + Advanced Memory Usage is available via "PlatformIO Home > Project Inspect" + RAM: [= ] 9.9% (used 253 bytes from 2560 bytes) + Flash: [=== ] 34.7% (used 9952 bytes from 28672 bytes) + =================================================== [SUCCESS] Took 56.86 seconds =================================================== + + Environment Status Duration + ------------- -------- ------------ + spi SUCCESS 00:00:56.861 + =================================================== 1 succeeded in 00:00:56.861 =================================================== + + ************************************************************************************************************************************ + There is a new version 5.1.0 of PlatformIO available. + Please upgrade it via `platformio upgrade` or `pip install -U platformio` command. + Changes: https://docs.platformio.org/en/latest/history.html + ************************************************************************************************************************************ + + echo -n spi > .current + make[1]: Leaving directory '/root/hid' + [root@pikvm hid]# make install + platformio run --environment spi --target upload + Processing spi (platform: atmelavr; board: micro; framework: arduino) + ------------------------------------------------------------------------------------------------------------------------------------ + Verbose mode can be enabled via `-v, --verbose` option + CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/micro.html + PLATFORM: Atmel AVR (3.1.0) > Arduino Micro + HARDWARE: ATMEGA32U4 16MHz, 2.50KB RAM, 28KB Flash + DEBUG: Current (simavr) On-board (simavr) + PACKAGES: + - framework-arduino-avr 5.1.0 + - tool-avrdude 1.60300.200527 (6.3.0) + - toolchain-atmelavr 1.50400.190710 (5.4.0) + LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf + LDF Modes: Finder ~ chain, Compatibility ~ soft + Found 8 compatible libraries + Scanning dependencies... + Dependency Graph + |-- 2.6.1 + | |-- 1.0 + |-- 0.0.3+sha.a043002 + |-- 1.0.0 + |-- 1.0 + Building in release mode + Checking size .pio/build/spi/firmware.elf + Advanced Memory Usage is available via "PlatformIO Home > Project Inspect" + RAM: [= ] 9.9% (used 253 bytes from 2560 bytes) + Flash: [=== ] 34.7% (used 9952 bytes from 28672 bytes) + Configuring upload protocol... + AVAILABLE: custom + CURRENT: upload_protocol = custom + Uploading .pio/build/spi/firmware.hex + + avrdude: AVR device initialized and ready to accept instructions + + Reading | ################################################## | 100% 0.00s + + avrdude: Device signature = 0x1e9587 (probably m32u4) + avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed + To disable this feature, specify the -D option. + avrdude: erasing chip + avrdude: reading input file ".pio/build/spi/firmware.hex" + avrdude: writing flash (9952 bytes): + + Writing | ################################################## | 100% 2.78s + + avrdude: 9952 bytes of flash written + avrdude: verifying flash memory against .pio/build/spi/firmware.hex: + avrdude: load data flash data from input file .pio/build/spi/firmware.hex: + avrdude: input file .pio/build/spi/firmware.hex contains 9952 bytes + avrdude: reading on-chip flash data: + + Reading | ################################################## | 100% 2.33s + + avrdude: verifying ... + avrdude: 9952 bytes of flash verified + + avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF) + + avrdude done. Thank you. + + =================================================== [SUCCESS] Took 7.54 seconds =================================================== + + Environment Status Duration + ------------- -------- ------------ + spi SUCCESS 00:00:07.536 + =================================================== 1 succeeded in 00:00:07.536 =================================================== + [root@pikvm hid]# reboot + ``` diff --git a/docs/flashing_os.md b/docs/flashing_os.md new file mode 100644 index 0000000..0649c17 --- /dev/null +++ b/docs/flashing_os.md @@ -0,0 +1,63 @@ +# Flashing the OS image + +!!! warning "Micro-SD Card Requirements" + * Minimum **16 Gb** + * **Class 10** is strongly recommended + +## Download the image + +Download the appropriate SD card image. Select it based on the board, platform, and the video capture device you are using: + +* [**PiKVM v3 HAT (Raspberry Pi 4)**](https://pikvm.org/images/v3-hdmi-rpi4.img.bz2) - [*sha1*](https://pikvm.org/images/v3-hdmi-rpi4.img.bz2.sha1) +* **DIY - Raspberry Pi 4, v2 platform:** + * [For HDMI-CSI bridge](https://pikvm.org/images/v2-hdmi-rpi4.img.bz2) - [*sha1*](https://pikvm.org/images/v2-hdmi-rpi4.img.bz2.sha1) + * [For HDMI-USB dongle](https://pikvm.org/images/v2-hdmiusb-rpi4.img.bz2) - [*sha1*](https://pikvm.org/images/v2-hdmiusb-rpi4.img.bz2.sha1) +* **DIY - Raspberry Pi ZeroW, v2 platform:** + * [For HDMI-CSI bridge](https://pikvm.org/images/v2-hdmi-zerow.img.bz2) - [*sha1*](https://pikvm.org/images/v2-hdmi-zerow.img.bz2.sha1) + +Pre-compiled images are only available for the Raspberry Pi 4 and ZeroW. For all other cases, you will need to build the operating system yourself. But don't worry, it's [very simple](building_os.md). + + +## Flash the image + +!!! tip + Choose the most suitable method for you + + +### Using Linux CLI + +Decompress and flash the image. Be careful when choosing your device path: +``` +# bzip2 -d v2-hdmi-rpi4.img.bz2 +# dd if=v2-hdmi-rpi4.img of=/dev/mmcblkX +``` + + +### Using balenaEtcher (Linux, MacOS and Windows) + +1. Download and install [balenaEtcher](https://www.balena.io/etcher). + +2. Decompress the image file using your favorite archive software. If you don't have one that supports `.bz2` files (on Windows for example) - [7-Zip](https://www.7-zip.org) is a great and free tool. *Do not try to flash a compressed image: either it will not work, or it will take a very long time.* + +3. Run balenaEtcher: + + drawing + +4. Press **Flash from file** and select a **decompressed** image (a file with `.img` suffix): + + drawing + +5. Insert the memory card into the card reader. Press **Select target** and choose your memory card: + + drawing + +6. Press **Flash!** button. + + drawing + +7. Wait for the process to finish. Get yourself a coffee or do some stretching :) If an error occurs during flashing, repeat the process: + + drawing + +!!! tip + If balenaEtcher does not work for you and you continue to get failed bootup's, download the [Raspberry Pi Imager](https://www.raspberrypi.com/software) and use that instead. The general algorithm of actions is exactly the same: use a decompressed image, run Imager, select a device and flash the image there. diff --git a/img/balena-1.png b/docs/flashing_os/balena-1.png similarity index 100% rename from img/balena-1.png rename to docs/flashing_os/balena-1.png diff --git a/img/balena-2.png b/docs/flashing_os/balena-2.png similarity index 100% rename from img/balena-2.png rename to docs/flashing_os/balena-2.png diff --git a/img/balena-3.png b/docs/flashing_os/balena-3.png similarity index 100% rename from img/balena-3.png rename to docs/flashing_os/balena-3.png diff --git a/img/balena-4.png b/docs/flashing_os/balena-4.png similarity index 100% rename from img/balena-4.png rename to docs/flashing_os/balena-4.png diff --git a/img/balena-5.png b/docs/flashing_os/balena-5.png similarity index 100% rename from img/balena-5.png rename to docs/flashing_os/balena-5.png diff --git a/docs/gpio.md b/docs/gpio.md new file mode 100644 index 0000000..b34d35f --- /dev/null +++ b/docs/gpio.md @@ -0,0 +1,445 @@ +# GPIO + +[GPIO (general-purpose input/output)](https://en.wikipedia.org/wiki/General-purpose_input/output) is a series of digital interfaces that can be used to connect relays, LEDs, sensors, and other components. + +!!! warning + * Before using GPIO on **PiKVM v3 HAT**, carefully study [the purpose of its ports](v3.md#io-ports-and-jumpers). + * Using GPIO on a PiKVM was designed as a feature for advanced users, so please familiarize yourself with the topic to make sure you understand how to use use it before setting it up. + * **Careless usage of GPIO can damage your Raspberry Pi or components.** + +When talking about PiKVM and GPIO it refers not solely to the [physical interface of the Raspberry Pi](https://www.raspberrypi.org/documentation/usage/gpio), but also to various plugins (for example, for [USB relays](http://vusb.wikidot.com/project:driver-less-usb-relays-hid-interface)) that can also be used transparently by emulating an abstract GPIO API. + + +----- +## Basics + +Setting up GPIO is considerably complex. The interface is divided into several layers for flexibility. Any configuration is performed using a file `/etc/kvmd/override.yaml` which uses the [YAML syntax](https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html). We will look at each part of the configuration individually with an example for each. Sections should be combined under shared keys. + +* **Wrong:** + + ```yaml + kvmd: + gpio: + drivers: ... + kvmd: + gpio: + scheme: ... + ``` + +* **Correct:** + + ```yaml + kvmd: + gpio: + drivers: ... + scheme: ... + ``` + + +----- +## Drivers + +The first part of the configuration refers to the hardware layer, which defines which IO channels are used (standard GPIO pins of the Raspberry Pi, an USB relay, and so on). If you just want to use GPIO with the default settings you can skip to the next section [Scheme](#Scheme). + +Each hardware input/output requires a individual driver configuration entry. Each driver has a type (which refers to the plugin that handles the communication between PiKVM and the hardware) and a unique name. This allows you to either can add multiple drivers of the same type with different settings or connect multiple USB HID relays. + +!!! note + Each driver requires a unique name. Names surrounded by double underscore are system reserved and should not be used. + +The only exception to this is the default GPIO driver with the name `__gpio__`, representing the physical GPIO interface of the Raspberry Pi. The configuration section for `__gpio__` is only required in your `/etc/kvmd/override.yaml` if you want to change the default settings. It can be omitted if you are fine with the defaults. + +```yaml +kvmd: + gpio: + drivers: + # This example shows how the default __gpio__ driver settings can be changed. It can be omitted if you are fine with the defaults. + __gpio__: # Names surrounded by double underscore are system reserved + type: gpio # Refers to the plugin name handling the communication + + # You can define another gpio driver for some reason + my_gpio: + type: gpio + + # Example for a USB HID relay connected to PiKVM + relay: + type: hidrelay + device: /dev/hidraw0 # The path to the linux device +``` + +----- +## Scheme + +The second part defines how the various driver channels are configured. Each channel has a unique name, a mode (`input` or `output`), a pin number, and a reference to the driver configured in the previous part. + +!!! note + Names that starts and ends with two underscores (like `__magic__`) are reserved. + +Two interaction modes are available for outputs: `pulse` and `switch`. In pulse mode, the output quickly switches its state to logical 1 and back (just like pressing a button). In switch mode, it saves (toggles) the state that the user set. When PiKVM is started/rebooted (any time the KVMD daemon is started or stopped) all output channels are reset to 0. This can be changed using the `initial` parameter. For example, `initial=true` for logic 1 on startup. + +If you don't specify a driver for the channel in the scheme the default driver, `__gpio__` will be used. + +| Parameter | Type | Allowed values | Default | Description | +|-----------------------------------|-----------|--------------------------|---------|-----------------------| +| `led1`, `button1`, `relay1`, etc. | `string` | `a-Z`, numbers, `_`, `-` | | A section for the named channel | +| `pin` | `integer` | `X >= 0` | | Refers to a GPIO pin or driver's pin/port | +| `mode` | `enum` | `input` or `output` | | Defines if a channel is used for input or output, may be limited by driver plugin | +| **Input only** | | | | | +| `debounce` | `float` | `x >= 0` | `0.1` | [Debounce](https://www.arduino.cc/en/Tutorial/Debounce) time in seconds. `0` for disable debounce | +| **Output only** | | | | | +| `switch` | `bool` | `true` or `false` | `true` | Enables or disables the switch mode on the channel (enabled by default). | +| `initial` | `nullable bool` | `true`, `false` or `null` | `false` | Defines the initial state of the switch upon boot, `null` for don't make changes (the last one does not supported by generic GPIO) | +| `inverted` | `bool` | `true` or `false` | `false` | Inverts the active logical level | +| `pulse` | | | | A section header to define switch pulse configuration | +| `delay` | `float` | `X >= 0` | `0.1` | Defines the pulse time in seconds, `0` for disable pulsing | +| `min_delay` | `float` | `X >= 0.1` | `0.1` | +| `max_delay` | `float` | `X >= 0.1` | `0.1` | + +```yaml +kvmd: + gpio: + scheme: + # A certain device sends signals to the RPi and we want the PiKVM to display this as an led + led1: + pin: 19 # GPIO pin number on the RPi + mode: input + led2: + pin: 16 + mode: input + + # Two outputs of RPi's GPIO + button1: + pin: 26 # GPIO pin number on the RPi + mode: output + switch: false # Disable switching, only pulse available + button2: + pin: 20 + mode: output + switch: false + + relay1: # Channel 1 of the relay /dev/hidraw0 + pin: 0 # Numerating starts from 0 + mode: output # Relays can't be inputs + initial: null # Don't reset the state to 0 when initializing and terminating KVMD + relay2: # Channel 2 + pin: 1 + mode: output + initial: null + pulse: + delay: 2 # Default pulse value + max_delay: 2 # The pulse interval can be between min_delay=0.1 (by default) and max_delay=2 +``` + + +----- +## View + +This is the last part of the required configuration. It defines how the previous driver and channel configuration is rendered on the Web interface. Here's an example for the example configuration above: + +```yaml +kvmd: + gpio: + view: + header: + title: Switches # The menu title + table: # The menu items are rendered in the form of a table of text labels and controls + - ["#Generic GPIO leds"] # Text starting with the sharp symbol will be a label + - [] # creates a horizontal separator and starts a new table + - ["#Test 1:", led1, button1] # Text label, one input, one button with text "Click" + - ["#Test 2:", led2, button2] + - [] + - ["#HID Relays /dev/hidraw0"] + - [] + - ["#Relay #1:", "relay1|Boop 0.1"] # Text label and button with alternative text + - ["#Relay #2:", "relay2|Boop 2.0"] +``` + +This will be rendered as: + +drawing + +Some rules and customization options: + +* Text starting with the `#` symbol will be a label. +* To place a channel in a cell, use the name you defined in the scheme. +* Inputs are displayed as round LEDs. +* Outputs are displayed as a switch AND a button. +* If the switch mode is disabled, only a button will be displayed. If pulse is disabled, only a switch will be shown. +* To change the LED's color specify it after the channel name like `"led1|red"`. Available: `green`, `yellow` and `red`. +* To change title of the button, write some its name like `"relay1|My cool relay"`. +* Buttons and switches can request confirmation on acting. To do this write its name like `"relay1|confirm|My cool relay"`. The third argument with a title is required in this case. + + +----- +## Hardware modules and pseudo-drivers + +### Raspberry's GPIO +??? note "Click to view" + The driver `gpio` provides access to regular GPIO pins with input and output modes. It uses `/dev/gpiochip0` and the libgpiod library to communicate with the hardware. Does not support saving state between KVMD restarts (meaning `initial=null`). + + You can use the [interactive scheme](https://pinout.xyz/) when selecting the pins to use. Please note that when selecting a pin for a channel, you need to use a logical number instead of a physical number. That is, if you want to use a physical pin with the number 40, the channel must have the number 21 corresponding to the logical GPIO21. + + Channels should not use duplicate pins. You can also not use already used pins. To see which pins are currently used, run the command `gpioinfo`. + + +### USB HID Relay +??? note "Click to view" + The driver `hidrelay` provides access to cheap managed [USB HID relays](http://vusb.wikidot.com/project:driver-less-usb-relays-hid-interface) that can be found on AliExpress. This driver does not support input mode, only output. To use it, you need to specify the path to the device file (like `/dev/hidraw0`) using the `device` parameter. + + Additionally, we recommend to configure access rights and static device name using [UDEV rules](https://wiki.archlinux.org/index.php/udev). For example, create `/etc/udev/rules.d/99-kvmd-extra.rules`: + + ``` + KERNEL=="hidraw[0-9]*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", GROUP="kvmd" + ``` + + Channels should not use duplicate physical numbers. The driver supports saving state between KVMD restarts (meaning `initial=null`). + + +### ezCoo KVM switch +??? note "Click to view" + You can use GPIO to control KVM port switching. This usually requires the use of relays and buttons, but for the [ezCoo switch](ezcoo.md) there is a special `ezcoo` driver that simulates GPIO by sending commands to the switch via serial port. So you can make a menu in PiKVM to control the multiport switch. + + +### IPMI +??? note "Click to view" + + The driver `ipmi` provides the ability to send IPMI commands (on, off, reset) and show the power status of the remote host. In fact, this is not a hardware driver, but something like a pseudo-GPIO. Each "pin" is actually responsible for a specific IPMI operation of `ipmitool`: + + | Pin | Type | Command | + |-----|----------|---------| + | `0` | `input` | `ipmitool ... power status`, can be used to draw the LED in the menu | + | `1` | `output` | `ipmitool ... power on`, sends the `on` command (and only this), so like all other outputs it should be a button | + | `2` | `output` | `ipmitool ... power off` | + | `3` | `output` | `ipmitool ... power cycle` | + | `4` | `output` | `ipmitool ... power reset` | + | `5` | `output` | `ipmitool ... power diag` | + | `6` | `output` | `ipmitool ... power soft` | + + You are supposed to define one driver per host: + + ```yaml + kvmd: + gpio: + drivers: + my_server: + type: ipmi + host: myserver.local + user: admin + passwd: admin + scheme: + my_server_status: + driver: my_server + pin: 0 + mode: input + my_server_on: + driver: my_server + pin: 1 + mode: output + switch: false + my_server_off: + driver: my_server + pin: 2 + mode: output + switch: false + view: + table: + - [my_server_status, "my_server_on|On", "my_server_off|Off"] + ``` + + +### Wake-on-LAN +??? note "Click to view" + The driver `wol` provides a simple generator of Wake-on-LAN packages. One driver and one output are generated for one host if a [simplified configuration method](wol.md) is used. However, you can define multiple drivers if you want to manage different hosts. One driver controls one host, and can only be used as an output. Pin numbers are ignored. + + ```yaml + kvmd: + gpio: + drivers: + wol_server1: + type: wol + mac: ff:ff:ff:ff:ff:f1 + wol_server2: + type: wol + mac: ff:ff:ff:ff:ff:f2 + ip: 192.168.0.100 + port: 9 + scheme: + wol_server1: + driver: wol_server1 + pin: 0 + mode: output + switch: false + wol_server2: + driver: wol_server2 + pin: 0 + mode: output + switch: false + view: + table: + - ["#Server 1", "wol_server1|Send Wake-on-LAN"] + - ["#Server 2", "wol_server2|Send Wake-on-LAN"] + ``` + + +### PWM +??? note "Click to view" + The `pwm` driver allows you to use [some GPIO pins](https://pinout.xyz/pinout/pwm) on the Raspberry Pi for PWM. + + Here the small example with servo control: + + 1. Add to `/boot/config.txt`: + + ``` + dtoverlay=pwm + ``` + + 2. Create `/etc/udev/rules.d/99-kvmd-pwm.rules`: + + ``` + SUBSYSTEM=="pwm*", ACTION=="add", RUN+="/bin/chgrp -R kvmd /sys%p", RUN+="/bin/chmod -R g=u /sys%p" + SUBSYSTEM=="pwm*", ACTION=="change", ENV{TRIGGER}!="none", RUN+="/bin/chgrp -R kvmd /sys%p", RUN+="/bin/chmod -R g=u /sys%p" + ``` + + 3. Connect Servo motor like SG90 PWM connection to RPi GPIO18, +5V and GND to a 5V and GND pin on header: + + 4. Add to /etc/kvmd/override.yaml + + ```yaml + kvmd: + gpio: + drivers: + servo1: + type: pwm + chip: 0 # PWM Chip Number + period: 20000000 # Servo Motor SG90 Period in nano-seconds + duty_cycle_push: 1500000 # Servo Motor SG90 duty_cycle for pushing button + duty_cycle_release: 1000000 # Servo Motor SG90 duty_cycle for releasing button + scheme: + short_press: + driver: servo1 + pin: 0 # Pin number is the PWM channel number on the PWM Chip + mode: output + switch: false + pulse: + delay: 0.5 + max_delay: 2 + long_press: + driver: servo1 + pin: 0 + mode: output + switch: false + pulse: + delay: 2 + max_delay: 2 + extra_long_press: + driver: servo1 + pin: 0 + mode: output + switch: false + pulse: + delay: 10 + max_delay: 20 + view: + header: + title: Controls + table: + - ["#Servo - Short Press", "short_press|Press"] + - ["#Servo - Long Press", "long_press|Press"] + - ["#Servo - Extra Long Press", "extra_long_press|Press"] + ``` + + +### Servo +??? note "Click to view" + The `servo` module is built on top of the `pwm` module and allows user to define angles instead of `duty_cyles` to control a PWM enabled servo motor like SG90. When the button is pressed the servo motor moves to an angle defined by `angle_push` and when button is released it moves back to `angle_release`. In the example configuration for a [cheap 5V SG90 Servo](https://www.ebay.co.uk/itm/184555802744), the motor moves to an angle of 45 degrees when button is pressed and moves back to 20 degress when released. + + To use Servo motors in PiKVM you need to follow steps 1-3 for [PWM Module](#pwm) and then use the following configuration. + + Add to `/etc/kvmd/override.yaml`: + + ```yaml + kvmd: + gpio: + drivers: + servo1: + type: servo + chip: 0 # PWM Chip Number + period: 20000000 # Servo Motor SG90 Period in nano-seconds + duty_cycle_min: 350000 # Servo Motor SG90 duty_cycle for -90 degrees + duty_cycle_max: 2350000 # Servo Motor SG90 duty_cycle for +90 degrees + angle_max: 90 # Servo Motor SG90 angle at duty_cycle_max + angle_min: -90 # Servo Motor SG90 angle at duty_cycle_min + angle_push: 45 # Servo Motor SG90 angle to push button + angle_release: 20 # Servo Motor SG90 angle to release button + scheme: + short_press: + driver: servo1 + pin: 0 # Pin number is the PWM channel number on the PWM Chip + mode: output + switch: false + pulse: + delay: 0.5 + max_delay: 2 + long_press: + driver: servo1 + pin: 0 + mode: output + switch: false + pulse: + delay: 2 + max_delay: 2 + extra_long_press: + driver: servo1 + pin: 0 + mode: output + switch: false + pulse: + delay: 10 + max_delay: 20 + view: + header: + title: Controls + table: + - ["#Servo - Short Press", "short_press|Press"] + - ["#Servo - Long Press", "long_press|Press"] + - ["#Servo - Extra Long Press", "extra_long_press|Press"] + ``` + + +### Philips Hue +??? note "Click to view" + The `hue` module can control [smartplugs](https://shop.ledvance.com/en/products/smart-plug-eu) and lamps over Philips Hue Bridge API. In general the plugin can switch any device on/off which is connected to the bridge. To use it you will need API token aka username: + + 1. Open `http://bridge/debug/clip.html`. + 2. In the URL: Field type `/api/`. + 3. In the Message Body: Field type: `{"devicetype": "pikvm"}`. + 4. Hit the Get Button. + 5. As the Response you become the Username: `{"success": {"username": "apiusername"}`. + + Example: + + ```yaml + kvmd: + gpio: + drivers: + hue: + type: hue + url: http://bridge + token: YG-xxxxxxxxxxxx + scheme: + plug_button: + driver: hue + pin: 32 + mode: output + initial: null + switch: true + pulse: + delay: 0 + plug_led: + driver: hue + pin: 32 + mode: input + view: + table: + - ["plug_led", "plug_button"] + + ``` diff --git a/img/gpio_menu.png b/docs/gpio/gpio_menu.png similarity index 100% rename from img/gpio_menu.png rename to docs/gpio/gpio_menu.png diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..d1088fc --- /dev/null +++ b/docs/index.md @@ -0,0 +1,21 @@ +# PiKVM Handbook + +**Welcome to the [PiKVM](https://pikvm.org) Handbook** - a complete documentation of Open and cheap DIY IP-KVM based on Raspberry Pi. Here you will find comprehensive information about all aspects of the operation of PiKVM, get answers to your most difficult questions and be able to solve the problems that have arisen. + + +## Where to start? + +* **Learn about the [basics of working with PiKVM](first_steps.md).** +* If you are a happy **PiKVM v3 HAT** user then we have a [special guide for you](v3.md). +* **Explore the features of PiKVM** using the site's table of contents. +* **If you encounter a problem**, take a look at the **[FAQ](faq.md)**, but if nothing helped, contact our **[Discord chat](https://discord.gg/bpmXfz5)** - experienced users and the PiKVM team will definitely help you. + + +## Links + +* Official website: **https://pikvm.org** +* Our GitHub: **https://github.com/pikvm** +* Discord server: [![Discord](https://img.shields.io/discord/580094191938437144?logo=discord)](https://discord.gg/bpmXfz5) +* Subreddit: [![Reddit](https://img.shields.io/badge/reddit-join-orange?logo=reddit)](https://www.reddit.com/r/pikvm) + + diff --git a/pages/ipmi.md b/docs/ipmi.md similarity index 67% rename from pages/ipmi.md rename to docs/ipmi.md index 0cce4c2..51eed07 100644 --- a/pages/ipmi.md +++ b/docs/ipmi.md @@ -1,34 +1,54 @@ -# IPMI BMC +# IPMI & Redfish + +!!! info + This page is about the server-side emulation (if you want to manage PiKVM using ipmitool or so). If you want to use the PiKVM Web UI to manage the server using IPMI (that is, as an IPMI client), see [GPIO functions with IPMI plugin](gpio.md). + + +## IPMI BMC + IPMI is an [old protocol](https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface) for remote server management. It can be useful for managing a large number of machines with PiKVM. Its advantage is that it is supported by many enterprise systems. -:exclamation: Although PiKVM 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). Use Redfish or [KVMD API](api.md) instead of it. +!!! warning + Although PiKVM 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). Use Redfish or [KVMD API](api.md) instead of it. + +To enable IPMI BMC follow these steps: -To enable ipmi IPMI BMC follow these steps: 1. Switch the filesystem to the RW-mode: + ``` # rw ``` + 2. Setup IPMI account in file `/etc/kvmd/ipmipasswd`. + 3. Enable `kvmd-ipmi` daemon: + ``` # systemctl enable --now kvmd-ipmi ``` + 4. Switch the filesystem back to the RO: + ``` # ro ``` + 5. Here some examples (on the remote PC): + ``` $ ipmitool -I lanplus -U admin -P admin -H pikvm power status $ ipmitool -I lanplus -U admin -P admin -H pikvm power on ``` - -# IPMI SoL + + +## IPMI SoL IPMI supports the ability to get console access to the server using Serial-over-LAN. PiKVM can act as a proxy for your server's COM port. +!!! warning + Although PiKVM 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). Use Redfish or [KVMD API](api.md) instead of it. + To use this feature, you will need a USB-COM adapter that you need to connect to the PiKVM. The COM port of the adapter need to be connected to the server. As with IPMI BMC, you need to configure `kvmd-vnc` and add the following configuration to `/etc/kvmd/override.yaml`: ```yaml @@ -44,7 +64,9 @@ After enabling `kvmd-ipmi`, all requests that it receives over the network regar $ ipmitool -I lanplus -U admin -P admin -H pikvm sol activate ``` -# Redfish + +## Redfish + [Redfish](https://www.dmtf.org/standards/redfish) is a more modern server management protocol designed to replace IPMI. It is based on HTTP and fixes many security issues. If possible, we recommend using it instead of IPMI, or using the [KVMD API](api.md). @@ -60,8 +82,7 @@ location /redfish { } ``` -:exclamation: Don't be confused by the parameter `auth_request off`. KVMD performs authorization on its own. -The only open HTTP entrypoint is `/redfish/v1`, which returns a static document and does not change the state of the PiKVM. It's safe. +!!! info Don't be confused by the parameter `auth_request off`. KVMD performs authorization on its own. The only open HTTP entrypoint is `/redfish/v1`, which returns a static document and does not change the state of the PiKVM. It's safe. If there is a file in your system after the update `/etc/kvmd/nginx/kvmd.ctx-server.conf.pacnew` you can just move it: @@ -69,7 +90,8 @@ If there is a file in your system after the update `/etc/kvmd/nginx/kvmd.ctx-ser # mv /etc/kvmd/nginx/kvmd.ctx-server.conf.pacnew /etc/kvmd/nginx/kvmd.ctx-server.conf ``` -:exclamation: Be careful not to lose your local changes if you have done anything with this file before. +!!! warning + Be careful not to lose your local changes if you have done anything with this file before. To access the Redfish API, use HTTP Basic Auth. Also you can use the [redfishtool](https://github.com/DMTF/Redfishtool): diff --git a/pages/mouse.md b/docs/mouse.md similarity index 58% rename from pages/mouse.md rename to docs/mouse.md index 830d849..52fa9a6 100644 --- a/pages/mouse.md +++ b/docs/mouse.md @@ -1,10 +1,10 @@ -# Mouse modes +# Mouse There are two modes of pointer device: absolute and relative. -In absolute mode, the input device transmits the exact coordinates (X,Y) where the cursor should be moved. This is how touchscreens or drawing tablets work. +In absolute mode, the input device transmits the exact coordinates `(X,Y)` where the cursor should be moved. This is how touchscreens or drawing tablets work. -In relative mode, only the relative offset (dX,dY) to the current position is transmitted, which is unknown to the input device itself. This is a regular mouse. +In relative mode, only the relative offset `(dX,dY)` to the current position is transmitted, which is unknown to the input device itself. This is a regular mouse. By default, PiKVM uses absolute positioning mode as the most convenient for the user and software. However, this is not always supported by the BIOS/UEFI. @@ -13,55 +13,78 @@ For such cases, support is provided for the relative mode of operation, which ca When using relative mode, the browser will exclusively capture your mouse when you click on the stream window in PiKVM once. When you press `Esc`, the browser releases the mouse. -# Important notes + +## Important notes + The relative mouse generates a huge number of events that can be poorly transmitted over the network or very slowly perceived by the BIOS/UEFI driver. To solve this problem, mouse events are optimized using a vector sum. This mode is enabled by default and is available in the web menu `System -> Squash mouse moves`. You can try disabling this if you have problems with mouse acceleration. This is the best and most reasonable compromise right now. Also currently the relative mouse mode is not supported by [PiKVM VNC server](vnc.md) yet. The reason is that none of the recommended clients support the [QEMU Pointer Motion Change](https://github.com/rfbproto/rfbproto/blob/master/rfbproto.rst#qemu-pointer-motion-change-pseudo-encoding) extension. We expect to implement this in [TigerVNC](https://github.com/TigerVNC/tigervnc/issues/619). The relative mode is also not supported by mobile browsers. -# Enabling the relative mouse on the v2 platform (OTG HID) + +## Relative mouse on v2+ platform (OTG HID) + ### Dual mode + Using dual mouse mode you can switch between the absolute and relative mouse in the `System` menu without reloading. This is more convenient, but for compatibility reasons it is disabled by default. To enable it, do the following: -* Switch filesystem to RW-mode using command `rw. -* Edit `/etc/kvmd/override.yaml` and add these lines: - ```yaml - kvmd: - hid: - mouse_alt: - device: /dev/kvmd-hid-mouse-alt - ``` -* Perform `reboot`. After that reboot your PC. + +1. Switch filesystem to RW-mode using command `rw`. + +2. Edit `/etc/kvmd/override.yaml` and add these lines: + + ```yaml + kvmd: + hid: + mouse_alt: + device: /dev/kvmd-hid-mouse-alt + ``` + +3. Perform `reboot`. After that reboot your PC. + ### Single relative mode -* Switch filesystem to RW-mode using command `rw`. -* Edit `/etc/kvmd/override.yaml` and add these lines: - ```yaml - kvmd: - hid: - mouse: - absolute: false - ``` -* Perform `reboot`. After that reboot your PC. -* If the mouse is still not detected by the BIOS/UEFI, try disabling horizontal scrolling to achieve the maximum compatibility: - ```yaml - kvmd: - hid: - mouse: - absolute: false - horizontal_wheel: false - ``` -* Don't forget to perform `reboot`. - -# Enabling the relative mouse on the v0 platform (Arduino HID) -Mode switching for [Arduino HID](https://github.com/pikvm/pikvm/blob/master/pages/arduino_hid.md) can be performed on-the-fly starting with KVMD 2.6 and the corresponding firmware. No additional actions are required. - -# Fixing the absolute mouse on Windows 98 + +1. Switch filesystem to RW-mode using command `rw`. + +2. Edit `/etc/kvmd/override.yaml` and add these lines: + + ```yaml + kvmd: + hid: + mouse: + absolute: false + ``` + +3. Perform `reboot`. After that reboot your PC. + +4. If the mouse is still not detected by the BIOS/UEFI, try disabling horizontal scrolling to achieve the maximum compatibility: + + ```yaml + kvmd: + hid: + mouse: + absolute: false + horizontal_wheel: false + ``` + +5. Don't forget to perform `reboot`. + + +## Relative mouse on v0 platform (Arduino HID) + +Mode switching for [Arduino HID](arduino_hid.md) can be performed on-the-fly starting with KVMD 2.6 and the corresponding firmware. No additional actions are required. + + +## Fixing the absolute mouse on Windows 98 + Due to an ancient buggy driver, the absolute mouse on Windows 98 moves only within the upper-left quarter of the screen. To fix this, you need to activate some magic workaround in `/etc/kvmd/override.yaml`: + ```yaml kvmd: hid: mouse: absolute_win98_fix: true ``` -And run `systemctl restart kvmd`. + +... and run `systemctl restart kvmd`. diff --git a/pages/msd.md b/docs/msd.md similarity index 67% rename from pages/msd.md rename to docs/msd.md index 04e7000..b8f3718 100644 --- a/pages/msd.md +++ b/docs/msd.md @@ -1,50 +1,77 @@ # Mass Storage Drive + +## Basics + This is a feature available on PiKVM v2+ that allows you to emulate a CD-ROM or Flash Drive. + There are some subtleties that you should know: -* **The size of the CD-ROM image is limited to 2.2 GB**. This is a limitation of the Linux kernel, which currently cannot emulate a DVD. -To use a larger boot image, use Flash emulation. If this is not possible (the image does not support Flash, for example, for Windows), -use [this](#create-a-microsoft-windows-based-flash-disk-image) recipe. -* **Changing the media type (CD-ROM or Flash) is possible only when the device is reconnected.** For V3, this can be done using -the switch `System -> Connect main USB`. In this case, the **media type is determined at the time of connecting the image, and not by clicking on the switch**. -The switch affects the settings of the future connection. For non-V3 devices, you need to either reboot your server or otherwise reinitialize the connection. +!!! info "The size of the CD-ROM image is limited to 2.2 GB" + This is a [limitation](https://github.com/pikvm/pikvm/issues/322) of the Linux kernel, which currently cannot emulate a DVD. + To use a larger boot image, use Flash emulation. If this is not possible (the image does not support Flash, for example, for Windows), + use [this](#create-a-microsoft-windows-based-flash-disk-image) recipe. + +!!! info "Changing the media type between CD-ROM and Flash is possible only when the device is reconnected" + For PiKVM v3 HAT, this can be done using the switch `System -> Connect main USB`. + In this case, the **media type is determined at the time of connecting the image, and not by clicking on the switch**. + The switch affects the settings of the future connection. For non-v3 devices, + you need to either reboot your server or otherwise reinitialize the connection. + + +----- +## Disable MSD + +To disable mass storage emulation altogether, you can place the following piece of configuration into `/etc/kvmd/override.yaml`: -# Disable MSD -To disable mass storage emulation altogether, you can place the following piece of configuration into /etc/kvmd/override.yaml ``` yaml - kvmd: - msd: - type: disabled +kvmd: + msd: + type: disabled ``` -# Upload images manually (without Web UI) + +## Upload images manually (without Web UI) + 1. Remount internal storage to rw (read-write): + ``` # kvmd-helper-otgmsd-remount rw ``` + 2. Upload the .ISO image(s) to `/var/lib/kvmd/msd/images` via scp or similar. + 3. Create an empty file in `/var/lib/kvmd/msd/meta/` with the exact name (case sensitive!) of the uploaded image. This will indicate PiKVM that the uploaded image is okay and can be used. For example: + ``` /var/lib/kvmd/msd/meta/ubuntu-18.04.4-desktop-amd64.iso.complete + ``` + 4. Remount internal storage back to ro (read-only): + ``` # kvmd-helper-otgmsd-remount ro ``` -# Multiple and writable drives + +----- +## Multiple and writable drives + Unless explicitly [disabled](#disable-msd) by default, PiKVM creates only one drive for Mass Storage emulation. However, you can create additional drives and manage them manually via the terminal. This is useful if you want to boot the server from a ISO CD (specified in the web interface), then connect a virtual flash drive to the server and download some files from to PiKVM from it. -:exclamation: The presence of an additional Mass Storage device should not interfere with the boot, but for reasons of compatibility paranoia, -this is disabled by default. We recommend setting up the drives in advance, making sure that booting from the ISO CD is still working, -and then using the drives as needed. +!!! info + The presence of an additional Mass Storage Drive should not interfere with the boot, but for reasons of compatibility paranoia, this is disabled by default. We recommend setting up the drives in advance, making sure that booting from the ISO CD is still working, and then using the drives as needed. + + +### How to enable extra drives -How to enable extra drives: 1. Switch the root filesystem to `rw` mode. -2. Edit `/etc/kvmd/override.yaml` (remove `{}` if this your first configuration entry) and add these lines: + +2. Edit `/etc/kvmd/override.yaml` and add these lines: + ``` yaml otg: devices: @@ -55,46 +82,66 @@ How to enable extra drives: cdrom: false # Default value (false for the generic flash drive) rw: false # Read-only by default ``` + If you specify `count: N`, you will create `N` additional drives configured the same way, as described in the `default` section. -3. Reboot. -How to create RW flash drive: +3. Perform `reboot`. + + +### How to create RW flash drive + 1. Switch the root filesystem to `rw` mode: + ``` # rw ``` + 2. Create the empty image file of the desire size (1Gb in this example). + ``` # dd if=/dev/zero of=/root/flash.img bs=1M count=1000 status=progress ``` + 3. Connect it to the drive 1: + ``` # kvmd-otgmsd -i 1 --set-rw=1 --set-cdrom=0 --set-image=/root/flash.img ``` - After that you will have access to the flash drive from the server. - :exclamation: Drive 0 represents a drive that is controlled via a web interface and API. Don't use it with kvmd-otgmsd if you don't know exactly what you're doing. + + After that you will have access to the flash drive from the server. **Drive 0 represents a drive that is controlled via a web interface and API. Don't use it with kvmd-otgmsd if you don't know exactly what you're doing.** + 4. View the driver state: + ``` # kvmd-otgmsd -i 1 Image file: /root/flash.img CD-ROM flag: no RW flag: yes + ``` + 5. To disable the flash drive and view the files on it from the KVM, run: + ``` # kvmd-otgmsd -i 1 --unlock --eject ``` - :exclamation: This command will interrupt the current IO operation on **ALL DRIVES** including the one that is managed via the web interface. The same result is achieved by clicking the disable media button in the web interface. Right now, the Linux kernel does not allow to distinguish between internal threads that manage different drives. It is recommended to eject the media when you know that this will not cause problems for the other media. + + **This command will interrupt the current IO operation on ALL DRIVES** including the one that is managed via the web interface. The same result is achieved by clicking the disable media button in the web interface. Right now, the Linux kernel does not allow to distinguish between internal threads that manage different drives. It is recommended to eject the media when you know that this will not cause problems for the other media. + 6. Don't forget to remount the root filesystem to read-only mode: + ``` # ro ``` + 7. You can download the resulting image via SCP or mount it as a loop device on the PiKVM. -# Create a Microsoft Windows based Flash disk image + +----- +## Create a Windows based Flash disk image An alternative version of this can be found below that does not require a physical usb flash -This procedure will create a disk image of a USB stick. This is mostly required for Microsoft Windows (TM) based images since they are larger than the CDROM based limit of 2.2GB. +This procedure will create a disk image of a USB stick. This is mostly required for Windows based images since they are larger than the CDROM based limit of 2.2GB. You can create a bootable USB stick with the normal Microsoft tools, e.g. Media Creation Tool. Creating a bootable USB stick can also be made from an ISO file with other tools like Rufus. @@ -108,6 +155,7 @@ Or, on Windows you could use a program like PassMark ImageUSB (only for full USB Once you have the desired USB stick perform the following on the RPi to create the image directly to the PiKVM image storage folder. 1. Insert Windows based USB stick into Pi4, generated with Microsoft USB creation tool. SSH to PiKVM as root. + ``` # dmesg [ 3025.025401] usb-storage 2-1:1.0: USB Mass Storage device detected @@ -122,38 +170,49 @@ Once you have the desired USB stick perform the following on the RPi to create t [ 3026.922794] sd 0:0:0:0: [sda] Attached SCSI removable disk [root@pikvm ~]# ``` - USB devices shows as "sda". We will use "sda1" as the Microsoft Windows (TM) partition. + + USB devices shows as `sda`. We will use `sda1` as the Windows partition. 2. mount msd folder as read/write + ``` # kvmd-helper-otgmsd-remount rw ``` + 3. Create image of USB data PARTITION to an image file, this will take some time, in this case about 12 minutes (RPi4). + ``` # dd if=/dev/sda1 of=/var/lib/kvmd/msd/images/windows10-2004.bin bs=8M status=progress 4458545152 bytes (4.5 GB, 4.2 GiB) copied, 736 s, 6.1 MB/s 531+1 records in 531+1 records out 4458545152 bytes (4.5 GB, 4.2 GiB) copied, 736.213 s, 6.1 MB/s - ```` + ``` + 4. Correct ownership of new image and make sure the website reports the file as complete (pay attention to the different folder). + ``` # chown kvmd:kvmd /var/lib/kvmd/msd/images/windows10-2004.bin # touch /var/lib/kvmd/msd/meta/windows10-2004.bin.complete ``` + 5. Remount msd folder as read only + ``` # kvmd-helper-otgmsd-remount ro - ```` + ``` 6. On PiKVM webpage, under Storage select the new image and connect it in Drive Mode: Flash to the server. - Boot the server and select boot device like you normally would. - E.g. in a AMI BIOS the boot device is called "Linux File-CD Gadget 0504". +Boot the server and select boot device like you normally would. +E.g. in a AMI BIOS the boot device is called "Linux File-CD Gadget 0504". + + +----- +## Create a drive image on macOS -# Create a drive image on macOS 1. Open Disk Utility. -2. File > New Image > Blank Image. +2. `File > New Image > Blank Image`. 3. Save As: `pikvm-image.dmg`. Name: `pikvm-image`. Size: 100 MB (or whatever size you want). Format: `MS-DOS (FAT)`. Partitions: `Single partition - GUID Partition Map`. Image Format: `read/write disk image`. 4. Click Save. 5. The drive will automatically be mounted. @@ -164,19 +223,22 @@ Once you have the desired USB stick perform the following on the RPi to create t You should be able to then mount it locally on the server, or reboot the device to do things like BIOS updates. -# An alternative to making a windows boot img that does not require a physical usb flash drive -- Physical USB is not needed but external system is mandatory -- Create Ventoy image (on Ubuntu x86 machine) (Unaware of a windows version) + +----- +## An alternative to making a Windows boot image that does not require a physical usb flash drive + +* Physical USB is not needed but external system is mandatory. +* Create Ventoy image (on Ubuntu x86 machine) (Unaware of a windows version). ``` dd if=/dev/zero of=ventoy.img bs=1M count=4700 status=progress ``` -- This makes a ventoy.img file, I would name this what it is EG: ventoy_win10.img -- At the same time, download Media Creation Tool and select iso +* This makes a ventoy.img file, I would name this what it is EG: `ventoy_win10.img` +* At the same time, download Media Creation Tool and select iso -- On the Ubuntu machine -- At the time of this, it was 1.0.51, change to latest version +* On the Ubuntu machine +* At the time of this, it was 1.0.51, change to latest version ``` wget https://github.com/ventoy/Ventoy/releases/download/v1.0.51/ventoy-1.0.51-linux.tar.gz @@ -190,7 +252,7 @@ mkdir ventoy sudo mount /dev/loopXXp1 /media/XXX/ventoy ``` -- Either cp/scp over the .iso you downloaded from the Media tool or use a NFS mount +* Either cp/scp over the .iso you downloaded from the Media tool or use a NFS mount ``` sudo cp windows.iso /media/XXX/ventoy @@ -200,24 +262,23 @@ sudo losetup -d /dev/loopXX ssh into the Ubuntu system (Or whatever OS you are using) -- On PiKVM +* On PiKVM ``` cd /var/lib/kvmd/msd mount -o remount,rw . ``` -- On Ubuntu +* On Ubuntu ``` scp ventoy.img root@pikvm:/var/lib/kvmd/msd/images ``` -- On PiKVM +* On PiKVM ``` touch /var/lib/kvmd/msd/meta/ventoy.img.complete ``` -- Mount ventoy.img as normal flash and select the PIKVM boot device, it should popup with the VenToy logo with the window.iso as a selection - +* Mount `ventoy.img` as normal flash and select the PiKVM boot device, it should popup with the VenToy logo with the window.iso as a selection diff --git a/pages/multiport.md b/docs/multiport.md similarity index 54% rename from pages/multiport.md rename to docs/multiport.md index e61ace8..cb7c6e8 100644 --- a/pages/multiport.md +++ b/docs/multiport.md @@ -4,32 +4,34 @@ There are many ways to do this, but the best and most documented one right now i Also, PiKVM can be connected to a multi-port HDMI/USB switch and the switch's buttons can be connected via optocouplers to [the Pi's GPIO to switch channels](gpio.md). -If your KVM switches channels using keyboard shortcuts, there is a chance that it will not be able to work with OTG (v2 platform, see below), since it does not fully implement the USB stack. In this case, you will have to [use an Arduino board](arduino_hid.md) to emulate the keyboard & mouse (PiKVM supports this configuration). +If your KVM switches channels using keyboard shortcuts, there is a chance that it will not be able to work with OTG (v2+ platform, see below), since it does not fully implement the USB stack. In this case, you will have to [use an Arduino board](arduino_hid.md) to emulate the keyboard & mouse (PiKVM supports this configuration). -❗WARNING:exclamation: - If you choose AiMOS, be aware that it has a back powering issue that you need to use work arounds for. Limitations are are listed below. Also please be aware that Arudino's will not work with the AIMOS KVM's. +!!! warning + If you choose AIMOS, be aware that it has a back powering issue that you need to use work arounds for. Limitations are are listed below. Also please be aware that Arudino's will not work with the AIMOS KVM's. -# List of tested KVMs + +## List of tested KVMs Here the status is: + * ✔ - Everything is working as expected. There may be some subtleties. -* ☹ - The switch does not work with OTG (**v2**) and requires an [Arduino HID](arduino_hid.md) or soldering [GPIO](gpio.md) to switch channels or something like that. +* ☹ - Something wrong. * ✘ - The keyboard or mouse does not work at all, the switch loses the image, etc. | Model | Status | Notes | |:------|:-------|:------| | [ezCoo EZ-SW41HA-KVMU3L 4x1 switch](https://www.easycoolav.com/products/hdmi20-switch-4x1-with-usb30-kvm-3-port-usbsupport-4k60hz-444-and-hdr-audio-breakout-36) ~~[ezCoo SW41HA HDMI 4x1 switch](https://www.easycoolav.com/products/hdmi20-switch-4x1-with-usb20-kvm-4-port-usbsupport-4k60hz-444-and-hdr-audio-breakout)~~ (legacy) | ✔ | [Using with PiKVM](ezcoo.md) - 4 Port is the ONLY supported KVM, 2 Port does not work the same and is not supported | -| [Ali's noname](https://a.aliexpress.com/_BSpS8t) | ✔ | Limitations are are listed below | -| [Aimos 8-port HDMI USB-C KVM Switch](https://www.amazon.de/AIMOS-Umschalter-Tastatur-unterst%C3%BCtzen-verbunden/dp/B08FR5K111/) | ✔ | Similar to Ali's noname model, available in 4/8port editions, has same HDMI bridge boot problem/solution using a Marmitek 312 UHD HDMI splitter. Limitations are are listed below | | [TESmart 8 PORT - HDMI KVM SWITCH](https://buytesmart.com/collections/8-ports) | ✔ | Use OTG with USB 2.0 Hub only, no hotkey support. Switching available with serial or IP-to-serial interface using fixed IP (/31 peer-to-peer addressing supported). Can be managed [via WebUI](tesmart.md) or [CLI tool](https://github.com/bbeaudoin/bash/tree/master/tesmart) | -| [XH-HK4401 4-port HDMI USB KVM Switch](https://www.aliexpress.com/item/4000849336545.html) | ✔ | [Using with PiKVM](xh-hk4401.md) - USB MSD works, requires the HDMI backpower solutions found below | +| [XH-HK4401 4-port HDMI USB KVM Switch](https://www.aliexpress.com/item/4000849336545.html) | ✔ | [Using with PiKVM](xh_hk4401.md) - USB MSD works, requires the HDMI backpower solutions found below | +| [Ali's noname](https://a.aliexpress.com/_BSpS8t) | ✔ | Limitations are are listed below | +| [AIMOS 8-port HDMI USB-C KVM Switch](https://www.amazon.de/AIMOS-Umschalter-Tastatur-unterst%C3%BCtzen-verbunden/dp/B08FR5K111/) | ☹ | Similar to Ali's noname model, available in 4/8port editions, has same HDMI bridge boot problem/solution using a Marmitek 312 UHD HDMI splitter. Limitations are are listed below | Limitations: -- HDMI backpower solutions: - - See [here](https://github.com/pikvm/pikvm/issues/128) - - See [here](https://github.com/pikvm/pikvm/issues/382) - Advanced soldering required - - [This loop capture device](https://www.amazon.com/gp/product/B08B346353) - - v3 HAT v3.3 (Kickstarter model and later) also takes care of the back power issue -- MSD work around (will not work OOB) - - RPi4 OTG needs to be in the KB port for mouse and KB funtionality, ZeroW is required and needs to be connected to the HUB port for HK switching and MSD functionality - ✔**KNOWN WORKING**✔ - - See [here](https://github.com/pikvm/pikvm/issues/371) - Advanced soldering required - allows use of GPIO menu to change input - +* HDMI backpower solutions: + * See [here](https://github.com/pikvm/pikvm/issues/128) + * See [here](https://github.com/pikvm/pikvm/issues/382) - Advanced soldering required + * [This loop capture device](https://www.amazon.com/gp/product/B08B346353) + * v3 HAT v3.3 (Kickstarter model and later) also takes care of the back power issue +* MSD workaround (will not work OOB) + * RPi4 OTG needs to be in the KB port for mouse and KB funtionality, ZeroW is required and needs to be connected to the HUB port for HK switching and MSD functionality - ✔**KNOWN WORKING**✔ + * See [here](https://github.com/pikvm/pikvm/issues/371) - Advanced soldering required - allows use of GPIO menu to change input diff --git a/docs/port_forwarding.md b/docs/port_forwarding.md new file mode 100644 index 0000000..ec3062d --- /dev/null +++ b/docs/port_forwarding.md @@ -0,0 +1,11 @@ +# Port forwarding + +If your ISP has provided you with an external IP address for the router, you can configure port forwarding to access PiKVM. + +!!! warning + [Change passwords](first_steps.md#getting-access-to-pikvm) before opening access to PiKVM from the outside Internet + +* The Web UI runs on port `80` and `443`. +* [VNC](vnc.md) (if you use it) runs on port `5900`. + +If you don't have an external IP address, then we recommend trying [Tailscale VPN](tailscale.md). diff --git a/pages/prometheus.md b/docs/prometheus.md similarity index 98% rename from pages/prometheus.md rename to docs/prometheus.md index 8bd2b2b..ace4117 100644 --- a/pages/prometheus.md +++ b/docs/prometheus.md @@ -1,10 +1,14 @@ # Prometheus metrics + [Prometheus](https://prometheus.io) is one of the popular monitoring systems. It pulls service's endpoint to get metrics in a [simple text format](https://prometheus.io/docs/instrumenting/exposition_formats). PiKVM has the ability to export some information to this system such as the server's ATX state, Pi's temperature, [GPIO](gpio.md) state and some other things. -# Configure Prometheus + +## Configure Prometheus + To enable Prometheus getting metrics from pikvm following [config](https://prometheus.io/docs/prometheus/latest/configuration/configuration) could be used: + ```yaml scrape_configs: - job_name: "pikvm" @@ -18,8 +22,11 @@ scrape_configs: insecure_skip_verify: true # For self-signed certificate ``` -# Output example + +## Output example + This example includes the [GPIO](gpio.md) from the PiKVM's [test config](https://github.com/pikvm/kvmd/blob/905bcf555f00d191654982cca80e294363efecc1/testenv/v2-hdmi-rpi4.override.yaml#L40). + ```bash $ curl -k -HX-KVMD-User:admin -HX-KVMD-Passwd:admin https://pikvm/api/export/prometheus/metrics diff --git a/stl/v3.2/case_a.png b/docs/stl/v3.2/case_a.png similarity index 100% rename from stl/v3.2/case_a.png rename to docs/stl/v3.2/case_a.png diff --git a/stl/v3.2/case_a.stl b/docs/stl/v3.2/case_a.stl similarity index 100% rename from stl/v3.2/case_a.stl rename to docs/stl/v3.2/case_a.stl diff --git a/stl/v3.2/case_a_no_oled.png b/docs/stl/v3.2/case_a_no_oled.png similarity index 100% rename from stl/v3.2/case_a_no_oled.png rename to docs/stl/v3.2/case_a_no_oled.png diff --git a/stl/v3.2/case_a_no_oled.stl b/docs/stl/v3.2/case_a_no_oled.stl similarity index 100% rename from stl/v3.2/case_a_no_oled.stl rename to docs/stl/v3.2/case_a_no_oled.stl diff --git a/stl/v3.2/case_b.png b/docs/stl/v3.2/case_b.png similarity index 100% rename from stl/v3.2/case_b.png rename to docs/stl/v3.2/case_b.png diff --git a/stl/v3.2/case_b.stl b/docs/stl/v3.2/case_b.stl similarity index 100% rename from stl/v3.2/case_b.stl rename to docs/stl/v3.2/case_b.stl diff --git a/stl/v3.2/case_b_no_aum.png b/docs/stl/v3.2/case_b_no_aum.png similarity index 100% rename from stl/v3.2/case_b_no_aum.png rename to docs/stl/v3.2/case_b_no_aum.png diff --git a/stl/v3.2/case_b_no_aum.stl b/docs/stl/v3.2/case_b_no_aum.stl similarity index 100% rename from stl/v3.2/case_b_no_aum.stl rename to docs/stl/v3.2/case_b_no_aum.stl diff --git a/stl/v3.2/README.md b/docs/stl/v3.2/index.md similarity index 83% rename from stl/v3.2/README.md rename to docs/stl/v3.2/index.md index 4da395c..26de06b 100644 --- a/stl/v3.2/README.md +++ b/docs/stl/v3.2/index.md @@ -1,30 +1,41 @@ -# PiKVM v3.2 Plastic Case for 3D printing +# 3D printable case for PiKVM v3.2 HAT + When printing the case, you can choose the following options: -- The presence or absence of an OLED screen (used to display the IP address and other information). -- The presence or absence of holes for the AUM v3.3 (Advanced USB Module, most likely you don't have it). + +* The presence or absence of an OLED screen (used to display the IP address and other information). +* The presence or absence of holes for the AUM v3.3 (Advanced USB Module, most likely you don't have it). ## Buy options + * [Small 5v fan](https://www.amazon.com/GeeekPi-Raspberry-30x30x7mm-Brushless-Retroflag/dp/B07C9C99RM) **strongly recommended** to avoid overheating in the case. * [I2C OLED screen](https://www.amazon.com/Pieces-Display-Module-SSD1306-Screen/dp/B08TLXYKS6). ## Building -See [this](https://www.youtube.com/watch?v=-SRL92VJ870) video. +![type:video](https://www.youtube.com/embed/-SRL92VJ870) + + +## Parts + +### The front part -# The front part **Choose ONE of them.** + | Variant | Description | |---------|-------------| | | [The front part](case_a_no_oled.stl) of the case **WITHOUT a hole** for the OLED | | | [The front part](case_a.stl) of the case with a hole **for installing the OLED** | -# The back part +### The back part + **Choose ONE of them.** + | Variant | Description | |---------|-------------| | | [The back part](case_b_no_aum.stl) of the case **WITHOUT AUM holes** | | | [The back part](case_b.stl) of the case **for installing the AUM** | -# Spacers +### Spacers + | Type | Description | |------|-------------| | | [6.2mm spacer](spacer_6.2mm.stl), required **TWO** pieces | diff --git a/stl/v3.2/low_spacer.png b/docs/stl/v3.2/low_spacer.png similarity index 100% rename from stl/v3.2/low_spacer.png rename to docs/stl/v3.2/low_spacer.png diff --git a/stl/v3.2/low_spacer.stl b/docs/stl/v3.2/low_spacer.stl similarity index 100% rename from stl/v3.2/low_spacer.stl rename to docs/stl/v3.2/low_spacer.stl diff --git a/stl/v3.2/spacer_1mm.png b/docs/stl/v3.2/spacer_1mm.png similarity index 100% rename from stl/v3.2/spacer_1mm.png rename to docs/stl/v3.2/spacer_1mm.png diff --git a/stl/v3.2/spacer_1mm.stl b/docs/stl/v3.2/spacer_1mm.stl similarity index 100% rename from stl/v3.2/spacer_1mm.stl rename to docs/stl/v3.2/spacer_1mm.stl diff --git a/stl/v3.2/spacer_2mm.png b/docs/stl/v3.2/spacer_2mm.png similarity index 100% rename from stl/v3.2/spacer_2mm.png rename to docs/stl/v3.2/spacer_2mm.png diff --git a/stl/v3.2/spacer_2mm.stl b/docs/stl/v3.2/spacer_2mm.stl similarity index 100% rename from stl/v3.2/spacer_2mm.stl rename to docs/stl/v3.2/spacer_2mm.stl diff --git a/stl/v3.2/spacer_6.2mm.png b/docs/stl/v3.2/spacer_6.2mm.png similarity index 100% rename from stl/v3.2/spacer_6.2mm.png rename to docs/stl/v3.2/spacer_6.2mm.png diff --git a/stl/v3.2/spacer_6.2mm.stl b/docs/stl/v3.2/spacer_6.2mm.stl similarity index 100% rename from stl/v3.2/spacer_6.2mm.stl rename to docs/stl/v3.2/spacer_6.2mm.stl diff --git a/stl/v3.3/case_a.png b/docs/stl/v3.3/case_a.png similarity index 100% rename from stl/v3.3/case_a.png rename to docs/stl/v3.3/case_a.png diff --git a/stl/v3.3/case_a.stl b/docs/stl/v3.3/case_a.stl similarity index 100% rename from stl/v3.3/case_a.stl rename to docs/stl/v3.3/case_a.stl diff --git a/stl/v3.3/case_a_no_oled.png b/docs/stl/v3.3/case_a_no_oled.png similarity index 100% rename from stl/v3.3/case_a_no_oled.png rename to docs/stl/v3.3/case_a_no_oled.png diff --git a/stl/v3.3/case_a_no_oled.stl b/docs/stl/v3.3/case_a_no_oled.stl similarity index 100% rename from stl/v3.3/case_a_no_oled.stl rename to docs/stl/v3.3/case_a_no_oled.stl diff --git a/stl/v3.3/case_b.png b/docs/stl/v3.3/case_b.png similarity index 100% rename from stl/v3.3/case_b.png rename to docs/stl/v3.3/case_b.png diff --git a/stl/v3.3/case_b.stl b/docs/stl/v3.3/case_b.stl similarity index 100% rename from stl/v3.3/case_b.stl rename to docs/stl/v3.3/case_b.stl diff --git a/stl/v3.3/README.md b/docs/stl/v3.3/index.md similarity index 86% rename from stl/v3.3/README.md rename to docs/stl/v3.3/index.md index 0ebc0c7..998a38f 100644 --- a/stl/v3.3/README.md +++ b/docs/stl/v3.3/index.md @@ -1,27 +1,36 @@ # PiKVM v3.3 Plastic Case for 3D printing When printing the case, you can choose the following options: -- The presence or absence of an OLED screen (used to display the IP address and other information). + +* The presence or absence of an OLED screen (used to display the IP address and other information). ## Buy options + * [Small 5v fan](https://www.amazon.com/GeeekPi-Raspberry-30x30x7mm-Brushless-Retroflag/dp/B07C9C99RM) **strongly recommended** to avoid overheating in the case. * [I2C OLED screen](https://www.amazon.com/Pieces-Display-Module-SSD1306-Screen/dp/B08TLXYKS6). ## Building -See [this](https://www.youtube.com/watch?v=-SRL92VJ870) video. -# The front part +![type:video](https://www.youtube.com/embed/-SRL92VJ870) + +## Parts + +### The front part + **Choose ONE of them.** + | Variant | Description | |---------|-------------| | | [The front part](case_a_no_oled.stl) of the case **WITHOUT a hole** for the OLED | | | [The front part](case_a.stl) of the case with a hole **for installing the OLED** | -# The back part +### The back part + | Variant | Description | |---------|-------------| | | [The back part](case_b.stl) of the case | -# Spacers +### Spacers + | Type | Description | |------|-------------| | | [6.2mm spacer](spacer_6.2mm.stl), required **TWO** pieces | diff --git a/stl/v3.3/low_spacer.png b/docs/stl/v3.3/low_spacer.png similarity index 100% rename from stl/v3.3/low_spacer.png rename to docs/stl/v3.3/low_spacer.png diff --git a/stl/v3.3/low_spacer.stl b/docs/stl/v3.3/low_spacer.stl similarity index 100% rename from stl/v3.3/low_spacer.stl rename to docs/stl/v3.3/low_spacer.stl diff --git a/stl/v3.3/spacer_1mm.png b/docs/stl/v3.3/spacer_1mm.png similarity index 100% rename from stl/v3.3/spacer_1mm.png rename to docs/stl/v3.3/spacer_1mm.png diff --git a/stl/v3.3/spacer_1mm.stl b/docs/stl/v3.3/spacer_1mm.stl similarity index 100% rename from stl/v3.3/spacer_1mm.stl rename to docs/stl/v3.3/spacer_1mm.stl diff --git a/stl/v3.3/spacer_6.2mm.png b/docs/stl/v3.3/spacer_6.2mm.png similarity index 100% rename from stl/v3.3/spacer_6.2mm.png rename to docs/stl/v3.3/spacer_6.2mm.png diff --git a/stl/v3.3/spacer_6.2mm.stl b/docs/stl/v3.3/spacer_6.2mm.stl similarity index 100% rename from stl/v3.3/spacer_6.2mm.stl rename to docs/stl/v3.3/spacer_6.2mm.stl diff --git a/docs/tailscale.md b/docs/tailscale.md new file mode 100644 index 0000000..fb50310 --- /dev/null +++ b/docs/tailscale.md @@ -0,0 +1,31 @@ +# Tailscale VPN + +[Tailscale](https://tailscale.com/) can be used to access PiKVM on the internal network. This is a convenient and free (for private use) tool for organizing a small VPN network. This document is provided as an example for accessing your pikvm over the inet but you can also use zerotier or remote.it. Basic support like whats shown below is provided as an example, any other setting or functionality needs to be redirected to the appropriate community. + + +## Installation + +### On the PiKVM side + +1. Use these commands: + + ``` + # rw + # pacman -Syy + # pacman -S tailscale-pikvm + # 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](https://tailscale.com/download) and install tailscale for your OS. +* Check the [admin page](https://login.tailscale.com/admin/machines) to view your VPN network. +* Follow the URL in the web browser: `https://` and you will see PiKVM web interface. diff --git a/pages/tesmart.md b/docs/tesmart.md similarity index 61% rename from pages/tesmart.md rename to docs/tesmart.md index fc850ba..d380dd1 100644 --- a/pages/tesmart.md +++ b/docs/tesmart.md @@ -2,15 +2,22 @@ The TESMART managed switch can be controlled by PiKVM to allow it to connect to multiple hosts. A typical scenario is a single PiKVM device which can control and switch between multiple hosts or servers using the TESMART switch. UI elements can be added to the [GPIO dropdown](gpio.md) to allow switching between hosts from the PiKVM webpage. The instructions here were tested with the [TESMART HKS1601A10 HDMI 16x1 switch](https://www.amazon.com/TESmart-Enterprise-Control-Rackmount-Keyboard/dp/B07258PWTW/). This should work with any of the other TESMART variants which have a LAN port - there is both a 8x1 and 4x1 variant. This was tested with an RPI4, but as this is executed over a network protocol, this should with almost anything. + ## Connections + From a high level, the TESMART switch uses standard connections to the host machines (USB-A to USB-B and HDMI). The Raspberry Pi OTG connector (the one coming from the USB-C port on a Pi 4 via the custom splitter cable or device) should be connected to one of the USB 2 output ports on the TESMART switch (not the keyboard/mouse port). Based on your specific devices, and to get boot images to mount, you may need to connect this through a USB 2 hub. 1. Connect the USB-A cable from the Raspberry Pi OTG port to one of the TESMART switch USB 2 output ports on the back of the switch (not the keyboard/mouse ports). + 2. Connect the HDMI out from the TESMART switch to the Raspberry Pi CSI-2 to HMDI input. + 3. Connect the LAN port on the front of the switch using standard ethernet cable into one of your network switches. + 4. Connect host USB and HDMI cables from the TESMART switch to the machines to be managed per the switch instructions. -:exclamation: There is a limitation in the underlying PiKVM software related to plugging video cables from a host which is already powered and connected to a monitor to a Raspberry Pi CSI2-HDMI encoder. These limitations apply equally when using the TESMART KVM switch. If video is not present in PiKVM, try keeping all host machines off and connecting them directly to the TESMART switch before powering the hosts on. +!!! warning + There is a limitation in the underlying PiKVM software related to plugging video cables from a host which is already powered and connected to a monitor to a Raspberry Pi CSI2-HDMI encoder. These limitations apply equally when using the TESMART KVM switch. If video is not present in PiKVM, try keeping all host machines off and connecting them directly to the TESMART switch before powering the hosts on. + ## Setting the IP Address of the TESMART switch @@ -18,79 +25,85 @@ In some ways, this is the most complex part of this. The default IP address of t If you need to change it, you will first need to connect to the switch with a Windows machine, most easily directly through an ethernet cord, with your Windows laptop (or VM) up and assigned to a fixed IP address, such as 192.168.1.5. Once you've launched the utility you will see this screen: -Configuration screen for TESMART Windows controller utility +Configuration screen for TESMART Windows controller utility On this screen, ensure you are on the "General" tab. Click the radio button for "Network control". Change the IP address to the default for the switch (may already be this -- 192.168.1.10). Press the "Connect" button. Should make the status light go green, as well as the selected port. If you do not get a connection here, you cannot proceed to change the IP address. To change the IP address, change to the "Settings" tab at the top. You will then see this screen: -Configuration screen for TESMART Windows controller utility +Configuration screen for TESMART Windows controller utility On this screen, change to your desired IP address, gateway, mask, and port. Then press apply. Watch the box on the right to see if it applied OK. Press Query again to double-check. The actual IP address will not be changed until you power off/power on the switch. Make sure you have these settings correct, because if you get them wrong you would have to connect over RS232/serial and not the network. There may be alternatives other than changing the IP address in this manner if you don't have access to a Windows machine or if this address doesn't work for you. See this [README](https://github.com/bbeaudoin/bash/blob/master/tesmart/README.md) for other options (Images and concepts from the bash file were borrowed for creation of this plugin). This also contains a summary of the protocol, which is also available on the TESMART downloads page. + ## Adding UI elements to control the KVM switch + The UI can be updated to add buttons to switch between KVM inputs and indicators for which input is currently selected. The instructions below will make these available in the PiKVM UI after clicking the "Switches" menu button in the KVM view. -1. SSH into PiKVM -2. Enable read-write mode on the sd card via `rw` -3. Edit the `/etc/kvmd/override.yaml` file and include the following: -```yaml -kvmd: - gpio: - drivers: - tes: - type: tesmart - host: 10.10.1.10 - port: 5000 - scheme: - server0_led: - driver: tes - pin: 0 - mode: input - server0_switch: - driver: tes - pin: 0 - mode: output - switch: false - server1_led: - driver: tes - pin: 1 - mode: input - server1_switch: - driver: tes - pin: 1 - mode: output - switch: false - server2_led: - driver: tes - pin: 2 - mode: input - server2_switch: - driver: tes - pin: 2 - mode: output - switch: false - server3_led: - driver: tes - pin: 3 - mode: input - server3_switch: - driver: tes - pin: 3 - mode: output - switch: false - view: - table: - - ["TESMART Switch"] - - [] - - ["#Server 1", server0_led, server0_switch|Switch] - - ["#Server 2", server1_led, server1_switch|Switch] - - ["#Server 3", server2_led, server2_switch|Switch] - - ["#Server 4", server3_led, server3_switch|Switch] - ``` -4. Return to read-only mode for the sd card via `ro` -5. Restart the kvmd service: `systemctl restart kvmd` +1. Enable read-write mode on the SD card via `rw` + +2. Edit the `/etc/kvmd/override.yaml` file and include the following: + + ```yaml + kvmd: + gpio: + drivers: + tes: + type: tesmart + host: 10.10.1.10 + port: 5000 + scheme: + server0_led: + driver: tes + pin: 0 + mode: input + server0_switch: + driver: tes + pin: 0 + mode: output + switch: false + server1_led: + driver: tes + pin: 1 + mode: input + server1_switch: + driver: tes + pin: 1 + mode: output + switch: false + server2_led: + driver: tes + pin: 2 + mode: input + server2_switch: + driver: tes + pin: 2 + mode: output + switch: false + server3_led: + driver: tes + pin: 3 + mode: input + server3_switch: + driver: tes + pin: 3 + mode: output + switch: false + view: + table: + - ["TESMART Switch"] + - [] + - ["#Server 1", server0_led, server0_switch|Switch] + - ["#Server 2", server1_led, server1_switch|Switch] + - ["#Server 3", server2_led, server2_switch|Switch] + - ["#Server 4", server3_led, server3_switch|Switch] + ``` + +3. Return to read-only mode for the sd card via `ro` + +4. Restart the `kvmd` service: `systemctl restart kvmd` + ## Switching between hosts in the UI -To switch between hosts, enter the KVM UI and click the "Switches" menu. You should see your inputs, one of which will have a green circle indicating it is currently selected. Click the other inputs to change the selected host. +To switch between hosts, enter the KVM UI and click the "Switches" menu. You should see your inputs, one of which will have a green circle indicating it is currently selected. Click the other inputs to change the selected host. diff --git a/img/tesmart_controller_1.png b/docs/tesmart/tesmart_controller_1.png similarity index 100% rename from img/tesmart_controller_1.png rename to docs/tesmart/tesmart_controller_1.png diff --git a/img/tesmart_controller_2.png b/docs/tesmart/tesmart_controller_2.png similarity index 100% rename from img/tesmart_controller_2.png rename to docs/tesmart/tesmart_controller_2.png diff --git a/pages/usb_ethernet.md b/docs/usb_ethernet.md similarity index 88% rename from pages/usb_ethernet.md rename to docs/usb_ethernet.md index c97a681..9f6da6d 100644 --- a/pages/usb_ethernet.md +++ b/docs/usb_ethernet.md @@ -1,10 +1,11 @@ # Ethernet-over-USB network -Specifically to v2. When combined with configuring a DNS server, FTP, or SMB (for example), this is a powerful way to extend the capabilities of PiKVM. +## Basic configuration -:exclamation: The USB-Ethernet features are experimental, so some of the default settings may be changed in future releases. +Specifically to v2+. When combined with configuring a DNS server, FTP, or SMB (for example), this is a powerful way to extend the capabilities of PiKVM. + +1. Edit `/etc/kvmd/override.yaml` and add these lines: -1. Edit `/etc/kvmd/override.yaml` (remove `{}` if this your first configuration entry) and add these lines: ``` yaml otg: devices: @@ -14,36 +15,49 @@ Specifically to v2. When combined with configuring a DNS server, FTP, or SMB (fo host_mac: 48:6f:73:74:50:43 kvm_mac: 42:61:64:55:53:42 ``` + The `host_mac` address will be used on the server's network interface. The `kvm_mac` means the address that will be assigned to the local interface on the PiKVM. The KVM interface will be called `usb0`network interface. If the `host_mac` or `kvm_mac` is not specified, a random value will be used. The `driver` parameter means the protocol that will be used for the USB network. The default value is `ecm` so it can be passed it this example. Other possible values are `eem`, `ncm` and `rndis`. + 2. To automatically configure the USB network on the server recommended using the service `kvmd-otgnet`. It configures the firewall, assigns an address to the local PiKVM interface `usb0` and starts DHCP so the managed server can get the IPv4 address. By default, the address `169.254.0.1/28` to interface `usb0` will be assigned. One of the other addresses from the network `169.254.0.0./28` will be assigned to the server when it requests it via DHCP. For security reasons, all incoming connections from the server to the PiKVM side are blocked (except for ICMP and UDP port 67 which is used for DHCP). If you want to allow access from the server to the PiKVM interface, then you need to add ports 80 and 443 to the whitelist using `/etc/kvmd/override.yaml` file like this: + ```yaml otgnet: firewall: allow_tcp: [80, 443] ``` + To view other available configuration parameters, use the command `kvmd -m`. + 3. To enable the service, use the command `systemctl enable kvmd-otgnet`. + 4. Perform `reboot`. + ## Routing via PiKVM By default, `kvmd-otgnet` will configure network connection between PiKVM and the server host only. The server host will not be able to reach other hosts beyond PiKVM. If the full network access is required from the server host through the USB-Ethernet feature (access all hosts PiKVM can access), additional settings are needed in `/etc/kvmd/override.yaml`. 1. Run `echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-kvmd-extra.conf`. + 2. Add network interface to forward requests to (default gateway) by adding a line `forward_iface: ` under `firewall:`. Typically it would be `eth0` if the built-in ethernet port is used:: + ```yaml otgnet: firewall: forward_iface: eth0 ``` + 3. Add DNS server to provide host name resolution service. For example, adding `8.8.8.8` as DNS server requires addition of `dnsmasq` dhcp options. This can be done by adding following lines to `/etc/kvmd/override.yaml`: + ```yaml otgnet: commands: post_start_cmd_append: - "--dhcp-option=6,8.8.8.8" ``` + 4. Combining above two together:: + ```yaml otgnet: firewall: @@ -52,4 +66,5 @@ By default, `kvmd-otgnet` will configure network connection between PiKVM and th post_start_cmd_append: - "--dhcp-option=6,8.8.8.8" ``` -5. Don't forget ```reboot```. + +5. Don't forget to `reboot`. diff --git a/docs/usb_serial.md b/docs/usb_serial.md new file mode 100644 index 0000000..d68777b --- /dev/null +++ b/docs/usb_serial.md @@ -0,0 +1,36 @@ +# Serial-over-USB connection + +Specifically to v2+. This can be used for terminal access from the managed server to the PiKVM, or for any other purpose that requires a serial connection. In the last case, you only need to perform step 1 and reboot. + +1. Edit `/etc/kvmd/override.yaml` and add these lines: + + ```yaml + otg: + devices: + serial: + enabled: true + ``` + +2. Run the following command: + + ``` + # echo ttyGS0 >> /etc/securetty + ``` + +3. Create the directory `/etc/systemd/system/getty@ttyGS0.service.d` and add a file file named `ttyGS0.override` into it. Afterwards edit the file and copy this into it: + + ```ini + [Service] + TTYReset=no + TTYVHangup=no + TTYVTDisallocate=no + ``` + +4. Run these comands: + + ``` + # systemctl enable getty@ttyGS0.service + # reboot + ``` + +5. Once PiKVM is rebooted you will have access to a virtual serial port on the server that the USB is connected to. Use mingetty, screen, putty, or something like this to access the kvm from the server. The port is called `/dev/ttyAMA0`. diff --git a/docs/v3.md b/docs/v3.md new file mode 100644 index 0000000..19a4057 --- /dev/null +++ b/docs/v3.md @@ -0,0 +1,107 @@ +# PiKVM v3 HAT + + + +## Installation requirements + +??? note "If you have an assembly kit, you will need the following things" + * Raspberry Pi 4 with 1Gb RAM or more. + * MicroSD card (at least 16Gb, class 10 recommended). + * USB-C to USB-A cable. + * HDMI cable. + * [Straight Ethernet cable](https://www.home-network-help.com/straight.html) (for the ATX expansion board connection). + * Power supply unit (5.1V 3A USB-C, recommended by the Raspberry Pi). + + +## Basic setup + +If you have a kit without a metal case, you can use our free 3D printing case drawing: [v3.3](stl/v3.3/index.md){target=_blank} for the Kickstarter/Store model, [v3.2](stl/v3.2/index.md){target=_blank} for the pre-release. + +1. **[Flash the memory card.](flashing_os.md){target=_blank}** + +2. **Build PiKVM** according to the video instruction: +: ??? tip "With the metal case" + ![type:video](https://www.youtube.com/embed/jdqiwHKQcD4) +: ??? tip "Device with or without the 3D-printed case" + ![type:video](https://www.youtube.com/embed/-SRL92VJ870) + +3. **Connect PiKVM** to the computer according to the diagram below: + + | Back side | Front side | + |-----------|------------| + | | | + + * **HDMI input** and **USB emulation** port must be connected to the computer. **ATX** too, but it's optional, [read below](#atx-connection). There should be no USB hub between PiKVM and the computer, as some UEFI/BIOS cannot detect them at the boot stage. + + * Connect **Ethernet** to the network and **USB Power** to the Raspberry Pi power supply. + +4. **Turn on the power supply.** + +5. **Carefully read [the "First steps" guide](first_steps.md){target=_blank}** - how to find a device on the network, how to log in there, change passwords, and so on. **Follow the steps described there and come back here**. + +6. ??? note "If your kit includes the OLED display and/or the fan, you'll need to turn them on" + Log in to PiKVM and run these commands: + ``` + # rw + # systemctl enable --now kvmd-oled + # systemctl enable --now kvmd-fan + # ro + ``` + +7. !!! danger "Just reminding again: CHANGE THE PASSWORDS! :)" + How to do this was written in [the "First steps" guide](first_steps.md){target=_blank} + +8. **Try to manage the computer using PiKVM with the Web Interface.** Make sure that you see the image, and the keyboard and mouse are working. If something doesn't work, check out our [FAQ](faq.md) (it's really useful). If nothing helped, you can get support in our [Discord chat](https://discord.gg/bpmXfz5). + +9. ??? note "Check the HDMI backpowering problem" + Try restarting PiKVM using the `reboot` command executed in the terminal. If PiKVM hangs during boot (you can't get the Web Interface for a long time), then you are faced with this rare problem. **Don't worry, it's easy to fix.** Turn off the PiKVM, disconnect all cables from it, take a close look at the [diagram of its ports and jumpers](#io-ports-and-jumpers), and **remove jumper #14** (it is to the right of the CSI connector). Then you can connect and power up PiKVM again. Now everything will be fine. + +10. !!! warning "IO ports and other things" + **Before using GPIO** pins to control a relay, KVM switch, or anything else, be sure to [check the HAT pinout](#io-ports-and-jumpers). Many ports are busy with internal functions. Before using them for your own use, you must disable them, otherwise you may damage the device. + + +## ATX connection + +**======================== TODO =========================** + + +## IO ports and jumpers + +??? note "See the diagram" + + + 1. **ATX controller** interface (power on/off, reboot control, PWR and HDD ACT LEDs). + 2. **HDMI reset** jumper. + 3. **SPI and GPIO** for the custom extension boards. + 4. **Audio capture** jumpers. + 5. **UART access** pins. + 6. **Serial console port** (for the Raspberry Pi or server console access). + 7. **USB-C console port**. + 8. **Power** and **activity LEDs**. + 9. **USB-C power input**. + 10. **I2C display connector**. + 11. **Alternate +5V power input/output** header pins. + 12. **RTC clock** supercapacitor (rechargeable). + 13. **FAN connector** - PWM controlled. + 14. **CSI-2 interface** and **HDMI backpowering** jumper. + 15. Built-in **power splitter** port. + 16. **HDMI capture port** (max 1080p @ 50Hz) with **sound capture** support. + 17. **USB emulation pins** for alternative access. + 18. **USB-C emulation port** - this port is doing the emulation of a USB keyboard, mouse, Virtual CD-ROM or USB Flash Drive, USB-Ethernet, USB-Serial port and a lot of other Linux-supported features. + 19. **1-Wire** & **Neo-pixel** interface (under, advanced user feature). + +**================ PINOUT TODO ====================** + +??? note "ATX RJ-45 pinout" + The pinout of the RJ-45 connector is the same on the AT and ATX adapter. + + + +??? note "ATX LED wiring example" + + + +## Known issues and limitations +* The actual frame rate of the image received via HDMI will depend on the network bandwidth, resolution and the load on the Raspberry Pi. This is usually **~20-24 FPS for 1080p over LAN**. +* There may be **compatibility** issues with some motherboards (such as **HP** or **DELL**) which are the same as those that exist with PiKVM v2. Not everything is perfect, but if you have already used PiKVM v2 - our new v3 will work perfectly and please you. If there is no image from the BIOS, you can fine-tune the HDMI settings, but it is possible that the Mass Storage devices will not be available in the BIOS. +* Pre-release v3.2 board (NOT Kickstarter/Store edition) doesn't have HDMI backpowering workaround jumper. diff --git a/docs/v3/assembled.jpg b/docs/v3/assembled.jpg new file mode 100644 index 0000000000000000000000000000000000000000..535f3e4a16b0098afbb7163f262bce0adceaf742 GIT binary patch literal 79747 zcmbrF1ymft)}RM>cXyXygS)%CI}Gj)37X&zVQ_Z{?!n#NCAb8Fd%}|U{(bN5p0jdx zYi9aJ_$;tm6|9?do7A|fc004yQyELbzmAl0|hrP3dw};E$_{(?3Hn;!F zkkEhG?Y)BUjQ^Ky{>jY$kohNz{$)!?C(C!4zjb!8bhP}-1MmFB%hT$ep%mXa!V6^O z{mu*TOzq(52zuwocgA+KGIIw2pppN^dstc6zBAi9BfDv;OT4on0056{^B-*fAM9b} z^IlH?K*HI@*9~N2>p@O$!9dQ=$Hz-9Yvt`=<>A4iYGz??=4MGQ;q2&Q=Hv?i{PUXs z<^o{;)h+qElDXOWxVc$4Sl`wEukgQ3{Fl`K9{#rNKP7I|{?TR-xD)@5`*+@d$2k`O z0K9kax=HwVoOuQS&=L*+;II8VjyewjKnnu^ny3HcdT{^Ri>-%;3;%}?-rnA3}BbXFhOLF|ft`ijgS~@;gCl@rf)j#Mfir{ifQx|3fUAP*hMR*sfO~{Tf+vIL zfR~2Xhj)Sxflq_4fd39Z2Y&?rf`E=dgTRlVf?$c@ix7`cgwT#Kjc|bQf{1}ghbV-o ziD-uyjQAC?25}H^1Mvn435gPk4@nIPg!BpNE7CWl5u_hTPso_ajK~tmhRB}Camb~} zJ;EFQeaKU}3Ohs9-o^#9&lljA9&P!eP>4N?}@J zhG7ETj59H*WxeYKNFA>NDA+Q@`DwZRgpD>wT1QK1N8^}4~ZX!Km1_>vN^C7v8}UX zvdgoFu(z{cb1-sPaAa~UaH4QZbAIG(<-Foz;|yfM5Zd@y|Cd>{Eb`JVW>`91jS`F{zp2-pi$2pkL230esj3GN9| z3YiJz3+)J#3!4h(3Gawdh?t2Ki0q0|iCT)5h#rYCh}nr%iCu`ZiMxq6i9bm2O9V>v zNJ2@mNGCi^|vI??^vdeNLau#ysa+mTv@`3UL z3djl?3Sfm@MMgz8#dak~C3&S}r43~oWhdnp6@ZGIO0vqPDxIpUYKI!EnyOl++MznT zdVu<{29}12Muo<`rnqLj=DHTWmZw&qHk!7fcDeS0j-*bK&W`Q}-9X)OJwiQ@UaLNw zzP5ge{+)r8L8`%lA=RiGR5-5O2{h7>d0EiI?4LjM#v`F=EPRSHqG`YNCE@~UD?Un<=Q>i ztJs&?zd7hQ)H=dDnmV>QVLI764LFlJ`#8_KFu6py?6~r~rn+9bDY%umL%18cw|Zc| zPo^e3={>_ee|QOdWqLh&YkN2NVE8!sO!zYTM*1H4N&6N1L;G9!_XSV{1PA;G6bsA` zf(SAX>ibCbG3?{PCz(%W!HB{3!IL3uAxR;(p*o@MVI*On!uG;t!Yday#sd(=AoCMeer-Y?Mk;Jkj zj3mFLy=0~2<`nXjsFd4Olhn~PuC&~A#B|T}ov(^tTQjIL5;9)Fw&2A~@yyyR;;hK5 zhiuF2xg61)np~3H=-lT#P~J+uOn!3#Z9!TgY@t`-VUc#xa4~Ojc?n@jbjj~hr_!A= z^|FC-p7Qbv;)?i6$V$)3lPbfinQF=E)*6tuKN;@e!GrMrQ;=dz)5BvVs?bm(R z>acpX z=C$^+{%HedBWe?UGi{4_t6-a9yLN|rr|XC0kBME4-Ss_-y|aDy{nvxALzKg`BeJ9N zV~*p_6X}zgQ-jlkGnccMpAqL6=UEr@7mdF}e@$HKULIVzUAkgzqah=`|8OzT&@gZbaIkR*NQsC@X{l*BI3ytce^2n% z2f%=b_y}1B1wjdb#DIXpfOs2tpN;?^prQUQg8qAef`o>JgMfiY03g1t0pS0cayXYx zOV`gpoV!~~W@#@?oZ4?;L-UA=-hfOirzvG6LOnDk8BYEvIv!(*IN^2&REm(U})U9xtv`lm12qm&eoW;6jhot^k;x6g`J#OawR4C zdaACR_COi?`r^1Y3AM9oKtegvj{|86NW-7}Nl(G^%B;d-(aoOWh5M;9L3|M^5p}J7 zYu~Zd0)VXs!DvW*uzLrwNV=M8T1*DPnR^M9^4hVXAG2PiV$wbsPjEm3nsS+K317c; zei+b34|y$s4;wQ``6@1|Rj$`3Ulc83X(`?ij#}zc8`WgB=JM0JXQGZ}b#(SOu945s z4m?zBe6CUor`c)}GlQP6-p)AL2s`+QS7!=akcT`AP$53W*7nq;S>NT*i7_*Iuc?k8 z`84*krl@hZJAj-=J2&fIO%&Al1~9vabqGwtM|iSeCo&!FTkq_-xnc`W{}rDYY^VQq zNf|fEijOLWx?~Em7`Z6X3+ET(qNv3W=s5KKTueXr>i%iK+C7O>gH*>8P*z2c2cgNQU zw?o>b@IKWYz85A4Scg~QyfFRr7z!t%*fC<{j{z0IG^1qPJ|=bP0FRWE9^b|6M9{(? zU)9}Ts3tXecL!!f$DQ3XphIoR)0wz{d3CbH)LeKcaTGhmYq3P#KIz{`Dr4$c;i$z_ z39m<}G25t9%>42Tg%sh5i$WhP+~|&&oZY9&5o6EKl^sfWXewbkpJ~&cCGuA7@XMf| z6kdMSg&1Az3(B zwSmIDBe)aR;u#f7LA3)oO5yIW?p-gnm3K*NyTiXu9FPChBzJT&+bJ6yW??RD%U1sm zh288giE-0+JjwPqVJBOaD2Cu0lJ|(U*Jn(`0C9|o?w?Z9kQ8=o4+m{tv?)xz0eGJY zNA@%I-2vcRB^Ib#S_z{y%r0!i`^{Sx-$DMs{p1Bw%Czgk5fTQFvG?S~hKoI?)O{<5+NwUw4VpG4I$O*uf?{N6-=7*Zf{*rLfhMBBH-H5Ts*V*KM%wM%M1C$K zzdW7&?U7^CwixA=e%EiPK0*dGNzord0zLXK5nC<4m0It=Q)sY%CyFxOq{Mq+z%xtk zFf|kuCMgi|J(lj1M#rvF;USKqf?!fNvOqFfsF5w168#(pCW9-<6B>6J33$1^=T!DR zs+t{s!HhiZP)YX8blSg-GU54R)89o$<#1O3 zHx5th{V{5AqoIye)7EEW6ve)j=Dk#$)3_))l=13Tx}y6a??eQ)`_8uMjmM<_@UhIF zWW5DNaQ3iyvB^k$+Cfi+bJ5H5WW3%!ZLGAAWKC~l*`f$aDdnc;Pu6h^i&bBQ6pJki zMp!i5lNE+^%%Ue+m0v)7Q?*4&zr~{5iwSPzo-(w$ZIwj7+0oi3E1tnx7s{|&c;Yt zyqy|9JF`TLwDu>oeD5=aV31{xG!c^jEY%_}mtsLZL=0)B{i47d-*fxgRT#Qx=$@~b zJO5~tk=W+kK)Q6(jdLd=($_93NHsXVHO9ME*mQ1hpS7d5wGooq(8d+9k$hJ5Lz$19!H4#c2=X?!CLcn7-<}omlIFE81&H^qSA}saBY8w$jRS6y~omg#u zLt}p`U32Si#_LWb?hLJ8ELe|sJ1{Ccj@GU{jArzt`{n`M_&#+F6?jhk!^~uKRN-FQ zp)jYf1l7p&vlF&DcB!;ZVE(b8Mo+i66XEtn-jV!zN*CpVn@A474w18e8*Rz$9D?X( zQ1m4kr$BqHQ&6qFtPOK$rM2cLIT`Oc2%1icIQi5sESgO=^k6OXOFw&C>*OC@GBT7N zW&biDo##5xQt12e5~DTi?QC`~sk@c*%mZFUii1U0-h$EO2JzVdN$+T&*{nb==L!EC zpus0DCvhz3OjO!H(Rwi}zR=psoBb^QIyyHCh1|vLW2=~8ruDEE=qS`PLaGmkQT`mmy#d@d@XY+Bet>-gqZ=#z!R-g@n-J=QnK zztEp5JVhx*bvIN~;YkkE+FSPEp|Q6LI`zq&5)Sp6i>b2MvtpW(clrp3z8Pj2!JXJ6 z4k2#b_U~4Hs-8~7vRz;I#~0|aE8=*;)S^79_?Eric>tTPBB8msl`AA{EWZ!M%y=#U zr@^+NOY{by zd;g4w$0xBslcv0L{-K60%J625Hn@=|O(=Ns9$TG9_2f5H-RXCWTl;x3wt$Vgr`nmV z4ukzlQ_X5J=2b>pYMZ@8au4KiVgW0SaT%M-XuEM|TTf?|2!TkswkRX_tz=;g{n3o7MN(f($rlMd{iF?U8J~^O=#PQP?o{vaC)7 zlp-Pvxzf(>6d`y~y(o!8?o7X;>5o<7ZF$1vC~$r!NNa##BV_=t?t+t*(G07t3ACv9 zO-?aV%gWvi%AH+CZ5b7KMsd`835>pBu%IwRqw%W1XX=Z;{=O8dRDD<`n$=bYq)J$S zAc-g1XFPDGz46yuMC7+I^rR|0yoBpg7}FG1kC}WBPWIy&B<|{KH}!Kp&U6;E+lnfw z8a1Bx;)x1?W*84=Q7!|1`sxA)ZC{1j3@5o6u*`O}Ioq`6G;n-DTC;od4PRzo!+d2! z?jAiZ{j0{E)7Wa=nV*k{Q_)M%DUE=}tuxx6FxmtaCW|zjaIQ@`H^u5lb;|&)>P7Ni zsh){a!VMy|d@IyKv-Xx>TO~Za{%9w^lYcK0S}z^JyBIYacNdm$RqGQx1jyMj+Eu$+ z>20eC?a}T(uWv*95_LwdCNmf&+g_DTX@)l}{!m6yXy9<$w~!^}GOMxww%F6Cwvj(Z zr8bG|x0G^n0IsoVDqt6c$jRAi0!205=5`#pm!0cP^`zc96ZkE^k8dOo#@}0Cw-iSY z2VYuHHAC@_jo~>6b4Z~N$_YD-8{0*>R!e0ThwD(7Y0KS7{^DqSvTm`zZ6bu-jP7}L`} zXn%JgTm&wtw_MlUboA7>`;Jh4yp>bldGDL;W9>btfo%6ttMEh0a>8?g~(q&Ckjd?N$Wy5~gbxpIQr3r%N|LBANz?&p>xO zyl*wavYC#SM2W}-kW@D5u&NyC$lO#> z(`a&SU*+~j8bDbXS>jXk#w}SfQ<8vDLG_hcSNkI}eRY6WJ%%-Ti z3^2=%TphHbRDf98Q384i+Y-Nf0`c{4j@4hJS4XWh^!BHHX+D0VN=CPaOzPzA{j#XC zYPA-uQOxMK*`X97J*$WeWycKe&i-KZRXQ0Zn-cX6oWQZ;>fL(0+#_( zUNQ&oOq9dHy`pxiU_q?>*WgklVbNcP0eArR4SU&i&7J!;SY_xYZlWWAaNWF1B4E5I zA4>H)-ESUet5(En%bmi%^2P9v`eSV~qXfu~@`Vtjm5G`1 zW#;BLFUz`Dt8}(K?)hzkEcWh(AGN#pRq@4oLIGmEW8!0J zRo&^W5Q-;q4(T?JJ?Dq{%RjaO9nX59<#y`YUi>4HM%puExE<$#B{A2$`W<%h&i-jt zzSC*0cTZWMn{$6-?m_BQS9Z6{S0U%J)zZ+G?)&awmyPEolh2>iQi&_SR>qO#Zye1e zB$s{CauuAO`3)pAj+m~$A$2{x-@1D=WboaL3gFes_g1JNG*d&t{pGurI5)REHL+)s zt+PJ&^j)}R-$XV_=i8a6Vx)vaYKC$8Ohi$vh|a?didi?;a@UvL%&A9FEIE67ky^)Jz5UpF#8w||!(mXjKd zDa8*7X|ON0drA*@_^7bO8)S1#fOr1WN+aw~?e+IMHw&UtfFczG^^N1v_QHY6$jgLb zrT&#ymobYLMpz`y6SW*XEM?aR8Gd1jjom}{xyo|$z!F}mX2rcJcw0vlHkI_`pk+FK zA)2=NqEhT&J~?s0WJ3Ii4NdIw+1?HdHV03pQm2Sf=nI-(M<*qDP-$yY%4e;M^Ztopw@e%?JnkT6j1&Y%A> zYN)?P4b3J?ES>NUQe~e2Hn6nGDzv97GxP7Vh%E2>nE?Dx-=+o$H(cL$zX#9(ur8(u z=}Tb!rqosL6!ts_NC{bh-kJmYy@N%%c0JIb^`5c%S_}}81OgBYaiNvZFZae(xU9YS z_X#s!Da1S7P9()ENmUA}$pX|iAkcX1kNJaG%gIe7|* z4%%!_jvvbyeU57ZCTCp z2SL1#@y;bxv#QX8rfj@Sf2KZ9)tF7Yw{$ICZ!F)CfraF^?KgdeltVS}S0@DXib=-9ke$OT%R?8*k}<&RX*FGcagw z-X#0%MQZQ+KsUN7v_AFt{PU$%3_*G_hF4y}M5Shs*w2SIME_&y`++SPNOoh%3iQ^Wlt`FpTX{>13L24eT?qv&SR$7U_oMu;+`@gK8 zx#pN1Urkcb;ScpwS*j;M(=aCc`Bs7bfjS zfArH&uI?P|l;?l$t@6JkCkE~>n9M`<1 z7+*gjG&uyM$h%2%qXQrzpr9aO-d&jQ-qv@kg?K+gW58fipkrZ^Q?iRuv2k#Us^L&` ziL1K8ngLC5X(ay3$q4}u^#*{6zvit9YOv528MnBLD$0Uq{&aB3uHuNLv66eBu(>NMVY_fe)XA!#oM#5Sr{B_(|A9uKBpGarv#7dsQqdzH3V zAGkM9d#x`DKpy=aBT5D zgR88PnpqCmwF z6E^8o(CN)YN`Gr#z+49~iOi4L2 zJ!av8Bkhj?rZ>QWyLCOXipZ!d73;(_Q5~- zGD2w)!PQ>Q75<`HSEiv8MdO<}MU2`~l zmJVc>kNMAn*Nl1(8>5ky;5GAi2L&M*FGjvSHmnup$8e{9S*+uF*H+LWyj|Rp>7dU- z`9-vP%2S;620Lqoe;^q3^ZG(t(f33mPtn=Op2d|vW|rkCj}->qX-Bqyh*ym_ds^4; zXwrBj8Y{UN?{)=dskBEX1U|_y8k}29$6tQyrH&2f*CCd(;rDN)+II6kTo0O}JG?$> zontf!evOY)4Zo$X;*#%reEiqtFF>ma?U~6x5X8L zb|UGuvd6x|oVb2A)%DLVM=4_VE^cbtAW8#2Yh|9|eY4T3ti*{_sIKlO54T&A4V@q* zpt<6Z#7Ja?RxfaJX&euYr*;{oxbIQfb5R8V1Ksxhf`zpozQ& zQO*hKtZ6NlB^Gb%m0eiI$_mYB?)DPJ*=!FE*ov|(@^rfS%) z?!RxKKTLCK5*|qT~->OyVxbNt33O zpZXSul*)psk(ddZI}!}^l(;Ta4FnAA9keFv6&TQ! zEPM&II)*5T@>8dMK{mZWp@oY9t@wu9knNXDVd)S~CA%O(9nK zb`t@)X&DB>izFGatE@Jcrjl!mWYda+Utyf#<@)`XKG0_OL|b#qbivXR$A$#_1)U6Eng-ODss|QFC_NhHv^QfRE`ZdU6OKrn2 z;b7UVsGK{3DCjOIL|mE;{GW-dvn({>rdkM|G!qT$TAdiut%Skuc0agt4=Qk|S{JPD z2&XF=|5(_CAiHh4>s@o%2Ckv4ro=C;3k=&LYu{{fR^qirUZf)L47Ax!$WWI06k2L< zCHFxT2X8)1GIry5QpsQesf+|a2vpBQM1?%dMld22dTcq>+$R&R4pXtwLVxxJ`Z`m} zPc`4jQAZMabqY>XyX$}La2JV4@?TkEGN228(9|&~TGi3^T4r|u{~6nzQfJ7B99?bQ z&6#sq$(t(?ZCSXmz^~m^;SWcbXz`N0o8LF@m=d~`Atk6FfIL<2tIJj4ag(OHQxU2e zclmnzjje{|BAl^-8#dQ!C3^8-(z-$KxNKqtkA>KkOYY%jU&Q(v6ecE#sa!0pc8Yy| z-p(RRO_Fy~K229c`m8^Q)u6R_>xweTm886066s@isfMLsw|O3uh6Z1m>FG-pz)?QL zEnB5u!^#p9HZ;4594ad=pW~{_4c-N3oQ5nYZsnV7d*xS{lcfN`i);my%JceIL zaPX>V-RSkl=tSiWV9z2&mtXP6awTfM!#huu zCz=30loZylu`Owv_1pIPNN}0g`XxvG%hN1DCgkoelkHa|gKdm0s$0Gnz7zi^t#=oM z9hm3*u-f?$>@%~0ECgz3DF>DOu4xicll7_#oY*NVV}5W1X%h%!s@q~}sFhawEK=ll z;W<`q7`MZ$wqU|n3;bBJRUNWdp0(5x8c8TS$QA?K(bg6w7?U(KZ+m{AW-jdMt#b!v zZ?~=W+~7&3JGd?G8We^hc?&B0yKH@$6liV$v^X}Wvj7iI?tgXYJ0J-)CLHK9wufUm zt%Ew${bE@L${(dpbB72wyOE^#M!rm}Yl8|yI4UbP<+w7XQxO!zRko%xMa<8x^{cH{ z#_aBvcz^4AWpEl%RUdr4aQs3up{97Z*_8>#aL|91u=HB$W9#afy%<+=`5sbl$LB0= zhvCv#k2;&zn*!FByyNn7C!Is#luAM?r>w!l*)-hE!FI9}K6)U;EVOZWNW1zYa4wJM zT2FvyJtI?=fvXpj-MV@|IT|ZYK+MvC7ZeG5Fli?)yUGLid*5{(2iuWqu~VqcUx_5e zK|wK+(@&@2)ULyt6(aXqzt9Vy}d?^MkaNZi>4&(RIm$jcq*^L7t`8-vAffRUC&lKDRN)Og;5I2hnq zVjnUqqn_&tiWQR61UMk)_;@?GNJjhMLk(`HQfJ|k_=Nz$?kX5;X-H^LR-_d7Y{zGA z-LS7ovLrp&$^L)@yRhBql`R)|JY^XjVPj3uh95SAb5ihW+3L!eWYWjG(9Ukv)sxiI zNbE3Wh=IzB*8qpf3SA^`5Un0P*8=>@piv6s;IJfGs{B*Jp{^?D=|pJ2l~s?0P;IMg z!ISqe)y%*}7Q(tczTMp&!d5}nao?nW!-_XyM6Pcb7e#+SeLXs}Y&S$bY2sQ|FF2oG z&EzW9w!=rR;(4E1hEPGEalJzIW#!Yh&fIJvs`@C|+}eOz@rV@rjG+#;X|mG~mZt0H zZLhsxVmIhRB*)&>bToo>SJ#e{yc)yBTAwxaSgL0QyTHVgm?pS<7Ul_|r1Os*9T@jO zvO76tx1WBt*4q}EF$y;CV|;F-bsC>;m0$S~ZKT6ygSvrIM#Xf;;9`jwf! zNcha{_E5~%}gj3^!_ov$==cH_Gs9jlES$MK1X`=RJFbyQDo5N$od{Vi&8PDBq zXoc;An1I;R#8JoTqcmU@9i6U07JbJbSISyIc%z_76*FTdM*K>pf0VbOCi zQRpu39OE7_V1}#cVXGa{Y9QGC612Z`dd93V4VwQ%a6vu4S z$cVi)j$L)+6>Q9>fjL1&pN}&(r6lajLTCmNmYHrHxDG9%wsz?S8wTQKxJ6OiMGfu7 z=FzHYJQVp$6h7jb(MTfz@Q{sa<;FVgb9f{S<1TsJi?|U#e`chzB8VJnTgW^GYGt}N0lJ?0ld%2t1>v~hRCY=hBrOxzg9nFH3 zNd_KpO$7bD=q7g$+SL0pMq42`{eA&Q1zE4bfhGBUM|=B~ZnQYpfl5K8pGgBKh7-B# zB|8tCG^dr0MOD9T^*aay61O9#k(ch5$3r31ALm< zca=E2{zlqx>9hXMSjJ-Q26`M5UraI137a*VjHY}si*52)a=0oh`+38tz3S5}GZksZ zBUyYj-yeeGD^Jq?T0hCl>gwoMXV6UbHN(xLkrT0_-KeXqGvlT0#&zbl{a#;)vdgN; zR==u14|QzYkvNlaib+pz;(^jCaZzssNcn)xU!cI`AmO||q%Do2;Htn1!lD9JwAbgU zozF-dZz%5$6A4&_rO$g6P#aDZ2xemH874H4ul)X1RM3%HxG_{#k!)mVOp^gK-U!VT z0B0@6(nycuI9G#Wa$==9LJ_y0U(N0R!E@{qQ)M`ocPK64S*4K4T9X>dO&kxgl&9bs5ydfn1<=Rm&o`Hu#}h}yYfN)$qo-%eJg+f zKGD7}H<|?vs!eEo{m4=s$<`-49#}q6!LTNWsz0T2umKPB$eC~4-BwP6uKm&67>Fuv zXgGD>s_=M-DaaYSNWVl!#TyiXN@>wg~G70Of0+T`IMvk20&$K z3Dq}RQj4i(tk^%*&zQnJ2;lvx9=2wW1g@_GAG#7dE!}$!Z4s?cJ+13&((~|~urK(c z+I<}3vfuqIyMI1as|pHi1)Hal(yX_+7H`V@416lvvvyc0C+i>T%fTXPlr9m&BY~Qm zxO)}XiEr+!Ge+0kYGDo#loCP^?&+)AC%FT9Z0r8Kte-T!9 z0I!B2P(Dy1Y-JGc1u+jKj!;*+vjq$_j1y-XA0C~JAWsq0^T((XLn%>zEd$zr;}(35 zLh{g!_EB2=VJ*CFW#ZH2fLV~XwlqLZ82*&eT%!a+9+2Cg-kMf?dMX!XZz2sXu;^^0 z!7nF;Nf}w5le|DNG<<-EqVUPj9h8bZ4EHI=C%0b>yZ%)(1*_tG&qo#=g)D^>ziF+Z zr=dDDNe`)jyCtOroyfi1EIK_3#??3JSN~(7DUu;yAGr{1<}Q>vAh-3i!&;924fxkx`tb+T#+xpA8uq0qN=Iw&a$q@Sdz& z!6%wA&2TiUG=yT0~2WHvcy z%mZUa25_}W??B8(MN!3{E(VP@r)KIaq;;<>K<9GAawOh`={kvX5Sd}sx`&syv*_=W z{*~U_qg&k?zrCaJV5P@$M^48rYZLxH@v9z0UVFTs}w*HzyryDa*OI?MJ zz10HMA5`W&17Az@p|ne8wVR4l4&}`+EVttwS{F*@oSq~`!&Dnn{h&$)vDWNEvi~MgA_lAA|Gtu%<9Jll49^L4ZSwl1wLUY!4(R z$z$tm26ABx#Q$gkdVsiJT((1!z)v#Bv?X1Dtt2Yjy!1Hs%1^yhSoX=`^@ycJvXz>6 z&h8&c;slMpj%oEn(b-Bs4juVC7GGb@ECX{tOxpbP_jm(nP0QVE2#MG2@PFIM$(kE~ z8JY!0Yj=IRU*{)TMEZ!t9EA#lDR){WHp0^Yi6Y}2Zk^DJoX9$we?Hor`K$sgbjzkm zc4A-+mn!2QY;w-d2o^Tx-py-k`*bKI{70b_fm3%|nv=B9ztOyicKWp2wab?(N}AD4 z(Dz~#@}xb$b%-wK`c!7)wt?&0)X?}dINgC7d}p14%0%|9`n#fU-TwPvzFopkX7^Me z>?cPeXq|)v*PN$p=es$C%2(YK#bAH}QYe+5Cb?UF)jwu^u`RG=oo}y92Co|U&^Eg? z{uGA7P<-i<=EL_>*VRIdSO8B*U~B&|5PPIwoW5UDf*X`^`PkZPLq0ZY;Zi89k|>4N z#~0h6cG@CLvS_RVpVLu|r543&X>UBPP;Zb;yWo=4GpjtCEg&DklXR+g>qvL0Y6Kp%?`4m#4`!rR0eNvfVCm0H(0I-fg$37eWgN4mj{uIzCcNgI9!Ikrno zIKjFnwjW^#+x~1-qF1^)%}UnXyVe}Gq*G{abQMWHQ#WS_&2cDs#nM#G{b1DFZF=^) z>dYaRr(Fb&j#|#&{^_|8_O@HCtns8PuQ7JZlRb0B7&gDSzp~q1QvexnrWGoF5M>fp z$^9V2emH1>?K&SdtrFvV6-7>HtKI?Gp;h1fZq`cZT&9IEUMp^t3v?z5UbsKwQBbz> z?T##;6VffX&R4x+m6ha0(t^wS!(x^vO_%uByLYhdjy7#);I;}=Qx>}qZWYS4yq3+U zw1dv{Hu5E9QWMVey|#tfvBs-X`y#dsxv^)l_JGE;E%XQr7 z$v5T7391L!a+b24>-2b%Ch8Ce1GJfs%u64*s6&;cA?@JBenqw_j#@f z_BpImeW2@=$-_L5q%j)N<7f{Ru8h5~V!h$(1(EW+HBnx&RF|^CXn7}mQ^^YDZ(mOm z$!0B&SVI3*9^g^9RKymM)n-7WS*y3KG{wB>Xp)T=^LUo(q($kpmW|0!C!^s$&q z@U|uG0J>I*v#Z}anlwyiJ3;oFK?35y!?$LOxTlgn1+MF{FxuoIIe$9NX>1H6e^;+~ z_c{lir`B=-{=ja}!yLJ+4$2!bKYx#>mu?dFX+_WXAtPA`#f2%vHd*)VM$&zrc*!>E z4d6NHcyc9a9i`(GLm5LG_JBl0<5;T4#^LAMoKL3ar*btL_*{C2Hj|takNn{=yfFV6 zfyu@)QGhwG=5wjxxXYrepsLhL$c2`!Zgc7h2*o*}&M$2jWWXVv68%fm^Qd$nBBgnj|XgmBI-=A5y6F;VIpd!Gi z*0s{oiBko$wn;MKVjyHu=D=&)yXyO5VukU~Im?rKcf-+0Ak*zGyr#QYU_%uC5EJQL z)UcZPr~Lc6c~X;{&!xf+9>a!lt%bklY3pXj*itS7Vmu{VTW~?k~k&1 zQ3Dtw$Cd&o&K400Jj}%@F~V;Xm$TvV@UnW1IGjLgPa^besw2cHdG~lt`ngnyU1q&z z4H$KlZ~XNb#=Kd(7yNT3s)Na>{T#}uc7?_~WQhqpEXsElbu=0^Y#gvR!f)}@I`UnI zIxmIiGq*y*0o!LeC9&q8syv7I&71$cd^CL@Gz{!?KgdPv40iHKcB4X3+ez;_oCF#9@tdT@vAUVSZQL5}f$8y7#`b`4&mc7B#eV(4vGX zYOjRe#^jMrlUQ zq3#--h$Sknn%_GMO~s~RTKB^|c95X5JaGUn~EqvYr<>i7S^An zK#~=_cB6d?iee$6c!Y)AY2f#lvgFW&pA?bg9OMr|=++FFIY##Syecy%@&>@&E~;rz z`-&b$RfWy)jL^yOsKT}3c%V5!qYpI-F9j5sE%m$s-fP!QKDppa8rszSO41>iFq6AXv(Eao~>%g z8db752DWk;n>aS(_!H22pdDE!bc%2nW7@hYC0DTUUM9M zM09WEekuFNu)~aq=?6vVHM*=q#QUocc1sxf=Fa+RanW*0;zFyUA&ljDr9TD>K=Viu zI*k(H7ub9rz2%De_o;lP0&{3l2=%_DeGWATe+siv=ocN{Zx7YRdZhY~mTXyO{PF~! zI#mn$u00m@hB2b(r}L#Wg+_1;%W(J!kmu|6@({w~X-R3N28_-4Tp1z2~Bgh#ESFX?m@TfR&BGhy`aH=1kk|wfH^Qy zEcJ0Utn#GX?rE%6ngs(UI?FGmEIxNcTLvCTM9x5O%>n}AJ}%8o&Wls1WI}@0v3`>an?~auXO7pX_|-(sy}-NHVAoOn-|)FQ>@;D zB(hIf-G{dnd7rk8Hoa60FKD@2&ArZIPia(-LQgy9B`^jYhV=52$rCskhG$nk$+?v4 zBLGLOHsXz}qJpvA#|ti+Tq=3=GA?ylkgc;01>9Q8!FU}jyq*=d#nE>2=XUZQFiUyi zIu0>krt8D8@3JM?ey?O}6q7<-^6*x&Z>=$@z^S1|);9i1kojcW)#CS3PfS10$*>Zm zq#+yevkvgXD4~zi3V9*jE-3Ol5@)$sfygp= z@HpqlY;j<|O$4WWS!^Sw+H;m$QT;)Yt`Dmp+;Srh?a%LB8m;zQ-od{DFJ2@kF$^lreZz0ny1-xQxdh zyC8>&j1D!RZ|{1Go~`&g*5N$3~|uQs?u*sJByn@tF0 zSdju%G`d62RY08o*7l9<*el??)|+y8rX&_jiPPa1w+tFHV;ec_Oe4EcvuUzqk`5+h zX0Z@0pB3zYPm-_nJ+0dFt7??C$kS5og!G`3lID8am{Z+e)}6HlMe>W?7h^#gyuzM^ zOjz06NgxqiDSP2oDypSlXMQ0rl>7y!#ucuvgY_`OB!8%iGY{t9egg~z>9iXuRNa>? za`BT$avEBIN2{RnwX9_~m@nAy8H<}GYT8359ya?%Lmmt4%_nq%ZmD;}Ud;_=5tiKz zHnu2oMfR3Sr8J=03U^eC7cL~QQDBV`{^YElClaz&w&&4F-2YK?abD!-jJyt$81mc{ z5jw6U0gb{c_Z-GQfLzAVMEk*(jBspxRwltRnk$FZIJLc)`xK6|uAoh_h>?DRQtIP+ z>{RKP?#wt?Ec}9`3|v>-;8JH0y1CD8X%`e0IIh09KTkV`hnV~{%g`v}ZWzKd(-2lh z^S=R%Ky$zJFq!Z}2-VAu(^W|);-uis=T(FV>U`5-#2#FeU4%BV+TB|M-~7Cn-8a~8 z%}ZsuPN{}iK{TXpiD{-{3NlZUt|p$2ZN}K{M^mRhp4ZWaSExz_>y@e5uW`KCJc^TlZ)pSbuw1SZk~YHWzhRhvYCx`+3LXXx=CGNrbHn8Ic*VWAux@KrMl zFcSy&DWtPS0sO*sOw48Eni1$)HiL?qY?~R3Lv_XXa3Yo634XgK1Yx}NMn>wdB^$cB zo&9}{aCO~n5yXrLM21Z+EgUrowNK*O<8g-WgaJ3?XAEwIb{Qt|A^t-D04TkqcGq?A z)O{6&t{7ASoJ8oF04F3dIoo?E;dgu#=^LQZ1!Sue1kVjm#Wdwf%=fSLv47eTG)|t5 zWK^phLNL>srsHFDK+aQPmU%d?r|)?0Jd>e~>$`PEG#^~wqGDtp6=pEERMzrFZ+n;{ zFr78d;dI~s0B_YaHM+hkxXB%DmS_TTe6IF&L+=%)7ef0;Mu5<(M;{d94$XDl)vjIX z;qKMfJVP5Lu9}WZ4ghMz>^pK#ke!auw?m@erLE5%k?xpA5GCaBGvvL9I0x_1**Ch8g(!?J`?8BR~b1b#a0z6SpNWq9e z#C3V@n;cy?D70?Ruf;Uuc2;@uf0-vw+TGT7snfFNxtz^aJrD^I<&bQ@hPhc0~6;sia}&ol|K z9^0s6nq$2iU6jPe>$I|oH&KH!gbDW!q%SLisnq>073i9kX=XTp%3*@IX5efI<<3nbiX*5JrUy zi4zmvw^B#@kNI98f0bEb_^#5>3z~YeKC8#qp3_>lUWXTY5miC)H@^%V*Q0x#lg4P_ z7aN_@+R?u|jr3N9)1K{A8RVIdS;#IIPK6mnnCQbj9QdOJ-BrdcsmgZmO)W&1Toe5x zO)(LaY>hpqZobbBJ$`)En{4m{F4Xfkc$C-XtLO*k$zs2<+~aGaIfl?KDy89iwvbP6xSuXUp(tp}bQgKQw1Po6CEZ ziynJm;BvIYHhB;5^gCvpFj#aGHc}(QSTfz{OMQdfb&mO9uP z8x*2ya*Qv{eWL}gg!K<4VjX7lK9E<)q8mD#mk|ajs)K2%*&oGc3nV(Z_^-4a0CgYM z@F7?nE*vi-=A9oD+HZNJqs9$iw{mgEixlTn=n)(!4@g3GD(1g62mnwiF4hpmun3MF zviFY=R%aL$YJ2R@XHO7U*;?0oWt7F>sC7ErJ5BOl(4Ln49G7U^WxbP7v9fx&J)Z>j z+hUl*oe(V}FhVMv)cQjhEcGD?b4_5T#;s}n$}~Bh*6Z`WXvsROD73|%=*_#cJ0o9t zKM7xE{`Rl5`au0QM-=XY9aj_Pw6bjUx9K$0Uf8*U(@rrz9M!3@J3EQKYReOQOyVB} zZ1`qh{-|-#BR@ak7_$e7$$$nqeqzv2C^qgMNYwk?fy3g6ot%Xxy)Ew&Hot{~ExcD` zQ=l`-RIu*CpO3qR%E^v-$hwv0fsbqGxL7lC5CX0llg)OJ`{!gfM!xzo)1kNlertZ8 zWON(jsa&03P%g55^=W;zkYN7RQ3Kb)23lMu^A*JBJW)kW<{wS%qQ=?X%{z zX-1ReoZ)8C#N)EzYbhT802iK-ksBSxS&pQ9lIIS5$m?lzIc+L)H!Act(vf9ywBp8_`<90$N9je=0(XrV3p!=oq{Qcp_pTx647656Y}^(R7!FB7VKqYwm?>3rWqnkNqr6q zLt#ov)AkaXZlUGKk{+|8BSoZZKD1gMizi6ZG>=IdK^j3CS&b01M0!{x$rtHF5YMJb z&b=;}epX~3ryfrusu|`psW$E}DuuO3N?rpl>C4tB=*_gxk&Yu-&}qDsaXUiaRn|IK#+}Ne7(ad1fnqn%Yf?{9P z9+?%SPx0h>&cOuy2t24Y<%uu-6j&#F%3>63%b{)TH~#?Xf;6G&dN-tK^`AtGL^fCc zco-L?ha&9yk-pkn($E~fbueiJYquv^9XB2>KSz_tYr zN;Igq7E!XKS(GfpB71@V04gLuE_jl{Q}8|P{DrtT90|>xld>FAZ`zNV7)5S!+{3LV zj*O4$p#*oCm8#Y?hO0^#wLeNTqyGTGGRqNy=hTR?YLU5q9KDLMc?_&;m1ZE(9`vsz z6p>9aGNCJ@LP+NVNw)Z@eH<$A;ST;|5;lmm4Ukp2qd7^DC9^H$qz3DX*fvW|3*{LM zr-6NySkKEM&D$j;%qia}6y?*YOqVPvvO;2=IG_0;*qf>#m}?-lq}9J8KxrX7!O+F` zCg{}{P>O*q*ypy+3}}W$1Hn8Jos+V7n}`1ZgJU3C#;?%WUZrSAg3a`3MQFP+Em9$T zKI~8dAvHw{0x1 zBO|6#Hz;+Q&5m~&Cj4Y48}$h7;;Q=!JcT|O%5y#hZ1gq|QKynbS#79^brc;|YC?S! z+y2r=Wc&&%hxvoccLb>5Tnv#&>xN=Vl>33*i@CQbaWh;=31}%t3GBwq_4Wa_r4n1V zR*pl3$2vfcz|zDqk3#gom6#%ZQfw(0ur|#4AE$9`#?R{nL#eXN5~A-Vf`gSpX&bb` zA~rZ==Z=L#qfN?XYq%oeH8-CI#*$6!VY0~^?2&0^q6QO~4!C@{k=3Q;?p9J!mM8fP z08F9+xRg%p&8M*qicSeez#@TpWeLTHgXn)FgCjJ1$m}TNk%<(XrVaM|mn6AaT6lpK zneD?7th%}l%IukUTaYTFCy>Vp35SRhlb>`pO^JIM2IEO$q#gU~MAxzyof<~~@N>T= zeYL$J2>$@abf$*%#)#iYCFq1s#s@~Xq8#kg{$$E}a%{;-@l?h{p$x9}+nMyApX6LP z3;Ppd;81cFj02IahkOgRJ8-D96$xiYu-v)Tz6^7~WeVGpVIZ51gH&=!J;()aCSJ%< zV}u_rH zL1D>7867p))`PyrK!QQ!y6NgZ5Z+u(P<2~0<_Hq;+-`Q!)bPor zFZt-4l9gd$6n8NzCPdtLMife#!Q1MmO3cGgDbw?_lffZZ#>8YwBY zg+$oo^3SkIaf(RWEz;0$NhF_0NToTv5OBBj3epFpYnAANHB=cl8%fee_%_wQqsllF zK&O!dACV$>6Ihyk4bio@vz8kd_%e1v%MMP(CnHW)EU^*Lu9GFc5%kEBm=0X%%$DT@ zmQSzB5${>8gq?}~u|4#O+z5qD`78P)c6+xsXMI%9xX(y3+w_EvxW95-O^8x{I2@%R zRU*3RwvX7nuP?xZq_(fgReJjkO{eS-?4=*FMl#++D}x@>AMDzwOiOYfLT)5&FqDCL z{!tNFB5)?rvt;vonA~$Y#t$rS${0<26DeohHSUR*^u+mDZ?iojbe&|88Rp&u22C#q zNNrJu{#hC};s_G2L(()(^pWyPf$BvG*va$}UxN(a@)L(8C{Zg4<9ZyzUeRx1BOjoF zKiHTtvyww++w_QA0Xp{m83tloG?3u>Tl}%DAI)|u_#w)pAYIQaRGbDm5=ezAa2pQ| z@L}AVbCPB0aD@4Nj*3X$^1C5&J`#ky5bAFUyJAXb?4_>PQ&2iG43`4bLCIW+Gbdsc zis#K~p~Nvh%CbvEn$fJ4xku$xA0d)?nYK{TRGb~>ak%ei`H5Es==d0itsJPH^ZW|@ z;-12^RHk|rh<*M~40Kf_xXSosN8BFfG3pM9I--t{B-5BL`AMb{6!cpAT_NfMk(_I^dh7F*N5LZVT`>+9^hp zSZ)&5-L^U;*Kb87n3fWVbQ#2>v6DecHGcrouE7+a2A~)qBdMTzvM+p*_3S!3vu}`sF+Fp7dH$1n8>;WkmHdJUdG9)gepN;ZAx1E zD_ZF|UArD2T0bKd1;b7rz_66<@v<;Bi+VCAowBJgiSj3F>dF5AIEf*v4JG*$x-{*! zoRFG{LNM@V#Pa!4cp{shanGQJ=i3qtf=;6X=4~LI#0+)s&Irs^1kKC;7j~M($vahXCdZKjOS*=?b*Lk>FYKe5g|au~T#-aACi-pUq}&`6DEM+Q zoxU5)2$8rUv2CxeN+W&t&E;vBpL7*!U*KUC_7mMQE-BBKf)$lH6(uBW?2JowQ?t4# zP8rEmR>tBKxx}oBt8~9P7!`_ZI8Etf9zap zTF^p~-dg;NNg^OM*h#q%m^(27j)y&NNK2;10p2++-ji^2KVopv<&~;&tIwf!MHJ16 z(pnlIWEG-~CfZC0xkG&-$+us~vB>UyB#e@%Zu>{Fd+9xM*xRH}Ea^YrW8m$r`VcoO zO}a*Dqgzd)@)^dj20s1s_#BZ%CG8R|Yy1VvAP9qOr`?fBMj@BW@Zg@5w}m_wuVT%Z zrS40Mx6%I5*pY*6QhkV7IbLdpnsCsQ;=Y+~&GhUa(8#;qMX)(Dv{b)>2t46ovm4^J zV*dbg566b(#9o#;~$iW;NuzHGMHEhp-obCqE^v)FJiS6OW;~P0|eHN1=TDhH4*<#7CqjSLE zw04OgM0Km7&XUXnh-6Kn?NPbBwjKzHrc?g_D+3F3ZtlDFpJ24fPvLy_=Ui3Q0jO?qH@VYXd8*o$|Hs? zB`K}MyyU^|J|TsS_9{3sa`+@I@rXicY@l%?93^WSIFZRYJzY z;u%sfQt&6%ZIbrM3H3`MkK{kLhYkD9^)^4=fIV@H_*N}l+3hA1}cS9 zYM%(R^BeFp{7TASkZ7AFhKnPXXZD?v<)S;dIPT&=+2z87L}Z=0EYhOA_dz)3|W zG)qate!`L@7%RiEO*E{=v9@slSRv#-8YwoCC6;(8?wU&MGH@rbL%t`&SO-ZGPg)_*% zh!qsy1S`#v78jZ|fXNDlU^9~y;AD|r?aEJ-K*=0P$5s)$$;jhHRCw9)MCbZhA@Cm0 zry{2!%V3$`D$8 z+?SducAz|4o&Ek!k!&O2CZci3LTx3-Y*4+IB@t42EIRw&;BQ5u4_I0 zf);y|QG$6BOKj5a`Q_ko2G@k*M9X#qV|8hi{{WcKS*ED}07oVQM=kaY>V}lF{jr{& zvKABwW+NI=%HT)A=AK`H?puVZ5ABghj81+;OLXgkX4xV`oAC~p?VPI>RJ{2iB<#~E z?j}AXf{Jz$6d%>RYkv!ZLWRr!05PXKA7kiTnNtt^_!AOfOP<)7932qWiDE_0kZefs zK|^~GLL+j8gPjo{5=$h7Z5!jGX8Z|XB)A>8=fV+9V@@$70qTu|GYrQ~p%Nw$NmE97 z6P=fG>1@NyswhlI_e26oss_%i%B!9zi=L^ub9|oIGpPtPqW~R%kYiI!lmvbBq9=X}&KAuToy2{$kIC32+DmoEPRWmVH>BmH%OBOOE|mZ73N7OHU&vN$Y>OKzbHD$1(o zWpWrP6I>T|?R|!wV*4b6Cw|`hCCe0s67oNRkg1fp?Ufe^@^}-i6p-Ud9#JJ0Db*1L zkoci42yT7{8XeJs#=;Mep?(MR8MjjDl8H3E(w<0ma{bWe-#PG72-90J^<>F}>}}3w zLz^A6*`7O%q|0$NBU2|^$H?Q@bII?x(lz1+=Q2oc5=f>l_-_{oQ$*Tw(Xj%J!c=T3 zZAAos!7aO#c0TxO2u5;IP6)-)s#myZl;m+intB!_stNb>>|<)l!;Jp`!O)z`az|I# z#Df`|;q7HXQlh=KxgCj`VaTe@wM=8;3nSHLgk~+b^vICPRyejZnAyo8bIU#Q&$HN8 z31z01Trsb*rBcazOCpzoNyESBNW&LyNd!!z8mLQ>i7-oo;IDCL>J7;uOi-t9V_`t) zl0>nq8r^~+<)vYJnfr{&o>%O2Qr(C0AYH{WAi8GFnTlh$Pb}Mc8U)5(wJX6K%1eY% zR__RIuAK!3rJSl9q8|qMEDQmWw-YXTggn@yTWM4COBfmQL2@RCFnzE!2;7p_r4?PL({V`!bk2f7=l}ws1&C zC}_%PTFC+y?LUI+eOER?6zM&X?1a2wcAtN!fzb%^e3{l^W0H5UjS=@PyZ9Ih3l;7| z&Liy6?XUhFcE@Oe3FUbv1nkDckLrtebHc2w6 zm4PF2>+4P7$f>=wWC;S5T*a~&?+|WbB>DveDP&}Y%j9Bk)H2fucw<_38cT&l929J^ zs7TqylOa+Vjxf)>m}CY@8cOJPou%`^Va_XOAH9WgLBSyg?h=xr;7-X2VscT}@N_mK z)(DNoZeNnW1wH9-x@G5xn}YHuP;E)!23#$gG{vF-rF^Ul69JY_Ya-Rud1gfDh-N@q zF5d>z*d+r}p$hE~^;$^yLL&#jgwri4ydrf@(%rsY@U|35j?N0tH($x)Yfkuw2uu8& zkl>o8R4GRJGI%#O*7Uh7@LDFB=S1Lq6G&WzGDi%)WMNN|9QMT>pMDG(vBFYx9+i!x zyFHNPhr0g&FYq+vnmk=No(LrRl$DnyBEI4zYZ8!AT(&IN!HqFZ8Bm|ZHbe{njbhx- zls%Rs5uV3+UgqMHmF!%0luI_%lt5>?mIWb2Mqg_uQ)T3d*l8~A$Sh-Z8lgTJ7F9$n zp6{_oz%qE6k$NT*)1LHu@)TRJ<8NaXAm^c?_lLhNwxOd>Z#>>!;DU~e!GZV`8j9%4+b4x24r!#_Bv zlDOTDcrb*@n9*KDKF|OqKG?>w_>s8|zBv?$!=q-V;T41?9@n|{A$`PhDJ!G34N@lT zvO>*;x)`S%+JBM6mQ<`#@Qg6Ca(w>)WaqQH>V`?}#3LT2!O2N`c3~%p!hSgz8dfdu zJ&sF{p$U`B*ET%O1f%?yX8A5CyNXv2vIiu>ECQ(^w8#?+`4NLnN@5Q$$&VQ}@8Eiv zfo!%Io#*f&BX8WBWNIbCWjhhs5QFw75SX8M9227>AtnY>WVyXDLJYJhbUHjAg93dO zWRD{lvUUx%u!!!-(TYU3ge8ThuzFf6f$IYc4e-WvzVZE@4nq5%IYYM-StRy$V#V$J z$-`p6sS6UY_aou47R4Ic_8*@2I3hbEOAm4tS|ds-^i_5^Eq*x7dI7a&5ie zsXQeut303Y`9})~Kd{0Ph(p5+?_0WU$vEB7weDX+|aZwyN)O5n59j*XQw?w>5FuqOvjP5r!R5Z%NZI@iI(q1 zehh$_Q{YPMh*@KsI}oaQ(i*K*sfjAOJc!)@>^hu#4V_X8TwW3VOpp!9CQSR845w}( zO2tYgoLj#;4h{m|2170P1yq!+w25&oPnP&Zn<)r_(&#zivuICobrBRT#A1zw#*OqQ z!(5rjy4T327lAkQHBZQyx1A`6$ub&@*&~^2Oj!1z(yYQBh-%`>A*Ln~UW>eX3ERrS z0q|Ht2JuHEu?dadB2!7K-tbSD@Z6n--6pc7M6_f2YuMSW z<}}}L*j5}@2b z`3X2%7mS5bP%Cj^1l*oW*rAQeXlchr-HQ#!En3m!Qt)g*=uFVIER!U(;NVYlC{K`Q zk~kY0c~}=_;gCalLyrdW)LqPQHG^Ov5d`^Ihc2SXmD-iE++L(*mA(NS8Q5x%ZUg2p zTX1(2Pw5LuqRHH*e#CP(*qf!K!>b#j9Ru4+qK1nWx zAjK}U=HIcJL0{tzdNy*|Az0OkDGFPRN(AUn2wj%JEd~@xhY)U)9KiWRIXszLof{Td zAtEVDB3epJAxMPSQec&*Lr-zyI3R^MJ1QTnrYeNLpukHU$I+#sb90*|D5RxMvFtyRN6YA~)5|Z2ikAzq z(F4an^^ENP=F^N0ZAjWW^TV#@Uhi6mT|P<`h;~*JK{U1!&kwL6u}5h%R^9L6gh zs6K`uRU^dQ$qFQ%a3Rje1Njk*8E^jp268jd`mwCcs;(oH3TBE;4MS<&LubNq*(>Tq zikFQTiEYB7MV3=!`Z^OFE+@mLKrfT)bj%t`(_R8J7Z_quFZg6fQ^kL>IpbUK3>ClN zBTGZsFWD;wWD*@c3V1F9!>!GXoDpJdn8r_Xo{J<=FGMdX*tDlQ30bp9OUR6p&W72v zj$+`3!+8IB+C6GZ7mybzK!%%*jX zCj;i#kTl`gIWmrkWpAPdeLH(W@B!ypl19{_M7hmCoMS*SWJzS0%7X~LmGUO=sp$D2 zTUgz^G0sE8`5Ouc>}NfQYlO1@0AtXrCCKs-mL)Tq5|~mceGE-@WHYWzK#It)xF%G{ z*3L`tM+HdO8k->^+B#%W9>mL&EyylNy@ULT3Q*U%2qeOO1&gAhM*I-n$fWAVItU6x zMIu97*=UNh6Kl#O;)IVnrJY6!pUL`+{JjopfBhF75<|q1(XQ&B<#|Q;q>6YF?J?MqeDR4YWa6~by7krT{QWGBO6Hw$+ z7-IVxO=OfLid11_Y^Xvw^3l2&PP<9$!fz7s6?3P&ckAC zNtkD9p2W$Hw z42qK@ z9Hq8Ne2HZRGH;zB${Lk?lJJT5GbHSZPdF> zqh&NVmeD!IWNoG}hVD(S&vcYYLr-K_Hu=#?%14><^sjcNBn z3c6#1v5?_k<08tk-dO^8GnKn4VM3%!n!uve-3cmr&`Wc1WQLnV_%iTH5QHJmL|%|j zD9J4?9xU4fI6D&-7BV~BN)5!{KE<&@q4+SQL_qo(Cy}a06Eba|V<`>7eV-%PhMwZ` zOg4O+13RP`Dhukem;f5G%2lMK~WAJB^%;WN9?_B9iwB{YnlSJ5l4u1TC}oX5KCr zCvfJ*$#(9aWR_4PSFs{7VnXu@1<|_C2JVHMf}pRGqR}Mgjzl5^?_`h z9tn!EL8+V#N~Gb7f-YhR{FvC8s)A7K1{M$g5#zzh>_pNbu|?u2`Gl-u=GdE*IWZzd zS{`_AivU|fbrCo>WdwIG0w=-yf^e97v?;mR%!;H%!Et{Bg`P#&<&ac8gt%Rqn84j) zNU_Y(TMHt?Z4)gOWE)^=9t&-Qp8`cXL_P-Fkt1s4rl>-*$!}t~7>%I(L^H)e(swv8 zhG0^lQxlW&L_ra8${||dYZfD`8mlEFbjaBDE-s^Ta;$^)WJzxf?pR49ty zLLTbO?9T-nV#EkOawb|(Hu4l&oyOq{dI*bF#Pp7&HWGn&aygD!#2mC@YhlR@TOqy9 zgo#0sDhW;4rIHm<3NFS>aB@zB++dc}BVnz|B5s7F*295y$-yN44{`(>!A(%DA6k>vyinr7*8OhXc~-RwjP_A7M~vWGWh zMWNPkP?-t2*m)uDgp^j86SZxlQYCIAfw~bSn3)SCh824V*x3v+v@|55I4WiCB%TU^ zlg>vnCj-h)1E&ULdx^P}WNIBUn3fg~5av!sIcFgh=wAmiYNG}vR7C76Y+-eh(d%)957wn$OFTj%WOG=4J z#>65;NiM|_fB(b)ClCPu0s;a80R#g90RaF2000315g{=_QDJd`5Rsv=!O`&H@gV=& z00;pA00BQC!HA1ln?$%YW;pscFw`eMK#MaS%We(K-ew@U6#*(5oXS_wU!mbDQl@gy z>*xmMOzIszhLA2Xie`ULQ{1Rz+(}a+A3%YLhE{%xZWu)qnx3&L2Qw&4{SbxRVANP& zGMkT5+`vNOX^lFW<~B013i=U>sZg824gCRPUS=j+oBb4(luEb|CjS7=skEq<^l<_c zIg1D+WnvqSr8o2?=jbfVkkk+e3Wbrv2Xcm8@hO?8W>GA-lHWp^K_8{6j=qP{bHry7 zluYV+`dJZ_@hVf8m6=x>`Z@Yeh~bEFC^H#T6Y4O`GRw5gsZP;^I<)G40u20Qs55rF z!YfOrVGvtxUsC=@J4i5!lFc!>5Mx9_t^pD(!k{|(Lh&_7l`GiOic5CZa-Zej+Csfw&h_5+tVO6H>`e zWfyU81g4_leH5v=gSn*HD-c3E+$H6n*_nN!E-4b#)6-I=dj}D6z@w62f#-;o3>KwX zEJYm5CSg7OF8+fHiIkZ1`aedc0SmaegNbkwl>rzPDrqU^XoX9tz+R$2N|=le<7@OH zr79N^E5uncil%;sJf-(EvRo9z?rl&960Tu40E)N-7ZBVY#c)FmuD`SbAUGxuqO&Qv zc$f5VP^PM$Wt3Sjj)_q;KTeefK_e6f;t3xpl`p@drAmpITPdhcFVTyY0aC6VO(hbp zS5nHDAQGjnD3=Bd!c?)C<^Ycj` zWQ`gT@(imIzJfhOgNl}JYZ8*8yhhoHhM+*b$IdVrzoig>IM#iAu8#&-o6m#7FVEx_>^3Pl>fqsfdB zooYS79gqwO!Df2_=>fMoh4NU;Ipov;CUWBwz!{86@LMvfzW28TI?ffD+X zoOY3v6>rw6H?bLc$e7+NtkbQFQKWeGQ$X7BX_A+h&?`n3S~V` zCP}snV1@My7Osg^K9z_T+qI{y!{_c=MEG+lk14HAp>;1zeauY_Jvf^R7LGcNHcyNgz z{{VM5VqTk+{$~seV{e*bqsS`Pk^jt{i7Z>2*j4A0iMk1^r z+Qu&|iaJ?l06AkA-N7|*ATP8{i-ju>^npG&wiuxNoM@HDo zrar8o;j)hjIQ*pE{=1{^}$r0Hu;fR)Q1(}w?0dY)Rt1ea)N;?DC4xl`%2ZAvzs#}=y z7_xx7D_7OaM-BmV6wRNhX4S{?_-1X|;*`W#r?kJkE!?`7w7n))?P8%tG3#=|6)Li% z?EVotJ%!iYmH?U-s|Nm9gzg)QUZG_(?Zrk~8Lb;39|mWGj6j-D-ZWO_DGP^-?f|3m zzDZ*=C+?J`wMHA%6ZyuOBf=2lE^927%%udViFJ>qnU!0Miy$S`RWd3dOSyTQO1VYM z@fWFv0zU?9}E@DS?c-A zw8-7;yh`!Tg`(!m*?T74Mo^6m7Sik73mwz}x2WjjVN9cmQj3P-<{`u?=1PMQ0Xuyg zAgbj@a{}YLxlP5W!g-e*Y6Qhhnfe4`O-iJ#COVoKOUy_p)K!>P5vr&)3u9hpQSIO# z#2zuv5LG3&)F7MpF@>yyKMZ`v2jBWYBgsZ>*v6%5>xKvrn?$u9sPMzhBj!+U#H45o zySa?$L{TsHN7h3^e-mV0;E&}pAYeA3#QbLsZ-_oIsYAhjW1-^pc1<=7kR3h6cf!;1 zLydkaq0cW((VIw6KdbI*Ns=1Q++g&;a{1P zXCuHvF5xf@I(biFdlvSfQk~eVUqgFW4|2^dr33FNo2tBZJv9$B0WboEE&#s? z&$*xT`XL1^lV>t(4d01XBgQR0B5;PyVq8^PIOUjfZO)3(fGsd@%ZCSol|lai5h|{* zO`muewPqA$ywNTk?SyjE2vkjcxsT;r9C%EcjlU6&M-bH97}I%+qm8HYIVG>?vXaSe z^Oj(*vGaL}D&Zc;oh3ZjK^_ZbZziGnSSTB3X}a=Xi?@a|c{G}tmI zBFGl+0QCqwEC{#?V|YEn=hCo$QvU$<<_7!=DO$F5@d=`URSxqj;m&M*JDJEi7FN1Q zA}|yAs&_22Ahw1!|#hOY`*ETQB$!h>pwqd5&_| z^xyvggz9qxvkbkc>M4Whwba0db2j=MqD{+QB@w2XUBpOgGg)96hN9t(5V>^4QuQlh zHf1fjYk^lUXETIKjj#t286JalfM?Rovp~_KHQC^T3Cedm1T3wv;d$;{(l79u>x?g> zvFf)k2We{_dU%&53^W}Q<)Ibh;snR`tHGoCID(^T*^fz0`Ax!Cw)hsBiwGU5D1Rx$ zqVVpwLNY0+O?j(1hv1Ezis>fGrcifYVQt=gObFzNfEiUWgPUbIJRKbUJxkBNr&V1J z*eG3Nj#0)h1xI#e@qdJnLo$v>W5CNHep0#MrVDj5#(@6-7=plL6^M^-YN2-I*=@A9DxUv&zb1V`< z><)ciVJC*b0x>P_81fs6^%Si^npISG{RZc>TM8dr7clxyx%3Hz$!*u+JBdrwH<+sN z1|ZQg)VEUUxycByg61iKbEF-ys!p4jCQ=S)YT+cDV;oWFp7nFOBn2tw>7sr{=5rN{)ear=N={^V` zG!7op83}gD4N&aXd5P7^ax<#_<_4LAZW!#8y{*!LYE^cJ7=lPzT6~Zdrj8u-{xej=xPAOqXNu58JEV~v2X*zPJIDr;)? zumr0#L&;7!N`s$rSnWBs;rN>HJ>dM$wAw2TuKFmPa`vlKUr)@k z7>h^GTzIs9@$igSPiE!UF>@~%thdnTp8`Fa=fLOv=4H|2d$sm;#B5wM8PH8PEy_4? zIJrokVR(R;V8&K2na+xAnrZ-{EXs7U%7c5F#q@==P-x4Au~NekLrNfXoQ66~egNMW z2)@l!EfnmjoNk>!*S3tf)LOLFd4drvFImnbGvQo=`lu@EfXlVuIf&~g0p;0n18t>8 zCrMpnPB{1T1~#h&<5AVSL@B9xw=DI&B@V%uxia#ycnLU%tJvpj%NWYPoNRY1 zx07b^G(AdVs0tk5!t-ms0W^Z%oA)gPmq*hBT}<@qZzf+?G!aqnn(LNan!;m2{;pWi zHGvHg0Bpq2m_}L@!S?=?#|nt9jbKz&rP{ZgwYZ{Vw3U{9<`ZH~fs^2<`5Q_lJ@`dX zg={BCXmJFL(Hy1dS)vug$)e!Ni*I5p_RQKktC8J=vX!%LpZ@?)nSx%)Z`dE@2|#C) z@+^*0?FIh%feU7ie&Z7LadjAuUV%8Czd_1%+XuCLv-uvnj}{>f&?_>FbBJb$M&GQi!Z?`QIsi(m!oR-a_5Cx9WBS1xuKXI>j(pt*3RZYXR)9fm8T&l1>1 z*tF>)7i5g(oSTEj2>$@klrXGGSzozdnvG#<`@9mEE1p$?#vc$+i4jf;^*Qh=0-U_d zhd~EbZ6?>vZg{xZ`#D)<@;>;9PYzi>Fq`%Y{{RX1mSXDV{-|yKT91=c1l|g7>`FW6 z5nr=kh~ftBQP%5!f)rNd!;DNV0cXJ5_1nxwA#lwv_w;cvF?S$9 zYEuP7EN_MZYnjBprWWQ}Y?&VBpD;5L%Aztc8VZPJ<&{Z!oJ=Z4po1}S@U~en1USjnDi;Xw+rlma? zZrN8f)gfaLyp-LZe4ugpj7qA4CsBhCq9WuI$5S(x5yfCyFV6)7RE^SG@gR$cYi;SG zqcu$dH4m>2ZabJ>V{vbx z2_ZOP<0|$WqL!rp?D*LZACkYr7*}k+6a6BY8|Np!X9O zxrX`rJ`(tbcT&TKac(7omlrUkc`6Lr2IUSd?Isq@MS?qmp5yb0dgiAowe)_alo8M} zKQU&^@DsvvN^RlQhL_9=BNQ~j#T_E~9j4_=n4D@|s{+$!97mEKbDhy2!U+&{KBA86#;i_;6+xF9UGy+8KObCe1b(2wNIv3>wj!O zxW;EdBcWsFGc{^pEH#Do9Uw@eS8%+8N0Y8%4)t`k^~*N*h2CS1PeQCvlR)nyaiiQd1mDpeaG-Im*~BsHH- zj8$^}UFRS{VOq^@cy;5h)?Xv(^9ZO7#{+Uv8Bx^ooi<_(pq8PG~V z9%`llwajjQh>KhO0X)e5>>8cxULv79QE=x(7jf`J({ik`7F9|UFr~>Tyb|mULnKj} znj`_Zg5CWTU8*gH6$}CuwkK?T_nO!m@kB}VN2r#ZiSzbO|!k$vqT>k*Nh8YA6HL}6_ z#wx8Xz4^0FqwWI#0EwvV_f9Egf6+LUtwBl->AZCU^wn@rNn!CX>7>foFM4~GkQrHV zVI9=2Bi9hSsFALO-j^?!ez1|19|+53ZC%71JMi{PXC={0ei+4&F1#2%E+wDp#6{bvrAvK5jkLLA$g6+0Eg~BNLZje%S}a-6^T2VvZ>l(__8XM89S^x;&VTF-k^pg^v}*of%#z@qtpX+-@`$Ur#ntu64%ZYj4u*B05O`flbjY}Lyl1hM@Gu^1*^|6jvmxRr#`W#RnqM;Dp9*P0Y%e@a z@Q3Wwr_3XSjDh6IWlk?fFo~bam}Wo{TrVsOLaJ0$`RY5tg5Oix9Upjzzt?JQ5S^(? zQ6|5vOGYNsHA>^$vhJX{hXxkYF$>WFM<3iZ7t;G1`Al zeOzdXt`cDgVNv4$0A}TZfx17PkF;&l7z^}VLM@s|M{U6st#?{q2H2Msx$jd<9@&;6 zdT+KMfo;t%kuhokynOXH3mi*rBAO=HR^~85fNEoI0FDV=w;^A zH!({wG;m&F9kfzPc$}~ibMq}&Z!<+79_DzZl;_S4Amv~s1|s~W#_o0$D~w)bthyNk ze~8
JZmvLviQ#r$^@3x(Fr3&jf6yBf{)mZq^qQmx4A=3MPZpENanK$zU9MbP+W zQ2am{3uHcEPja8)y+x|lj8h536J-mFjYAzxCO4TEa|9O(!LT|}l+hW#8RcgK%C;kl zm#?V6BFiE!H^eSVOW9rklv=L8=eX#h9R6HGXOvG_<#8N#NrcoV`H3<4-o3 zl>r0ydbrH}rjAo~rm?EHf!gwio3qEn8RjjRb*aYD}P}H!l1^YlUVMng5yfVj67=fPif+g)({mse&AR_o1^$uSOoTF#V z1WRd8-eMKn?xm7y=a)h4jnBg`Be{*{yX}i?tL|W`t<4r|m?^DPXLM(unCR8$h~gA`pu zm@?{^0T{SSg3Eqm@ti{=YIv?<>JIF_8ov=&>b@Hb;+HL=7_!m0QnXIt{KR1iEi~5$ zbT&bL`9$_pOh*oiqP?rBMZN?z{t0DP+baC4pyghn-CYjC7W_dCZc!E|ObVhunTDmf zvvFQ^1r5xrFrwT+8ilHsadA_^H_i!x3(j43>#|a1CC` z%58Gf-Jf_1Ngu2S#1^?PZGK?7BZO zMa9xM#UI?q+5(F0LbK7_AxTO&tvsH~51cs^ph{We)CR@TT)B2cQ` zeE$H!AD2gIfHu6UT@C?)XdID5p&x>tAlmquX*VVOk?6tE4WoiRf6s8UE+4d9*ynTY z+v3_iM}p3~NBQn|`dh-kq8jEXjmCsmX(>`TWu_d{8znoGm}G_M=3%h`RxxdoCOdv5 zs)GE)J@WvRl}@K)aS9iR3TsdccQDEqE2*Qz%|&ot{6Q+}e&3mkjrxD=0+rbwmVTB0 z0EPv~;FasdSFDk9?v23vm7ch$C_O|mTRh6DWEXC}CBAl`s_?+UlX_Ic$x%Et!yPi( zt)ll{;ASfC8v9NXZ`=_=ifMMg1i5ii%_h4(R>hSO;0ch|y8Fw5>+&!viMjP)^H&j# zgdPHloFQOdi2Ed{p!=mC6J^Qirs3}7f186I;PAT`MaoIP?ut_pItFXDNuTW6rm&Ph zaOS0Gm3wM&)f-G#D}o2bC7hhLU;$Bw07gCnc+D|ziG4o>~dbAruNp`@+cV&@1pJbRD+tq$l>=(@O#cAPP3?cn zdvg&jBQDb5{T7jv!5bIxDKgvOe(^oKKO~(KFEVD5*gOee-jHATqAW^)Ev`|-A$L-? zj8c_|HMcXP803X75z!cc%KG{@Rfv=iajmN{7*&g9G1)Ih7%9V{6D<%8*5MAON?9t@ zk=j_nUBV&Y{h3?&c&Yk4dGQq;S{^oc{7s2?gKVZkRLm(?+bzFQHy^hy59?$1h_6p7 zCAiE}Eb6E-(AMkJLzbbp+XYl_NZ9&}c%s@b0zMF3b(y?nfLrbyIkFp}USV=p&c?55 zadWlDKiqeauXD(lf9$OGmU=2O>}B#oVLEQ(U{Ru1gLf_}WMvM_Of5C6gKRThe>5|= zj46jS%nSTn+u*nLFfjz_p@;V}!KzfYO8)>cr_Ode8&Iv{4@K!fRAR?3Tyj1<&1S#-WU!}rt_ zQN{uHmYGj)&O+aHD=qz0dlS(3nS>25C-XHUa6x*`vnhnM31gz`am}QH*=~BSVx(dX zDCOg#ZGt;24-~T#cMZXaj9UdwkzHb=ZEhx|GVnl@+-x>3aKUo8)g8*xFGJL;Eru1l z%x#e+DbetcA&ohjVRxwaDT1-$1?EaFHIs^ezveS1K*#m`#vczgv%N}6DArC*Fb0W@ zLN038(w&exH)aE0r_4%Zq5{4li%@5nc2UxIE-lI2WY0Ft0W%rb+_=z-y1#mb$Yf2>M_zfanB2T4)2ttt*8y$RjB7*CD=AFH9LYgYipo$Q&mLL^;pfd zGbqc8z07Ls@RmI0bsCTwTf2G(!BURpC7z<(==tI$_r|*l((VOfrKy20EqH>c?BB!{ zoF3rmdWL1`q zQr_T?4GV4RHc@OynF1SriCKff_=lxd>-YJa4xyIsILxLk9th-`%rEYCNfOJ>V6ooh zMfT#cm-BtSZZgHC?X!O32ns`W@G17p%TCjU+eX*`yyCgIw*$~`wSN$R@|B)X^pqk_ zYP)Ain7J4^8pWaZnUz9|ytlsd0+?0u{K|>Ef>z$HNE-da6rDi?4!1c9Qn?{ySen0q zyhjdzcV7PD>L^8gn0p5y#ZSpbdcUZd$isJ&6Yill%D^nP(bF}ZOxci2U6PJqqG)$l zkeWR6sAGu`QxhX#*i7GmgsNUA_Fur9u^XdJdG{O-G6ZA&6b5Wyv@FKoxS=>-EA4`u zrF*?gJ0=`Ku0GdB8|B8qLPQ<13WToZ!qnOSh`^Bokdp#&@qU93NPSsEbn;-ldiOsC(7tMJek z-`sG^e#4%JP`7t%_)J34f*W2cYF1$YIkRi?4n`upd24X@Y8d@Q5UO}~eFg#ARN*QE za7EFs!do-W`c0vU!ll9CudF4ZORh}=@h%DQ!hmbRrX0IE#fhwf99~ZpYD@&t73+MJ7dFU6JcFt1UfBIvVSuhg;NsiQ{qIdknzPtr@f4>vI)6 z?6b*R-UzI;8@4t8{n(lkB)VP^*HZ^zk0mHR2vmt=b3$4gGa!=4# z{krIO{6gRrj^$un>82cm21Rd^4ID&Q5j-sie_}1$-rn%B`9Xf)0{O#JPv(gi=@>d( zNb@cO9NSEN0mN4$Lvq!%Q93m)^YE1vsc(NWgu3vBsK+x^aTZ$%Wp+P^mqs|4WYjc| z%)LOnhQPK}q^P*6BT*X8qScqX!~>I6m~p#Iuvs~R)Y8V=wf2KiqC=-LvE^eMWolo) z)GN+VY3dH2dj~bmY4-#!A&op#pnI^Zd2=e)g_PW|1#7678*rbf zV(#8BrYB;@%f|91%lfQZ@@RJ0@mBV6%5eHwfhqw9afUDgm>DwZSPdAQLVTu|2Gy zN9-A--$uWLW1)zyt_`SleuQ=d$f@OdX9Rcdt04KfUlRQYzZp7lFN@%!U`08D^o}+; z1;PAZM`?s|eMfi)XoR0eC|)m+73pATsFT_Y+8ovWiX; zueD|T`S_15GsE*MVVJs7*tc_l3D@X5^8;pt{nxK#0ER-CUR!XC^0!M5512|bP>rDm z*z3f^Bg-GTpdiYf0@LCe&f)lyh>RUhkYIR;+iV5detwMO>MC$2GOk};%@g!LGR7-h z`QVGu%FaX5R&>4+H1=xmmx)dI!LZmzGk=?yMYkm^?5Arp&4BrHG;@Uq$rvqg1Oiga zeqm6BEY9z><}8Xqy5fY+tHXe`ADQJ}1w7zCE>ODE;E+%&| z#%nR&*WO!224^X_EDkDLf?K+rjn7m#fXQnWn5KfA>Ml6{0KXFBh6S+T9wB7d5zH2C z5466Zg?$j;iN-}OI}bs#*{O`FLowR6_?#fwusj~Pmb~s1ml)=I zyAFPwF$|qDp=;%5+5(HVbMZ8TzvQzqmM-0Vn<9k>oIg+^X+s;9zgl} zLS~j;-*(*gIYneJ#+%n_=4BylOQswj)DkB;Mu{4C94dwx25Z%J?kt#=*V>|rj?5g` zCe%u|Ho#VVo@E0FXZl-X-ZGnWe&Q`nvkG}-%6GdzP=JT~ll z@I@uzeqBoTxXT_vdELWtN5kdmeQI0NnackFAJQeqnziwv>BK{Y>3RgMI0r{-6muA) zcn`$Kf$jqHo*)u?MTr(Lb~8iVURx$$;8s^H-dN9YOsS2`z|M(=;Bcnle`#yQhENyP zMk;pZP`p-9U6~u z%IbGlEpC;}Eg7`miAW-HVTr)77&Y!^+nqPY^)V%RjwMc1lbVnMXB=#I$pk2F{XpSltA#Qw2t1JFd5rBJ-K)4W>Td9@^HIl)+;k7S zBvoR#mwfUF?5-i8l$=YnwhZi=5U^^?gp?;UBBwguAKN*YC-C9^#uyo(FV1Jl2qfci zI=NrMTsCFee82rgP*0KcbR`z$698YA^ox&_1sZK$c_Up~&*Z|v;`cn4ZQ@=Vb&`z` zjgq$Lc$W*ba6q}Vv+oGCma0&cqjH#Qe#jT22DOX*%OOg*Y}q?Of+OmPaNNjkM#+NA zj2HmCTovt_+#GPc;wcuMB0xJPh2X&o+x$nkf+~Jtaw?*l0}2^dTe*DvCT!b_W=ij= zrK$rNh6bkDW7D~3PN8#|rU=z*OtIyksDX9vQq-${CHt#0DN^_)E8UNYQi09i^#IF7 zULaLSb$2=t?{kJV`jwu$h}&MY$^gOZ6#yYu0$e<#QlY3l(Bzh5&h+(g@!E>J>ztsO zyvn_19P>3_hHdrG{{S~KW82da+pXC7ik!}(au6(Bz)6zfUkDNvp&4uLi3`(%2zI7rBbZHwA??RWe)=SO(jH&+bAf2XV7) za>sY>UZ(9WYM&9K+ET~2xsQ%(+}XC@DsP}d08y4x>tf=RwkEY8pu3APh>WdAQ$t-UDy`K*s8^`tNd_Pr z)F7o(KI0BA`jnBBp;KNW+YL%ufyK&Fu(AwfMj0(-RSrRUznCWS>SXEr{LGFOihN3; zNwfWMCb;D<0_@F7J4t?~WO4(xb2}Whan~Mm5T!#HjojW|;2XqQMNrG5UZbv}j#7$i zk-wOBlcR}Jfk{Pu1(a+ZJTlP8xV0z*u4@qGCTg`^50|0hXBuH|EHu5x@P9PC!5q6t z9csfnH@e5Xx5Yw6<>^mF`&`KSnl^cq!t6!)2ea`3yx`!sFM?S494fni;ws~6UT+2d zUI{KQmXPS6rQQQxSj_dt=QdXShL)MMT59F>oNAGOy8a{{Sc2TN^0Fc({Po z7TNln1^i18JIoxOhft|mYGG*2OjhR_xXKcXn#@C(Z^AVbwQ(%P@)n=4q_N!IOqq+ihY6=FTCVi@eg$3~>wBnGz3IEL%F`Q12=v zFoe5h(b<+Zc{`43!FMf#u;<*m=m5n`9R*p8%lD*&v<_{&N&w4RmcI1BP~+w~hb&pI za98Bh#K^Dum49*6wxNnznek2c4(lVU+{+{ZF58aHjyPt*w5xk1fOBSCE4Vxr#CX{V zVEBrPSGzXZ`0Y1kl0@mM{2s6tCc(y&m3CPtA zRyLf>MloLCDGL2Xj|hFp$hjUOzaRT^(!CyIJl+2Q5!n9#b8+v-FtM!%ZN-YFjoiln z0K}_U%kdL}yhOCh-sQENjZ1vjuP`X({h$&Ss^`QZd1~{BEHAgXt5k*Ddi?shHFhnS zFCo;%ux2XX#KkNsrBsG5?<|7WF%*guf@WM%$C%muBGv$7FkOn9Akq)&&7eMIVmQ6` z7X2PS6M0wyzjA;zYfAM2=u__IGjFP!&A$VQm6wC!3pRWH_PHTw!2gmsy<)2gBMIZKw2?a zuHiQ{mqhqwVR`E$%g})zJe4jZ9Xo4H&MU` zIKHM}2A{Mlh2{5`8!?`HnP&ZZ-86}%^rf?=Yh%J1jT^qQ)1NAA*gPdZ0fyYwc zAjCxi^7TA}mgQDlDhY;%i9@;+h0 zPF3)X6?`)~6UizHg=$AnlH6rinUWYpdn?m9&u*p;ctA2bdqy%_K=g!`TCk&`+(i>@ zv3 zY|iNa0JAS3OO%Ed3p+_xL7=AlCTLq~%?<~&Cj?owT??lw7v^yqk)Rtr}sG8ww@ z6w#~if>2BXPTYErbWy-SMQ)O;OWFD-efglyC_HF@K>4DkLXaNDiJMr!-Y2AkYF zC_!CRYxX}CQ34ZTLZtG=+_vB+d3@dGY2~Ree}tK=BL()%W=y`bNOb7T)dxwr#$LM6KOc zEXuA$2j(PUh}!|!swM$cQ15@l~gR*yl>Dg<9l zR8>?_H8|d-4a=A1^Q^+Av-nF^rJF>Jn}n_M#3B~!69a^N{$mUlsY5C_IPompFL4z! z3~)=5%DvA+{rH;{w;$9Ad=PGCZxAFmI6}eEd3m_Km8+XK(J)f`u48dImgmfFOOUT< zGYY}^ma}CVmE;@y##GgLmNm;q&v6=Pa>To%(=#VWeZd0u^>Z7#>Kkl3Tt8?b+n2<2 zVGVz~gL8K=A#`^IOjV3^27|nQ<*{s~z$;&Ad;B16D>35;#|1s&efI;(yg7rir7lZz zeWqBgwQY=wujX>Z@t`j57h`UI*DjN_Yx|63I&?5n^QMSiw$28ij*c|*63C&8h^n>t z%;ckK0lL0xJVK4EMN||#%g9%_CC{Wmlc!w3nk;2T!ynVD6vweBF&EUou0ONS2% zfK^&zu~QISX^+GOi@jIwQqW!!*el$w+OOO$fPQ?!@IYhAhx?cZ3vuBJoeCv$X47@3 zfA9>g4c|3V_5xYG%tOKesB+9}1z7ok172=>4Z}OY)}|!Gj9wuz3vLMl7_V_oUG8Mr zs){`y)Y6si=O=RU3<)2HLPQ(I7SynC=RKs50F!VaEReA}m-k1UUn-iF*JCA)j8QbYx|Ja;@IoM{79m@r!Z0Jw(F2@8f7AqncGv0m0N*b znB2`XUZZJC>-m+hTp@859Ohu5u5H|`Xuu+~3+7aX#6^yZt}0(5?zh=7iWtlrSFU_a zW7YNU6j(7R!18#PCH$r&Wvp3C%k7xrRAS!m!~$%))Iivyo}d*}#IcosF^CJb#IUtL z)VPXRwSkFN%|6j3VxQE-hmoG9)Mp{^N}gSL+`}43n)IHi_?F)skTn?1^%4XM{Y2#p zt;e%`#gg|qR}Rd>k)PE{1vD4_B>?97cRC*Use+cebuhG?^BR^)E^`a6rW3XoeZuXG z`@{=v9xhQ>=a`iuR`C}?$Ue>?ZzGF>#f~SqKe?5YTH-t#t;4Uf6k|20YSj;^vkI6X zTgd()%$J+8Z=fgo;jNW3)bR2@*Dw^0(gNz+o_=MV&{*E7o!?P5Am{HFOQHddW$Rg< zvf}$eTb<6fW?? z{6(G&`H5KoI$*8_6H^7B^(dAJ`In_0KGXfnoI=t0l-S9ZwI3^>^ZS*^9jM|M%E|t? zHar{g0CXh}K_9HB~N^@)VU7HJ{QW!QO&6z@=uZQf$?3Ey)$ulF$V#a7|H zj7(XkUP`vL#G$)juyIm}TyqiTC5WZ!-~P+OwvJB|rv~Qq0es?b=g+w4wR86FDELE# zHU?AD3@8|^M3>T)1lU6|>t6t0GRd;*=4EzaYfv41rfTev3R|t6OD+|wsFb+2LZJw* zYnb~|RkTc}_b)@NA2GsX=Q86u+#1=%RH|yVjrA-pJ`)x|{v~Gn#64ouh{=??t+|$- zB?zt(?K>seIw~b}6#>b1e=_v)1YNXpvo^otWE2(@_nX|YU-qSLo4rc|cE@ukP1pRE zD!k;B0oM#lfDNB=vty`~D~IlLojc65D;4;eQg8AiWMf{U)^ijaSI(Ks zZ$d{MYZBPY%G9Nj!AU04qvwcqxy z>gj&!#piZ8H~c8eG-uu;FO4QB>8Lcb#&1Bboa-IiKQsE=Zn8rVu4XP{&7RX$Mj( zOMyi++N59JeJ@R$GXu6=yXj?o$(U|Fl#^U9UWEA2b^Pu77x*^#*A}@p9reV$H{rN! zK#CjdasD z^r4uUe8sDp!R^$q&>Bh9mGK{)2^6S3^@{X|D|@RPtV4@l+Sd-noK74|moBu-7kUz* z>qG2Mih&p_ILvkx>13XfFlInKkbT3i{#5PS%*5;8TqlELxSY8#>!3Qh*jEJM2Zv!q zZ-|n1u=$Pc<=s%m&w4m^=3Bmo5IS~Rk{F?1c*9PWB>dm@flVP$HLwk-w}tB)z~+*C zRO=pa(CKfyEnbRYaS@45LK|a!Endy;Sf86N{q*WZfgMdLApL6(6Y>XVQhzEjC@x0J zV{=?{(igZ4y7#-9c>YD0XTU^vxgAB*!eFb6oTE~o* zLb|p809xV9Bf{&xV@%|mn$1DT+J+&z>q|Nx4~}-CvIj0@YXjNWV_Z8FzRbb3?QiE& z@V*hm5w$Qi?5WdaYKgRB3-IL#4Zqs{a5Nh+x`SrBpqolS=ez*r+jkWdL@%Ua(j~k_Nv@ zTs(y8EGY(^jR#Xwrz~a{x0N<5k!2PDYkmBwSqZTgJ>y$caycI|ztV~#+3uwM-RLUw zL7wUl-2$XrK3m_)qr%S8h}JhR_dwV1p~3j9QHdnNOa;23{*-jvPPKE^mukgErtNyf z@N5jtDQHsiu2*0z#Cg{Q^jn5-_jiF0F|KpAtOszcOhxk>fG@55tx@2k&CMZ(O|{cn zmK(Lfu3fwxeQ#3T5WA^tqh;Q(TuTuw;4FQP@-1%xea$~RDu(&` zn^bwWhf;UFVDVAGggKh_bNJX+D~L-s%yb(qG?!s|%9oIhgK1pW29|ec*05&N)}++9 z*yEojYmT&Mfx){i`fF1_ZXGulqZfTa0P?9?JjD;oUe2xZ>*Yo)x>i*^YDA8(_DJ0C zt$fxei@dcCel$sO4}jFcIjV#ZgMqMV%yZ z<~OX;^4RLEZJMraMXgzKm3H2}r`@+wTK@oz7VTPtg*PWk!ts0`J4Zc{uVmD(iI{eD zUZcLHNfZ`w{{R%cqKf&nHG`TZT#Wu#tY;O2h+`888#)0aZPvqc_)>xqRFZ5hMm02C zLWQ@re~IDR!P8$FY&>Q@WFt3)>EhP*=|N6b^QaZCd)N<;huwu}V^G@bSkT!`j<&d< z)B8BG-H7X@LL4X!ZKwuN+TVLpM%Dzjz57&n%u)=b<{mZeF&MI(%6ex0^dcu-lrZ+J zsAfP$Zt+-%0z`Z6KUzP&Ifp@9a&BBPGF*1+*`#F+%p&8q2k~E8j}(i8ffwcx57MIN z7Z-BFxaw(e&@yEwCYu^;0|^Fp2fE$W!Q(5$-%@pb{QY>mV{?pT>0E+V;`;4aY$L*# z&DuYZtix(;XxIx{hsML7czmn)4}(@9T!4DlIqrWdjiex4U-G6lT`DzjH8f*v-&0pw z0@|S~rImhT zQ$Z|xILg^Ux1B^gDtszZw*#&HccJj%xRdEYgL4!SbvlpEr`Zib8wNSldC&y!qW4jx zp8JbXbu?6F(uUd!(y;(odDa~y-D=%YMnY@Ab4-+KI|-dPTK~-=O}qqj6jx{4rie#ETRel=*bE zV{!P5bmGWz?HppUf=HxzTEv5?`cgX;@agK))IKGvGl5`8@uoTKPU4hlSEG>p%X%rN zW$rtTJ}Z>o@mLSN(uBFz@sR#i?S)cz#4jmhCsJ>99c|K=5T#d_+srO1Bz4Hl?e1Rm+MU)t($V!`z6g@uj;)FBpl4k?$3tbg-IKg z%IF;TTfoxty z9(9>U%~=*l2lz+lPIDt$VO%R2fWx%X%(>-UZUuGcIF!2Rb+0MP|zu{at<74~4Tf1XJF|1XtwA=kC8Y)59 ziXS$$qNVNRJLm%4rXNp>r>OmsTr?8==ns!t|b%v{V5h)H~oOi z-h*Gly}JxovPnJG)}o1u=6wn2-CZm_clgKbHvO?$`nr5!_PhGW#s9pV;niE{`u%1L zGz`ll9pxaS5_23Arn1iRR~4bA=E~r!eoHF1^ay}1)o@4IBqG@dK<|QWLxVhgTvrc@R>t{2dDq~XBrjns zcyR8lHTvurOz&oA9KEicNjxsOZNTiECoj!$3YKet6P9-9jF)wS7Fd1>6rRsehPNP| zASAY$CbwvSmk`nOkZ_!_r71I8ww{>H64F+IycF|7|j!d_@ z0F+qosfgY|AZQjGC`Ez(XRr8701XvYR21yZA^CMxwW4?CY+=6y`j#=5ak4cHdvAR^ zsqr|WcoG5!LXB+G5ZY!q=KD&TkVUP_oOeas*4*1=?Ee6@u(F2@qcZSJRbW2nM@H+L zmHyM~X=IL-rdE-gGi|NKw+j=RSuYe;%Hnx@D%?7*1_LZbw{h3-Qvfp9bPE7`>7jEc zd5j%$5xvw^uPuNO3!ib7hh;@T_Qcmot@XXMQqx8_u5IiE?wndiodTMs@Uft&Mrl4s zGzDdq7{W21ryHw_TOdykE<&oN19rTHJw%f{x$Y#VzlOr{bP73XrK#f1OIh|o*sMZm zBaewp-nJ#XFZd%znre6R?q1K!vcsXQhe*U_q>@{*ix6v@TPnG zBz9LrJFR|TMepdIDkY=MlO&mZr(cp|rw-2h=yu%x3LJVD3rf*tH~YVwRAi5c-EIDg zzPwFR>neD$B3~suQUKd+`YK5rFzhQ`PC$S4D-n^A(A3Fsq;9qL*+V9JR%^{9e8s;M zCBEjsc->#Y?y^5dJS?oK<_&Xiv1-JNY2}0)-RD53s5UGuclc6OK^XG~yQ4yzC^_nl z{_K4eRZOXVQO|wvAJIilb!+tl zPAn8|KK}sOIy0X&!N02ZcBY}FkU6}Es*ZBjumWt&Kv=FQ_r+(}jjhw>sou!l12Pv9 z+W-jDTk52(lZYc3U7GjhHv}l^tr*NYrpBd|J<@SN9$RXvFB||y zEH?Qk;Pf?ZfAGUx4&zVsSdIxj4LheV%*%iWR52rxz~=t|wc4r!Bc>&dVLOoFaG}BJ zcwzU*?e4>;$r{SY<>0aT^KF04Qc?TkTIYvoPG@)cC(zUIvbOC%cy6fh-X0)c>5Gn1 z2dWSf+j^rJYK$??)yc88%6~V3`e#c~2QwVt()SMIPem3k%QPNsHL$TCBAH!I_-@Bu z%A!+i*-ME_?>Pf=0c+`X6wsS82Zk4)wWzwqaJo-+d))qe0&H|P>TIY58>E%YllVY+ zZm~#U%fzYW0O$p}EH)`006a3#b#4CXDmr$v;(DuTqRec;>8h|#05?VLICJo)f8^DW z1&8}PS5ZaB49e^BYiot>SiL)%8rh2nn&RP5R>t?bDy^L1e_L(%D5Q&rW?I2wSdR)m zP+fk?mX5H7R1wejNwKmxgJS+@a}TfTrL8X5ZiKQ8+Ef!h+b0~(9=}kn4)>DG!J_{F znsZ2T9gjsxm9GsB&31yS>fwdD>f^I}sNiKs{KyR?^4m)T>Z@sIkhI1lb6eBOe-%?f zJZ)>e<>E@BeM04DWY`vhvs!ZPT z3`B$G%f0)o1KCRK6AY6Qs$?^lQ?Tpy32@~d?hfhs43BeI8=1tA1(0!7v~Q}*9&0z@ zbj$*_AaYNqOAC*|Ho8{L!K-%+eft}J3W`GOhQBjG-qu%b!gIlI)8dW(I4OnAe3?zO zSXQs}UgFPvFDH;|-sL+fCruY^6T=;GZ3x)v6>qb+WR4GGI8N@}zXc8%S5I3U&1)Xf z=EY>`pWGf{thKoc{nQI~7ekf_PSLe5t zK1Q{tlydFzRQO!)t*DxJU5=H-t+%SEiU!8#F|A{*xX>vvD%jj4juBC=?Y`ap6duq= zH8adGyf|sipucOcX=Ml5s76pZVcTtyKoy1H^vYtNj(4))!J}nl^VlvhwxJQ(NY+Tw*%}-@RQMD} zSS2x@&eVP?wx1si%PrpP`@iPJ>awT^HF+XWnvNC|GD_FF6c zJ}Nm_iyXrnoIJxr-B4*VmB5Zu@>jCXGa}UX6?2tlS5)riKLuTf(9~$=e8!5S0IbUI zcBv#EuuYe;lqQ<8R?qx7OF46FM_Ve4*CS^2DX_rS7Bp_+>-v;;@Sc(hOAFh4r9KHB z_Sx10s>mz?F`k7_gf?2|mKP0f^XurjX`*9!oHiXz)*)K@nZ+d_1>IfPexI78fI|dP z2VW?)`>UeuE%fzz2D>h6Ur&nFq;#^SbBx*S0KZQO7~`?Bf*CJ)6L@cU7t5k?3D-bf z+JyKILZiNWdM1UUiz|*-3y#HN7%eo>7Uz6p(CPRubj7Lf!+4r8u-yLubxS0YK-WE) z9j)8qC1^If8tRWYR6I)661z2~V>%bc;z2E-wIYr1dL z9ZgQ{*b`}_is8Oeb@2-RigPKx-8!|mR4omm7`T< zWl#LYH}cBWIvFf8bw#9a;a7;q9JzBhO~Rt9j$?RS`wur`;5^n&aBFT&t<^~+xRpVQ zGFwj>=XZZVv+Zuk1V4QJ9hH^5EEcJx4MDM0a~8Jd{{Z1r)I|2^;d=#jbrY=hH}cPf zCC5(Q1~%@c!|2}p#-10uxnR0vZElvbCfjbCqQu~;sWC+x@=4OK`_ih1T7WEbapB4Mb>DtvMBv}%E*O26H5JB z3~uh<(Naw~?%qYAhT8f)Xz z`XrFX_X0;S*~3CU1S-lZ$y^=pQc0I)$VvX_oJ>0-VRy~LDy1_r5ZN7=t^WX_U-#@4 zzoeh3fB(b)CJ+Gu00IL50s;d70|5a50003I03k6!QDJd`k)g4{(c$s%5dYc$2mt{A z0Y4Dro#H;+CJ#Ht3`YVuAlG=LA2Pr?!$ZRmrni>~5;s0kj@)GiVhkAKrtzN)<*aQC z<6r*(Bx>La#JU*3cZi4o0Dwz#Wn&Jph3_m|fd=v>5Do!lrc~*#{{RBO$p#Agz&f}x zUF4166~c^o&B8LrPyYY_=d23>tP>b_oi}-=I>Oh?hUO7?CA>`HD=`eSP9S{5sxfrH zjbw^2Bit;bkvIVDxjiz#>k(!v_X1hGmrOLKu-!G1D9yhvc8$DXH%w+=t#H5(GE(=I z)6M~AS116=Hg6UC!<8{g;~OKquqG=^Scf@UV)r=4y2O)N1a2r`#Jb4n!Af9c1ZuMc zDrm+wbBwHxP+`*=t}5>ez+ePQ;0CzP3}u0WD8$Qf>Ahy6agy-w2%`$D)=&&U4>-H~ zm)yp4fq}vyapfCemxbqk|WTBPR!#cpFc*QR=O)xo_ zfkzg#ai^vjkjlf}1g_jZR9pyrvX&g>RnveYgAHN_M$BBWsyM=?<`@9u6bNX*8jb+p zI2JTJ%1+ZFmz<#aWphB20)ew20nP+{ap+}OFwmOHm}?RC;1$CFpBRY@XPW?AlulEl z@7&d}5R{nMO1w?LiLz;bc@+R#Q^A7?3C1s)!tfESG{*rGSr^HKbGVcczv z;hG{~8Za6RrUbRYrMk(w#2u#bLwF~g3hl>-5e^qb)*{0%_sYCtHKwv^VosQ$ouj;G zAnGs+3^p7%?-J0nDMJmH5L>~V!Ha{qsMEJ*SRw=xJR&NY};XB4=C1$V< zcZ3A%6d_?g82;EaCBveAveK}m)?pNm$ly5d0F+v2u+T-(OJHiXb2t}MB0Bt~$zq^&*@-R$Q zkEw`J-ZBd?bmhWzj(oW8TQY^11u~8>qZ5NI!w}SATTBlwF&3F%$0C}?3)z&U#9DAf z4sZhC0&$yX1TG|6cy?H}g?r9detI%aEo$S6g{3*IYRqY|e$LQ>)g&OtCND-3I# z1i_-+U@3;0!6M^Q;N;eIGNW9ro5Qz8MYaQjDzi1e7@*E4hd6S)m@HlKflqnBPH|Pj z)Ws*P;Bem@K`DX5^^qi*uQ;fq6qTR~X;{}f60Z0*vIo2FP ziyOHH$Mcj54Irnt0bn>mTwR*DfxMn%j^1J%mSDwh5eM7Fcyg|T7?sx(;b#0Crab|x zVS;)CD@!{dAR{*;Sh_bTdY2~&FiE|cr4Dc#raiTYtB2ONnp?s=;AkchM$A(PJ}?fN z&IG{_zyk>#DW(x7R*n@C;1{cabNj(A%&8r&Nb4R$ywDurQ0BzJg0AqaVu^>t z3E4~yVFjhjf-&^wikZ-B6-4J5)W=QWx?_Z-z!c-m+9fy+c};Q%lN4#z8xgE;A=VCx z<0|)o_&uhvQ0#ey5hK<$vn;nAC+(0YJHTNEJ1{NuVygpLQfW-4@)6N+9+N-%D!MlV z1I;$P?bW?F%dUog1FUWQ!2bXyB-ze5^90o2xT2!0zljHHi^PyG#@Y{mjH{5XR};{i zhT!8BBr0hdc*Iex0Ty5jxB$5z-YqPA zVpEd_&QZ4r_-8utl~!?*YIBdGw69Z-!U6{LE<7*}{ zS1m&s5xE_?z!k)lGDlAE+x43V7~b)tOdpc~Z+Ww}W6jx)>il9hVLkKi6pObs!@Lu> zcy|YkF#Cm8jL>m#so%~?QDz1b43Q2v3@$0RAr+1Wr7#t15rNmvAlpnOB%S7gZYmx? zE~=YB)x~(yv0pB-^#B-m-lHM|SF!8{O{1BADd9SBC)XhUHpDJ!=vDaR6*(#VsA<5n zaESF+z&mqy#QA)qht?A1y{bllSa8k&>G{S|0sZ7q*XILBofb?0f>u5;U?7f-i$58l zEVxs1tSK=fZweiemuicZ6F=|x4mX==5Pb$6I292A%FeI?ae#R+`36Xi7eOX3Ov!5q zi@j#PcJ+k#XVvM~*Y^L@Z5z_Hc?bYoRF zf^Ou?bmSVk^8gUhn?r7E&jQrI9_DOA4bF*dQVQ)dI_ zxqDKa0U!p0z~dK)9^GIF9@r|w-uH~QnqDRi2730R_mjC$pp}Ok%DxZ>6*R!=mUXe* zr^XIy6|N-5!jJF=r0)j-vr24sn8*nii8-8skNKTa#G98SIDlJ2>GO-DbStF=_`KnV zC6fgaFlbNCB{zf@5^^yRFfzwEU)~BQ8K-O@BcAbeieLe(5dn&4Uf{c?J(mLEyoVS# z2F#~Z4=3@CZf`0wtE@=46-MUh=7CcxO3b<&F{a{OP2>XLU2$;>CJHX_tTG1on`FyD zvozeM2%=vziEkm7crL>bCkif7V#F@;&~t@C9IxX7dV0Zdc**OWyBqb6^H@%YDs{XL zHeyI$%Zv@}Sb<84v2Tr9f0ZHi1;N^cS-2vt5N1_sJ{L)HSSCf4hMOfeaP%#D-ggTQTlrEE>&6Y~(|Mxv&2K zA`ZL6*DWB(hh}WiF$t@SI&^2ZJ9qT!$$PRoySWIH#D zXkD3cyRjFI`^q&n>rT`<_`?S0boig68B!V${>;4%uT4VQu4{f}cZJk7!Q{|#%`Dn~ zup`Odv6>JpqhU9!fBfi?Qob-JjMH1ty|qT}YK>t%;xeUq)6xqQ@euj^K>YmSb=Mx`3u$_V;mKOeiZKq1$&5-TV9?pKBTM= zrQ6mP};oO%-A<-?NojtRVE+_}m(ma*1Q6L`8Cz)n~S)0`3E#0nPz znvNjpZ&)d*i**cRY!VX`1j(BOOL@frkH!PYVyJBQ4LLbV4eJEa&K|mZh|q5EY`EGh zxCSS};eRQ^=Ml%rBK02MmjfbQEnf+ca2@F(c{#@;ffR?wXX7bm&jjN@kKQ#fi_Thy z@N>>xqa2*q1_q56IFdcI((HWeA9Mne7j0nduUCq=3$!+CU=a@Up{R;Whn)NrA2`zS zjRfvH!jRs%9amdiwj}XmfF+R^bMuVnM6IBMMmWVkktGGEkd1q@2jmCxj zgzcAqM;!xnKg8qqSFk^LFZ#v=Zw}pfkVKu?25~{jyIG_PdX`6!S-W)M@oFCX+hv^ClIP{@2DX z&b#-7Be4;@yZGqdEJlo8*(V1sIdIreV3CQ0QD+!rR*z2q02tD8m_xPVcyQJJiLz93 z&fE=GA*f!X-N{3-Dgx+t{NVPX>LI_TCLjx~jSI5%%Q=Wql5Q(rj1ZctMAn=9Vtz>A z1Gk_vSq3iVw2R~oGHiN?P6gYG!Hy&wP=V+*(ThiVB@d$ALHzjjG@{i}J_HifA3KpHpseJSL%V9{G)EZ9z>>FfhkOP~^U| zj2faBWZ-`Ax{sYh;y<&C!fJ@tqXeKxagRb$)t1~Id#v0~3>7rgXC^BEz6Woj82V4P zC|`k!6bQ{q>juVaEd#5K;F^_1-v034+bnsen)v*DF=Ins_TvEPmniAkh>hfw{&BsB zv-)v_M2-f(WiV|a(EdW@ee>v^aH5*rLC1RdZ=HNmBrL3fV}%q*K+)S8S)cY;QVh@{uXFw+CYed3zu%&9;*Og7=b zVw7i!(7tf8b|VrTA#o2OL|;!L=`aF>w1qvtvlPv-L=-9d9G(Mqxj!fSk4iP8+?JO< z5RJ8bGB0xi?md2sM{XDHl~t@PDX`X2K#BuA8OEVU(x*>YDcE|G(>0CHWPnLow~ZJP zsAaJ)AG4f5LoTz&I(p7ArBXZzrz>Y!u&M&6?PDBal4dG z{E3U&)Ap$v#puUeOz=__uz}_&Sb`D5F0NhW10_pOYlqdz5shOYZER`YB8rg`=(rtW zrbzCHP~IHLwBUF68LtINEcsyXa2Pd6g7u8=Xgm0h&vJR;9aIBg{F%Q!gWeaqyVg1N zr+6|QzZfOz!Z9v49Jsl(EHm3y>T+UBS|J3r!SR3(Y3O;655F0~1fIHI&OU^j$lkhb zrv!B#UG0AuA))-u6a30hlTKFI{NytOV0^uNI>mP4=dpeaSGa=d!j4l0p5jhfaTU9X zDi;C#guvJ459G~Ho|_!mAoILw2ToBlMmD^AfXl&iWSD?V1GmNr9B@7F2YX(z6Q&3y z$fJeGM#kcR@0^}Z)*(|%bL0VKy;`OD?5K>>}ymUVFm z4Lb)Q6lv-A7_923J6s^%BJhwh&DJf^#`54}W8=sVZ!2JL566mb%02!Uj9~@~9!f6* z)zaZRG$w|VyUY`#g6|jzTmz4dx3>^QDLx1qFl@jSF9mwKJI%Bs`c&9Zc@1C?K*%wd zcL_TR-;KQojt4yc5O0LHPq=JltxZgqr8wsu!fQ+3^CXxqwOUMC9>RN5s&m-*p}4<3x{Tc zFL+IRMB)MM-gClXKG|0x^h~GZ)*?)%gg%b3S$Qmqpa-rGFMx$dgf_m+vsAH5Vonn` z{{RptusgwfWdN_#gy+0X!3@A@-G#yAz|kQ-oHig*VD6?U({hmxh&V0mL8yUT0jxco zg?2G0>!GYXfxz^1;)<|1LNo1~e&CaMmy){5iO-C1rlQz!f>Bfil_)BSFlTL7j0bq( zt(>w6&~p36DyrL@j|K==r%oX_eQ_T0;;h%>9mu#+ZGyTD;v$cE=sCsr;C8%VY+3*` zHF$1&IiNM>A+fJ;v|8g3mjgje?biWtOHR2nP!c$mi=zoyflpix_Ay6?FVbs!$loro zzSww>JIkV*WPmdQ_d$#@lJ|t5HsTM57~Bue2rIJUEotTfD+!awcIt{Fdcz>P5DU28 zF{Q9p;@U5GO74XrFZN+-_ZF~4M&2B%x6ndVw^hHR4Z8w7jW=MlZe@w6>{;`KJi`p% zL>;YVr^?ngtL@Uaj-_O=8tCV!c_x|v67H=M&6)B_?YBUgNjbw$0POX@r#PV!D+u^Y5`1Qn>`2`tE6m@nlUq(Iq+N!CnU6z9S1m%z=$bO z$=2>~`{-2_w68v6isC?t39fD^vfzL&s@+Bn;E5KtJoFW$8aR=(1b21Hew-ai;y#ZL z;|2i}tWq8IjV>w}4j22!nKhl}Okw#;@4$BTjkhfV^7)raZD_@fDmqWdAcKZDKXIHm zFiMzmB_<7|$|=!^I(LICYVo~b(C56N4LBiSL~rql9TyhffzA`!EXg$-U79f1yLg!O zTw*E|&M~#ioef+y(P7S557sjk)7BuEy}2Pm+)9<+_MeP`Mv4{sd)86QHN^q^;N_WX zMGF$l6eF;2@tgWYF)L3EVME_QE%-g<^kUXvR*^lJ&jy?h;5r=+Jj(V~j-j|$Q#5PA zqb%iWfj;ojajP`4)Yi8#TxR149RcCv8)HBTLt&tF?Ta`d> zbwe7T(_cr4~RvxsLO}=nFduI3y3j3GQU=9+}@@bO*AlxJjws-jt zIQN+pXa<3e%A~uW(HRf zx$$ND!(qlTvV8pGI2+DR!4qr#2X7gE%jmIeY?J;TG+4(Y}RVXrcDXnDo}t2oGb20FLS z=VmGJJY$PkVHzl(&Me+OGC>KC8)VAk7F=E7byn*?_Q((K3)-ot{ei-D2s2^R-|rV| z1diLZ=yPU=4yC+~4a0cT8n~MHMLNh9#d(mlw1QGfY9rm-1~(?aUT(Ly6J@X`#O;bp|bAgo!Ey!&(I7iA;(FiLOVe33R0#p z4FXQ@E$XsarjXHDZ`q|%0pSI{wF(IXoMh}fvTOf^MxQ&+AH!05&>7(;|O?IB@x zlX?{>*rGBnS@{CjS3Zqn4L2`iiu zcECvKB_{}WafXIqs}?Og4c2OK;fTP3s&Zg$fRex~vO}y!gJMDj!FktQWtdoLS~WJb zqnbEeO=Bp*t{rcqCPYXyXP|ZFPZaVjJ^uiZ$cD253MvqOvVOq87y)6jc4Q}n#xhw> zI0qTrrPxqP3)nky37iiE5>^iQ#2hYw_yPp5HhY=1G_sMhYtU#lf>XCwyCeC>L6@h8 z2M@+ih@t*k{u27g6*{0A^+WXMBl|Oa1XqGr752L$rtZ;v8;)}*!uJ~cW9I-|5$anD z#G8Cz`T`-slwXO6$k>mdVCXiqV*8x?Q%GN*59_ZtRmYVQ!=zJy%_ubjJpA)IwioEfinaFBG_>YRBT{^ z3aAUC5GXUAV^%*)JLNlZl!UPE`;Y?JE|ZQPaCh?o<87~yk;UZD z)t0BG(S6`w>Kx-7xj^E;!O}5fsv#lefI)@205??dlL3a}a{+3f>;_nfM`Ec25OCo+ zBLVevpCX98EN|8n=JzN6Rt#tAcohE!-0Hfdq zdDbvi6>(`%M(uG#!OljT^y9gW6bwQ1JP#N#n4|>RqCsuD<0|ctH&bKpYnKiJ)2I>? ztkzsPX-zJxB3ku@SQf+GHSxSKHWRoJc60-%xU?d-RUMXzU#zW2s;N-?l(B$h#`g|m{|V+C8y$M%q6I=ya*7Ta~HHaS{#MLfsJB? z$B<8m-#Hw2NNb~Fvw%5qjbWgwBOQ@GFg0DUsaxv-ZEd@To3Up~cdVg$X3*2DR^BXY zTe#7#++tD~2D6m+j3*(NAB4sTAKn_S-eIZ+#NI_!c|2lR=uR*Jv#yK<)ZPbR_srB% zb@Q7j0nT14d^iFkpBSe2VN&(?@tiYYL{Efxb3?VY)KP)ta-L^5tbmu-S62eXu3XD| zy}yPfv(^Im8gpieo2PxqI3-h&tVi|%Ie33LKIs@LVFE1ISd%j#Zmeru7(iqIjew!h zW(@c%Gf1*Km8`zy4NyvKQ>07gaWf%Ll{!zQ#W(N@zbD6jcZ3S=bR1rb$T4kLCAH>v%5Iu zH=NQzmtgu;Pq53LXQb2^4wbKP5b{PW5L2ZZdc?KmF!Hu@i40$iOIjKgC)O~(qG_*F z6vTerzG3(~$`=+li-D&RZ~4{5S+ekeZ525OCCf1lSo0PC0NfmA<>2oEn|NY}QXFGw zzVhJV)yhC)A+YBJH0+pyBu9)*dfnv$1ossI4zW<@Ns7Bd;_3^$+uL_}#(=YjB92+d z&KO`X9pWJ7{ot#8xSAv!llcxV_zif=?jdN7{9xiM z0k@oGEd|#)koU;>!c_v=)SL=MeCr6p$b^VQyaFZYUL04G*zXoX%Gk6Pw1?{`pZ%j4 zvL))?@Lj4stB!Cqi4XfD@r4#}sj-XIhwC5{I@<ZBy>$Uu(6bp>MJNVsxJ|AM2Tx(rX`}0= zN%l(c_ay={a?04~d|Kr-x5-7fD`_v7@;WGn)>Q-#2C-scB5>6On;Zu@vSFY%>I06o zox5;tdmk_uS+0ZJ1q<3XU<$XwWK{5_W2B|i#p?kmDa>O~!t(0>0GUbRnfO-X2bZ;7 zk-vn+U3ah@9Y>9Hagb7cVNJt|Cu5AV8aw&G+MEQMF|<2Qu`V+6flo8M04DpGruSU8 zv2~40vz%eAF0i5Dfi&}PxwBf`2hMQ_{{V~+L%dMfy51(*5@KfS+!zAWnS*NrYh2)@ zQ0 z_JnQ1xAGc+5HtyIG{>JEU37k?pgY4@g>C^Wx=K&lf-H^@mSK8xHU76A_}(#UDIR?<|$jOY{Q%H->I5H6lA3AI2Xwi%YE3yu=)1 z1&tU_bpBz3Af>~hh7sFW0HGh)>0QQ+Y`8F8N$CwmIoB9FgHac>9*;1f?HdL=Z0Y&L zEmvTtx@+=ctAQG!sU-K6p z+(DrETndpf>xkQ{eM5p^i12V}0O&EK0RWvD23B`5WT|?~lq++9km4uq>2#)(DES$o=FZZL!VR(DR9_;l>rY^@6bzZ@KJfy6M6|8t)j82ROn| zbm_wU0h-Q}+!o!AhgnqzG8n0XxjZpR&=rkk1{{KdR(`RY0bIG-{{S%IjnH+kys+W| zE6@36u)UQh0WPziGJR)8H2(llZwedA>VA4Y41W0We&2b!al zGloOd5G@O(8Kz>>{fwoOy-8PlZgRa0Dnf>Xit^^X<|laccX;y-qBY&bw|hSr(i7KM zv*M;ilQk_Gbt>SdQe`-~J~3c&eT!OZ zpGr8O=~}L5cj?DGWSeZrf4C7(tXmI9{_v?8qifTZ{xVSFp$H_>ytEr@lJ~7EG+3g# zFBs{nAS<1_{9}n+03W|*21dyBuM@AlRve@OaNM07uN%ne#I~LWo(B^(X3&+w^_vaS zz=elVoCC%^9Na%@a(_7T%8Vk1x7nZ3IJ?t1mznKKp?DX^8^sm3W#5>P9^qi+r%!47~74g%HJc)R;IS$ae`pAnR)Wxv2Ob~(VDMfg4cqd7kUjuKe=1oo&7ZC&!Xg$gX zsq1-60=ZLJY2ws6#7>CXWI#aD^@&KjPn;~HN&f)2cW};JETEb?#)^1ixp-vbp0h`8 zOlYV9VhPaa=M2fkm;sB&Mz9ixI1n|;`@D1-<-g;}6Eqoezh~p)jGo%=xhnQBf$qXS zBJTX)nJf!tCmB#@qs>jTSpon*LHawzd8CAgD)F9vg9qg7#3D3{Vd$OyGA5KzTVH&^ z!vaeh7x1{{hB-cMUs3He2pSA2g5Jzr)l|)ox{@6>;|?uAgAh^fHHw)aOpvr%`TAi^ zV%bphns6Mt#M3`1rGeVG+shNXO8Nen#6{$Xf<52k0Wn}m776jggzwH6oeNvBg#hq{ ztY%_F#@gxO0CR*ALjXMB5+df5zj(uUFsI?Hbj$@t6k75D?-w<@NBLdlo9hj6fY>2S z{INE1OIF=xfcKMEdAngGmavgP-Qya^bcA5a&V)+D&6zGXN<}GafW%n(T_a&>Zog=O%%JuO>wx8gZFR&Y^S4g1pb-dMB89H-V^YpCjuGCl7K377PS>QxN>f(? z6`}7LDSg5_jaK5LCEpG<|hTY;P_l$m}3y%LMBx0yi&T7_Mzn->~y6O{vansPUTr08h7U z9xIv7E6IqeWZy^U7SSCAH>hvxSqmD%c|1R<^X52@c^nNz@;hcDqeeYVrXUbURWgn( zjRdRm{{UF$LAn^Mc09FmO(Mb|)Zo#)V7BQ}U>QVj=N~$ADM1;(MxVUgF(642>#lxr zBS&Ja{u!}XIz$Vjc=H$h<8^q12gXwPn4m)FQ+T0)Jg&i_%_EGKN{>J&8W4y~1%jYS z4fO-QzVP=T!a*DZK($;fEAU|u4q*K!6cei3F9M{zrufJGRiNGs0wI0OKNm-kgS$=8 zsgM!YN&-C|nN4t)oCV#Pp`Lg;Y;@Ka(psJ6`z(o0twEEVH9V%UIT2|txyUG#DZM#u za*xTiXw|j(KSnxCC~>j@sCIbHex^@U3EQ>SGIN0h6LD*tKZ6+8bVNHI^MP=oKPa^i ztQA*mfubMuWe?pw7L&1U;B^3$#Y14L=643B^MdP)aEop`#{pDs zoGwPSdhZ^94N3gu>>APclR#_X)?Gm*Up``}wcO}D$|M;hZr(dF4NKVy0wv&lJ96xI zRcxeqJYa2Rlbx8ImsVQ^LwYa_NI~xe3JwG_v5V%r`Ic|U^rUg3--6;sNT3s_;?!iY z-|qk!)@)saw;7~2PkJk(|-B6CbH;3_)PGFIF>M}T>bF&NI-Z$wEUxQI^?Mrocmnkbd-V*AY zl7U@d&k2|Z8Rx@Gg0W&%U0~S{rb`GCF7zdZ?TK<;vKs_SC8TCBLxKi`k>*M|tVw_h zfXz1V7SlI-QUHpE+(0iB5}2HtRv1iHpK2BZOGehXU7x~7#Bp34)Um+=j9IU4&{o&1 zAn1d1Rh*BU5r!TDRZQYxW(Ea8U7@9_RYE1p#0NqYJHi^fIEbdfW6v(%o^lmLqjr>z zK@VoJp;n1?83kGe#CC$u5=wVGWf@0zMtpuQUE{THhc|)c4V5*|-cUgUPVkFQqpN`x zNsSl_&zW;j+3SE7P=0rt8m^11SO#o6u3Cc_fzA|c2z=!Rs|UBWlNrD%&v|1W|1;HVLE%tW(;1u* zUJu7cX&Y@f#xdlA5J5VY!zV~ULqIMueh3EN$}iIuV0r#zZw3`7oOLZZ$_fz|XnXgM zKAzXhXBES$9#+q_tP2mY`}!Jo!7AW(Cq!Qa+i{s9E?CaEZQ z&PRg`!408LUM>e%1Q{ow^@q2)Jz~BLPjO6JY951nFzW5& zC+eJIv7qpIB4FH8CncM)8IO$RaJ_*@FPCm!w}F`?q)_-noT_-Z2tb2VYeHOBt(H=V zl_&|}&Eq8%1pun(_jsO=C9Vj`?pnegIVN#4~)T4r=laOi zQ4P`>{<|p%rrYQoo@0mg!27$FY4%b=JhQ(Zyu<3hx#DHVP<9_j?APG}| z9pcxRu!+(;FvYZ#ELt$&sd&90W4c!9pjxsc>6<9Y)weIHUDHr6P7rZMW z_?TUk@Ls;KB9Lr&4>D53Y|c2UmP>lzEL?v^^c8$r?v1lD!qfO;S zNs`x0eu5AGc8fa=y$O#6z!?ga=%%jJ%i8L|P)L zxq|4cRb7B?BMrF63%)xP!^~jk94ux?%H?2(6TRWavM8)%)kW&lser=h=M}+mEacr+OG8>YJ!2@`P5%J(A%mz< zzef%$xkp{DZ`ULL0C_&ZJHw|$25J1})ed`giidlltVE9`H{8G^k6h@)ZZre^&QxgA zfR6sttQ`xW>Sm3Y5(k%i#N-H0V&X!8!W+$QpCfVB0V2Ub^22n}1MvC8qLvet%}9-} zJpAJVaPgw~k9ksBI>a550v7#wgeO?DRLEV-PC3RiWD~=UnWlkRmGPUHxnIj=vm~N}G6mm;w$3!^3+YBZlR(4z!84%{j%WT|_k=4vihx zAQ~?DZXYEISX1L8!SKZCWAR~6`6}#PRcs2Xj~m(dg$k1n9g24NoFz0eq29Vbt0izuucc8TPC(eE@_IPiIv(d(mp5v27ts8@OFPVkd%C<4T|Xu zo2D152woTs^412kS$L#&;N9@nA2RuqqFbCm;pw*sT$~Pq@VfQM-Zgn$ zp!5aT;W0?-^8$>nG#*R?1T_vcTwNTIDkFFoN4Oy?(B~ac0@bbOfNS!~=OFR-^N=Ay zdd-q{JzM}dPvPb!YIS?~$SkYOGSoLD;d0&PB2ACD=xh#8agF|tpNwIt4m$cVz?agI zt}*RAz8`pzB#4X8?-@86ePXJDDrLK*r_94iRn5?4QLP_8zc4NNi1+6V9E0HBxB*5u z_3MmRAs{^Frr_vKbC^lDycc-+QG9-KoEi*!aUltvm+K*$K+~h(_XOmqwM0T8-B+yf zmW0$}=Z+E+mt)dMgmAbDXsD9ll&|j?UY<~;JmCKTa?Nm{&!hV=mS{DD;P=(rh&Oiv zg7EjeAI;|M3OJKSH_v#N%8#^i zUeckF(q6c#^M^l2724=@{Ng0ECC2fy5IPIu-Q`j8ZqMFD2K1q6l#Ds6*Vauku8nbx z28U0X=xZ2pni&KKhXpYMUXP|GWIgm>aPK&HJnI~mi7osMNj`<5-Xhn@u+5 z(>Zq^yoJN7sw_)xhh6+{8a7J7e;HT;&Ne@s>^a`IT!HnB`PoxqrR2%c$ZxU2iZ~VG zZ%8XAXdHhmTcts^1I8lbKZJ}2wQV`Vgn|RKO*O_WhN%h^K?9$gIh@t-6JS1J?iYxx zdEInfY&j-7N{V!LInRNtbdSpM^c@&YQhLA4LM1O;VWGfA@Jan*)Nw|`Oklsr>oy=V z?JPYWP@2u?kz8n0j$d?PZsNipP6wHEO9AS0!v*lxGQvGO$?h<00$*`~NS5n*Vw1$| z_{%jZC@3|DRUXJZ*H~}{tZ;+@7&W&YQPylND_hInIz>CiZdrwi?i*e)ar%~m%TjdS zJ}_zHu}%F0*f0|i1GidK{1L+8Fd&XI)(JXHKz&v zn214V!`39Gi%nm_@sQv*gsN<5!K?*LV5p}k@aAzu;PanK`Aeg?Wb&j(TA$f5(OUmkTgKE*gu5!Ze!T0l!5E!`M;~5gP50~6S0oh~m z`M|a`0@Xj`9f?b)L4V9qqL92#?&Rr~0dD)r%BsRnySN-0plEOV#G#0V%Hs7vL9+M0 zCMGdGT>&}7_>=oE=Em;+u~k6?5rp;n$+8MbVY~2Vu!MrS^9zt!oJ}So!>-P9+WnEj z2}M^bGe8F;b;0-Kmi7}LhZ@5f5+nlAOA}esw8#bBzF(|GXCgV5oGI!xqNFwExy?bP zqErCW8~*ar01>h6HO?^ru|&lL;AW`cD~5mtelkrcaB5La`xoPap)_HySgM>xrN%D} z2ZSIvVb!-x0bX$m?g#D4@CFsd8=fzv%M!Lv)@~pC(-2TjKu^|hUt6*HSVhqV!{x{H z2DNm%LnNBeS)p#q``h4c-T|Vpnd}VH`OVPllVj@}f&-VG<%842>*EcT2N2-M31G98 zefY|l1Xk$2&`lWv$*)Wif=& zXk*SMlz}Zb@y>4I&5r;*xdB}So_WzQbvH@e__#2kDjT=gA;b!if4nFV9VWjkf`zwn zb$^XyrTl+Z`-=(3LvtguK!+`O{Nn;%Umx{`I2xPZ?=F$3b`K*m5m|wx_j#bSSe;up z$Kw|1z;x#E=21|sQ;Uyy{Nkl2oMn^vupS7yA-(6j6&Rcf_&k`Zn&Q(F~V{T)ZDz!p579166~ut{me- zK)qmO-L_mc8v#Zk7D@{{8_g}*8=+pG`)Re-;Ub|;r8I~pUPMSO)5Gf*!&$Q;fZHnc zVTrmhS~stbxp65!B)Syt@|kGyV1)=Y86A#XP+3kY1^{YE4gNlH>5(>AZqBfp!MNe) z7%`2ac6N*Nl~byGE&%xnuW~7BT^t5OiLX9Pw)7XzkNd@Fg^t$+$U;WR*Uk`wLr*&W zWsRw!+Z01W4Cj+Lu@%OFIl z)%h?WrBFg?ez?dI1=+Fd?=(RotaA;|jIJtZrhKs>Z9gmSaSCa>S2gnts2U9~{9-+d zVcL9U?S(4yo-$1ED&5`>Fy#=D>^(mj0<9cKBi=MT63)OmxCF+*@ZHnX9ZpfFlz7Fg zRVoYsT@oQc!8lqrA2{r!+@#(d0mhs|`@?|HzBP2lK8nCp!>3*Bz(gir-? z8&UoNj5I$Q4Uy2AX0NJIf42kN!2qKHMSmEZgO)_P_q>h7)z+KwhpD7g8$LYe0cbvV z?-ci&{ov$p{ft$FfzDc$o6JQo>k}jz0=$rq(qUGUjN&e3iWdI>jx>-IP7x}7U{S~~ zs4l%h0EP`ynKTV>>=TCKhPdyw4EZ&@uE^OW`E8D%p+=fTz8&*{g2)i!O@-4in5QCb4sr?z?^7I2D6xcJ0B4O$y;2A91ab5x(n;7#|d9?Dscd2*eQU z1REs!a_&OxYII_xgaqd6cw#VcCf|%k;hYz`gXf}Vac!(Z74w;zrm`ge(=WqiErdc%m}UG6Ji ze8{UO90WV?$;c>!x+b-kml7NO_i?DP8L6(EQqt8=hZ@MBjkm|%LFlY6Pk7KFK+{=J zL|Bfm8AwGCU?03i++B^=n1M;6r7$Qadf0XxU?DZw!>zzp^M;txOeF)koa9X`ycgaDyd3;X9A<+$jro%Qp9!iX_Ra}RF z6+MU$JV5YSk#WfZ*dPzM9fhr9$MiKeLg^NWvSAQaiXlrrGiyGCKi76T91bi5~8WS^*^j+H?VQzJ@+9FGUyth; z*Z%;)C-IuN7wMl2!Li#9daL=!meWp9==%34fkX#R3x06(Ob-M;FoIi7wkIZC&|Msw z{{S*%qp9K6E8dASWL~;IoT&s7D1Z!yB{59tAbJVSJFad4%r?g$Mbzh)El7+H4AiVl z5k_4*$2VEYPqB>st_#c$?ZuedB)tZv{KGW^upAK?$tRz zp}>A}=c<$z#qI6L+0dcbd*sH#UnB;oYm1yFc%x9(x-J9~fNs|L=K)t01&i_I!MR$e zQxpnH&8C)kQ)eg z@0I$&K`F3x@BZYP3ZsBt90bV#omKF}cts?=d6vx;g#B+Q(B##f+#xKgQ(q6n%_@U~ zx#RF+YRF*94<8(EWe`Qs=%)_u3^EH|b;x1}(Yh@Mx#n>=C^nzZxo|xV{I+2LwS_&r zN#m8%0Y=aB1I1KVM*77!VDe2S_1;9+LsVCT7mKP*Urc4YNfY)ns3K`2-SjY}DTou& zIJFm&F||IN<=J!%Q=j7?844=eKj#gC2@S2LrW9yDr|%LkJ@V7J1fp!kir0D{ zym4Z~(V(XP0H=6S4!Otx8*x^ciUF~Uw|4}=75;`*FK_P=Q}klsRX849;I|AECvo=@ zThDAe>DptpXerWgou3X0&WrZgX^Fj-(Ea9+?_8JRtR8P0A*l;f;3fn`ov8C;eC>iU z3XCONzKi+9putq3R>z`j>jw$Vy&-KaHkWuxCjhH#`FRh^g$Pa8r=Bh8$(+bOQ7_&k zraP51(gg>Zg-mk@-8Ravc$q?LSCan#?sM}Rctq&eI3WTnOceeF=NMQ<+k$=bi)E-E z5NCLR5xoQR!-z`8x9HU5a%j^<*29r*Ntzx?51PA+P^`o**ed~53o3?4^sF&4|U z9pDJ5dw0J703KtIXdu({+_*;qUN8BJGe*UA4v*o+4M6&YQ&ADlFRLq_-cIbu$PAZwan3WZ_p)x$!H z0R<9<=KaEuSdDl-j&+S;6LcDNe0kPr&48T_-f^$ItN1DsrdCSW=Q-05! z9l_ke+=;$Eo-vrIBl#1D;|EMTurJ;#U>+_ax*?!;vwnkD2T0i?Nr*i0yxBTc{w8*m z7xu>Djv~m9)KHKSh?%4@WhHw@QT&O{0@C0D zN#WV`fNjvDRE|~Sw|X(3gdqx)7Q6Y3DppMv(|+aUZN#!p*%@Mo>?PiBy#_fQA@Jg_ z8md*oKK}q%Fi1-3M7!@s@hfx!(2eiBOf*C*!GQHn7;d{eCF!g zklQ<*`H*$e4gNUi=PgB$n-`jUoI#^)Y4QBwTD-APBMxJe62%RQ@9~#w87r!B`Ey-e z4ZfCZC$)e96zf=&0EfW5{_|mB1MqjJf2^#$X+^#1$?|5F4)c?U_~g~t?nL7TwnGx6 z=}e3qavgE5N4!XrYSx3_@y7wQDKW=fTmvYeGH!Ryu|_CFjV0D9BU=Lp>ssR=eRKmy zpIBT+MNM8e{NbTd6SKS#7V>!3LtPAH<0Fl&kBpHtzot7dg!wXuxhE5Mz&#nrU*2t> zH_`oLv;rW`>kbh0i?)MS7<9CBXt`W7O@&{eN)CAA9*AjNfe~of4dOuYpDC71e>pev zfggcfY}1h5GM>Ma4;1JiZ9&doRgi3S3kPGf25=!}tq#WVkf|Ci7?&$PgKlzRz)@iR z%l6|QHzOlM=n4Vf&KG!)(8vxFInHoHTG5Z><1a|td5*t7yy0jp?APlQkcv_$yHB9m zkw=y)&5q+0;WVjrw;u*91mkKO8=a}naq|)BNzMDptwU);51$?3dK(GDl>Y#XWK0UO#wpfJ@5EBMJ)Qi-i{8M_Tgng1dkY+=zky06De-j2$Ps^y>nE0Y}cAed45* zm5$y6tT0=maMJO{34y?yOE>4vJW<8r2kRIzXt*rv1B6C9(Zzpx$}|h2lEeANp+!=m z?~5`D4iL*X{A3LcHkutL_k^t`oz$Gqj`BjT5K%q&oZywjwkF)`2%-qi5qA1L$aMq& zYP_#_JQM*$JV(x^0Tzf>5y$7;S(Fu;Jc;*+m2yKtCwH5G0(^_id>GLX!hC$XUfk9I zG&ceFQ;sn5D3wJ20Pn00Fo-u?$*k!Bnu$AqE;I4vtUKA>0})Ld%0pgnoNFCOEjJQi zG|J24hpC4Ve1!>DpVl1eqR<|9&KQQoAPpWHaXf{(RO5;op63gIXi;y-bC-RbUNR6( zkp`!140OX%pFYUr<3*l~L+VtFH0EyrzH?WjCBg z)5kqW#DcGBjIcuAFAD=hL!Dug6bfiq_uH#EaO4UTp)zYioZ+~n8RM7dSixA9-TXby ziGU+&!G9g`oh~f}qUs-h;D_$z+#^0Pk3J|9!Rr~kMNi~q04h}c0N^UBW zr(f#;S)XJ*vO`Scdn0Pcmr)ns++m zyhPV>q||u#8`DT$q3r(g1FaR|a@{@eoqx-R;mvGMcK-kwy0Cl}Y>Dm;S3ujhtYjo~ zf2Vsp$r2`u@1I%5kWxczDL^AzlfB!1F{;?`1L67$_|1Yzw?*x7NqQKNdBrF#3Onl0 zyigi=2FOt?n4pkBqHN~jR*9Q6-@ooq6#n{r@8cM4BS>O}UbT@GB8xX+^wva#-dqP$ z{mB{yPWsj68K5wrs}VFF%zz~9d8@w?Ya4)x0S{fCzVVXmtOG>SmnyZOo6c#9NsuI3 zS@rHua0qqbADr#5MLO^&Ro^%a(gVB4Cyc@kgBJkw-rPB{s4~7UmjEM*I)3{2!Q(JQ zRQdUPf}?O6pNrNN-AITgmjD|2Lyr8P85TrCXF{KO2udA9A+MSE%{8VIy{)FV)-z!4 zrl2@ahnxV3jnib1w~VD!TMbg#{{T4CpB+WJI_r#(RCKlf089j{2m~j;e?8$K2IEP^ z_;8s36MMn0oP7#fBePQZkJO6}bMkxcON(|}^I2e+D4u+n{{V-~JQrp-%aw(Pld$-~ zv17t}s!rxoNjHF4wJ%7Z;KpPNqL7AC&_XA;>Zp^;WGxIk%9a-R0N#tND#qwi+)#h; zal$4f{0(8Ao%MrB4qumD50f9Mq*4*=Mj+b5CR$=&1_&D$&$zn)3AAl@U0XSNF$Gj+ z_!VAPn)2j*#fhhu(?dU4T7UryD)@Y1CLG>$*xAN3Bu|o@%l0{-%<6JyfAf_CfV&4r zr*|LPRV%5|I14#v%xm|Injr3@R{}L5q@{PSFo|zBZ7;7FX$iy*+*i)bD!e6!SN+94 zp>Jot;}jD0<8B;E4TQIQbpHUu2+S!H-Qyz>m>j=9@?j7IPlfsG=Q#Qjw{ynuV`&$N z!tcy9LM8*6=j-PP>10P>&3$7n61oht_T=pao3f8NHV97uJb&L<&P24ld>`g86Y5UX zZhV-o-3ZWitd`ns*x?tw{bb;J2h+WGg#-xTMeO;?4&>3${$>n=A>01|9(R^K7n98! z=QI>z3)hVNW25Cr=p@2c=uunn-yb*-93ZgXuhs_Axo(K?dcZg4+r{SJjOGKritLo@ zPTWNsUGm*>{{ZoXl@3S3 zklEhx;4C-DvIoh<02~80=TBc4rQ{+JPdVNc1dRoMM4jX0jE;(Pdd&>?D_e0sJHn-% zjZuW)>j|(CDtuqtlSe`wFAd>=Vj-(s>&`H%LRJd*dHKXD><*K&d-~0S0JPA&5Z(6> zHhhanuD-G{TF~~IQ>DnH+U@;gl1}J4a{Oq;1;hLtgoDJ;IW?Ao!YieAzj%w9k$P^c zh973U{+-}Mum*-QOnOqc<9oOYhYBCFybLpw1LQQ}Vd5|faIS~m7$AUA(GA|Q@F)qi zs0fyVk=vhDjnG$gp!XJO%KMF?HV$8hE{~EzY;q8XkU7g(%n=a^pm@Z2US}QDH0`+l(aCR>Z^W;ny zPS;$#>-U_dA9qgAelv2TRd+wjiUKgOg*1N?c?IWT(SyMOXnwf(vncFQ6&h^UW?bSc zw!HDVcT=zz-EQ31K$|-I3t5u@R;I?bYrGK=K}dDin#wNAsL>AZuy>1=+`r-Tydv75 z(2nZ$fHP7%H^Hnq9ZAb(_u(db=4um{sr8KlqG@9^zd7EBY6|J!-XWGb=@Iv(%0z=} zo_>GaPs@^&X3op};8(a+wJ-VRXdpm3bvUHh>m@^{LtNdCwTp#Oes#TTis!(RwQmAbDm@M1CQTqAG7^!p{FDra|&8CM>{6Cy)0)RI>dx0DTXx_)T zwY>mDkNe(kbSSiI-PZywT69_k+s*4D8dI-Y3#pW9#>=*kf!1!#&@L{Q<-0IoXwD8~ zc{U|05ex2luVBFR@?$t@YCYROtS!85$Ub~NF<&5b8g7UAjE-AT+|Y^oWk#e` zc}{Eow0IU(?c=X-bOAciK5t{z zG6ZZ7KLPWbV75Fu@ydW858&W@a_hCEKft_Yc&!th;}QX}ZKHgYWXixX*brZ)2)NuyLw{4Ox~`~AQa_&Oo6Qtp0-us<<<}ls z1npahu}D#=XxX$zICa2xI(&WLY+^2TmhSH zLBR9(zVRQ$r+)tcSZoH1HXrL7Y0an+uJ7yP9Y-Kp%J;_m$Iybi>)Z6}8Kx@7PzQg3 z%k@qQG4_6Yz>(AZ;n4R7>8Mk{C9lIV{K4> zF6I)*T$&1+{bCNXJRz<3$2-NCD_!qSk7fgzbZKec@V6kYpIuey_{SoZ-+SNf$0uBX zKff}_B9gXsZbq%Cr!3>+Tf)f$mr3s)X8J@xkYwQQ-ZPF#dvw^no?(WDx|&V^+%YdS zKnygK@s7nOVf;zDM2L|6xAVhIR)51NEnH@&#kNp_B5;W8tYEZuA z&;p=dg)gQlQF*4ub)6?M&Ua;I!ijun2qL>>Fjev(q!7YkpA#RrJR1USVpM|J|6H^5UDilN6g0Y zKz8X(E&Um+dhpUbCr!XXF|-tm^Cvi5D5a!Sb=T(#!%uK`I{akiNM$5`4vDu3np)&R zr9bCb(r8^FZ2O-XybC}x;-2E!@t20};}rDRt`yvP)PC@yi82)CKELJ*)f93&`R@&P zJD!XG0H#A5GAPsS)-b$Ee6?Tq8Q=o*G2#7lhKIARFI9!~z(v3}zvaiq3wZ)Mt`JUm z$A}FnV9q}9RaX6e97PUmk>2KLj)4u?32|X9j)%Qpj3U%T17u$!&*unmjpqQ3^&DbD zNU7)5)H=l_fs0At`1H$Nnhwpk`qmq89-%13_Zn~rNk2|ph8v1@98YC8pC(PvtFS(| zaFNq;8|Yv8Fc&Cv83iMLH=1P$Ev!vfvEv6+G6uEH+wfwR7uBHsxUj^;<689+Um?o3Wa19BzT`$5i4kKT*Fbrv;cVgsqSc< z?KTHd{{ZJKDQtqo;rx7J0X8D=9f^dvEeaLqx^-Qph7yI`Q{b0z(E(8@=R3#)97no7^qkvz%ncxD+^4UDB}Ff2I0z2Cz96FggyWIC2mS zsPnj=&RH9bg*m!jD4|*_-5$3q%t~}d}q#O;QXgb#MOb|$_d4nM1MP#XXtbYzl zn_9Y7C&m?6I~GKFJ=a0*7f~-NJKW=VNF+nouDAQbjRAo{x3uRsYvEUkx?qoy`63D7 z#l$rL?POa&CPT1Vt;h8-9iXrfAx9BXh=SPI{Qm$r4Z`i+!P@Kja`bAII@PcFkab;< zqWnC#ECBE_h4AYoL#e>}f4GHn?;z~-z=RI#vy+an(21y3V)H}4tOAH^j-VTS-|qk> zyNN1)#nvz*P>6jS#VEx|&bW9Q#4>>qHaJj!%%+kBD3i79$CqkwN4;=)g~6h9&mW&K zL;u3JNv}Y9WbfSOYS5=28=Xb1mk$zf`EXc^6&b^ zR-F)AR5vfTW)_dA96RrfKr|h?Al^ z?0P)0!T>?igKy&+VRtR}yiD28rG1=vl;)t)Q)nkV;`m{;i%G1k`!1HPE?Goepw(H1 z7@`oW>qFD-0YL@@6~1}i50=+ycI<1T>jxC2Cad?1BGXRMBz6j1e#CVDa$ePL@ozz@F{NPI01X}s=F|vC5 z0O_BftYsu3@C*L{$?=MTA`@<{ucMlP^aToTz!my*xAKU>sm>NOlva35f%A9zL={t6P=9n)7z1xO4pAkq~T-_kTTM z!uA#D?tUgl>{JTPq4{%2TD(Gb-;d`ZDJ5xt?+S*K9jtfrkrgO7wsB`JITD3e4xhem z3>l(ceZ2XEbRyMt**4tYN_@q-3M4WnHC`Q7M2B*fcMQ2AK67uC#jsZISWCqYWPyCs?+yIw|pF71A zNP9)vpN=wMa9xV^;yS^kfl*p{jmnKzasL22Fw~X-nuF)#6{0vNi^sPcfkH_N?~Use zOaXN*-KED63Xx-b#sJ5+CmcON{Npb|c&X3Z%m8D+`E?Y=B%Z`DJDbJwMvqh2eB_2R zK|;Js!STiq7Q&ore*Bn7;9b#pk8=X#V7vSP;KKrVL8wjd6>5US63}h@=Zkm)L)pE< z4p@c7=kw++e3Oo8p!&p#EY)}ipS)t^Pw-yx4J1_hA0BTTjcT0hPs07+Ds271Kg!{- znD+KN=V`w34e3SYzThP!*joPp-wS%HCfN>uIPnK#;P~?zM?#-mt|df4;WfQ@*^0Gy}{Y$n2LzJ14Q2>}T4Pn?FAbr>PNg>Ybj4O%TbGD3DD>3PU90+Lle-*_T! z>9H2^?$-%G$Er`BU0}`$E5MwAtE@N!BZ00L{V@y%rcN7m^>W6hFletZgaNlFTYnSx zgp+|TqM5E+8if?=Mq}gdMYri&FCkF=fkPsm;v6;w>?PS4#Qn4P4B&rOXoX z49v>J2xU3!{^M4?9j3KD^9-IGz`vAbLbU*yu1fDOI)c$Gtjli_@h=Go%LvrwB9O8v zEF}`#@eeWF7nor+DeW_J)OS5gnCQ9aZdo-iiII!^qMzi-eU6T$vF|PCvHtj%BPcE1 z#6c4a2MSAb7gIQgG2SO=caF+}(=H9Q;&S+w%DqDnyCNr;@f2BAGv5-i15sI>;%5xC zk$9MZ%4I=bWjAv-;S?5Wg!)e*rA5HE7Tg7%lpDVK!RJ;*@ zP2y%$CiNc4?rRXtzcCJ?++19>dKX;~Kn<-E1Z;6$i?^@2-uFsQ0o&?U#6rlmurUB= z7QS;FyK1Vj{{Y!V{i<18?@-9RwcUncvFQ;8(&M(z9Lp>O00mg1H3LLe4k^p7`Gu)n zP`fMt0J9V!ZH{x;l+EnAJ1NVY0nmtC6%RMbt6E97~A)_}NQ-S6Pc&DaBu>SmrLusLzZ^8y8zC{0G-uP6H&xJ>f#7RJ+0 z73G#PFiQ!Nsy=6~EeKF|cMkV>YFr5ZA{>q^qV^8w#6zA@&6-iVM105b83%OTTqh6} zk0`_y*bBy@*tH$R+6;R!D=*1$SFflC9zl6+anB_O@h!#5c8X-4p*VjDgm2mif;Ku~ zG2UV++F8Exim92Nmx_ix%Yh4O?JtiMbF#+MzYs>KYio49_m6QV;-i! zD1cc;S2=Gm&ANc$d#1i+N{p42A90ba+ooP98{Ze}P}#bOe|J~?#pyvDmvEl15Z|mq zk$gh5Vqqr}mcY2(g|p3Gie^Zb|I1roea}~msTrV1UxHA50$MY$uK@MMz#Mp{jWq#s@VOc9F@olYgWnzG`epu0COv~Lk6{30|~Z*XP+LnR0E3edT)xIjFw%G~A-X^2$0M?!NBx17pi z!r0!4#U(J1kfP#|-8o;f2Ftxl?`IP*Pz&hpe`$tQ2CSa2INdRt>ofy2)F|=}TJpxfCgPmXIA8lQb*>sLi7kWdd_optj0lFTV;nTZH>3NN zkP@;PE>y1au{h`lM&lP9Q>7y?vclTkN6Khm5VYYNyEpZXK*`=2dJ9XmOlB{wcV?yW zSYcf*LS2tFyv@rS5Jg0nrVUbR%FJ*sdyB-Q7cKS-wGah7ij1li`317Ij6U24xc8ij zz;Tr*_RBJ=>1vEUDD1mO#3e6+f*lQxN{Vz_3f@$;SAi+OzGXm&Dy<${nTm_lG0sPy3n)D8kV9#Y0Dls5lgOX8;E4@LdU9&Ltd6^!xpX&a6J#)C`c_P zZ`9hQU0es?ElmlGN98ZCf|{7^Hy+rjm@SPs9eIJ+*+Nm+SUaFAeh1WL6-yg0ftK#u zHDT;kT}5ma>PPJtSF$+#wsuyeeije z_!R))7e77aii7562SgwmlyuEUiG3`VkAL1RNF6XEGt}K^wpN2R_bQs#ZDIYzMF(Zf zC6~R-ji94XoDje*{v$gj^2gSrwalC!rwk3dN}!H?!fiUW9J%oh;_@FcQNT0r0JP)y zm8V2A=4QEW`TW8vpjvPQ4M+u*Sk%&%{5_N;<$rS(%o?$o+HOfj6tH+63Kw>7Huq(4SuIAY!?s1 z5j_r1zv?=_83|o%9&G;Lx86_)w>2m(=3*?=MSk9@;U+QOK4MywXt+I*LKLPxW556f z5JrnsMQFmkf-1#P5NpIKs-N~?M#)^)^Bb52)CgV&h-Zja(ctBOsNEt+DCfQUgI6LB z_5khidP>wPlAsI%@7$pF2k`>Lp$-779$4aVK_R%uaPu+KpZubzZP3{YvhK{JGqBaI zsg++|B5Hov3C1rM_4$p;hys=>zz+F}-v`WHf20Kk&b)T0aCr+gf6*`{iX>Car*X?M zoI5rG)DRAhSa5fRao=NJ@d;*{w7#ruRYFz-;u6V4_D<+@g%`f@uYkI}h|ycIbt_SJ z*~9t1URZz(sk0%Y)zlYdR0l7ZY>k}mR%@V3gyweW=6mS)gh-l-nIMD5<_!SZPq;yd zmoX2d^zjVHOA*d|np1A_4Rg;=U$ zWjZI3mh|Bq5BX7+&eP@uzJ&(n33``Ph;9f+&v@O!q0l2zu_%CZFI$S2sH8-M7g?8g zy(Wq_6c4=mMU)i0sdmIyy80V)1P3)2d&J5GWcrkMYw&|$c!C84DT}V~Tdxq*Gzdu# zKWre~rAY{6YvJmv(w;P`@$KP{UqzGzVwmA&L{T3X2{c zd`nOij%C!De52j@fW2=R0&v^+%y0tM7x%$;4|)6V9hDB zA1~<=6`WpOqoKKB;o0*r0HEN67UPzB+`hMLI^J~+N;!iS(ztrExAHRwQHq8#2J^RT&+sauAXH~ zS5Vd^c8wh7Z>44x387Na?=Gh(G(?v3D3vh`&DeCVzyHJlC=mew0s;X90R;g80RaI3 z000315g{=_5K&=qfgmuEp|Qcy;qXBJ+5iXv0|5a)5c>~GpWe1d{{X6@Uoh!d7m0yrA7sj;?x~CdsMy>kLM)drmvAo<^kfL7gl{pj z0gQ521ZFjKZh^2O*$_tivC;;D(^*RiZfYP#?~5)rA*@(7QOpED_8IS;` z(#06LM!{0>@fl!+9M*iJfQ0f)!}y4hw}7>R{lu?wsGw_fc<k zf(pv$m%DcTo+U69nN8{n8AM_r8Fdy?TGc#gj1adiSm$KN5JM%mhM)nJSY&p-?qyA( zWP{0Y@L_GRHa!^a8_aoDNmPdK+)AOssJKeIy;==XT0-eB8y`t8TS1hObGO zhJZ51hV>Wdqy^0!nJa<5(aOjpwf-qEUA6`9Yv>aCLxO}Gcb%xyTlGqC0&EPd`BR^5Q?pN%m`H%p5{3J03cc$p~IH8`IJW6wR7$&T4)PE z;*W@|D;KHug0taZcey&NRoh(4T84@%Upn}Sk7BqTQ*b0|T7gp_Zx9%ju4==%qNtQK z9iVrQQ@?mm8!j)l<b>ueQ-LWnW`P1if|*brB`%^D=pLjeGoPZ|t^*>oYROST z*|HA!ABJ|Yl93+B#MA(F$F>me;CMXVfbSB=Rk!VK9T{+;7I+7^jq1~Ap}KfE?+R+Q z51>bfw5!cSiV?=KqF*6<7U5PvDMdo1!DPD-ZV(wvUoah?DZHP^trZ*F-Vf%k7=r+b z-9gD3t;VqV9uCN0s3@k)M^yzvHv7&$vY6;qmNnlniq-((d}zv5>q{`gMAxLmqilS~ zvgAdjGJS5M_?d(?IqIM>dRi@Qi?mvmf6gJGOYo}VpE;B>Qy%{S;PWhlrP{&R=jK*$ zGqtYSpQ2wT22j9^QGYv!Edt3$cJG&(nu9QuC91}-@0b9%u2w2qoT{&xMXV3wm{jn( zn4;Ny4z-XuysfUp!W}4yxmB&}EZD(Ch%d}md1R{>jfw@MbU2h87BUH3gEE{{R5Owm z_yPhGMVoeC7{pstIQ~Uv@hx!F3R|+RKQJ;>3+-L5QFSyKfp9BzK|*=4GImThtw171>5&g&|AE<&$(4d$Y9zGZ45Oi*$_RgD=1zrE)P&n*CuXR!-#346f}nsDiY>fmgXQd@Ds=GD#&D(S-N~c zj;0jKj?UEyum%Dp;(h`2USk`MZd(Tvm{-xPZok=ZJ23_9uiT)o9N#`-O{-LH;bgy( zZDcAk08)6&3$YxsDdkgN2GQgPY6qFBB5U5X~+xykoTy!%$AJ4NcU{ zx+e6Lh@&Q143U&>Nw+>&;j=NW)d_f(;(`p31T+X`v)l}MC@_OmOepgxmy94SYt2!* zC5<zUBG9*BHHXAvotPuD zlxyZBUEAOOMu0n->D;}1l8lCqWtT6hTVYf?{{T}$(X%@L0NBG@yl=%~6^O-^YV6YB z)J~<2(*w;+O5ED^Ik@dNa<}FR6bSK-wk%*~K+uy+uWXkSSWXr`GEr6_s;$aU49^=?J zIE;8>o#9X2KyQm}J9vQ(ml^XbGtWwcErzNK&r6CpOCqYvDxdSTT}mW+oJwF#H9WHJ zLZ~*u`(iFB!7=dfaD~+m%f<63S7f}+dc?iB{{XV#M@SsFKiIH({=p6zbEXz%=D3j% zxP7HEaQl@UdRy-vQds{0gvt#F0;>RbhFvw`U(x-0lrYs&BbkOe)N1Dus)O~=g;pbS zreo`+=36NAgOX5-(h-a&W+iLQhVcd378b{fw$Ejq*5y=Y0=E&!6Al^e!InOM!Qo`;#Hx|~^ zubE8cS9cYwu_|GA-UeY;9#;m)2?07XjYd25HPCun7ov2$^th!mjD%qb&?eI8=9 z3z_ZEgY{iQU31dscshXmK!}Kfm4tRgmoEsubdAVSKr4QCk$p!**<=Q8hHJ)S6)JC3 z_ROvWEjs=45V5>VLsj20m9|zYRls7qKxq0as#UVJa=cD@Uo*2aE?itp?p#_S7ZT^0 zP=i&{@fLF`QJHAgnRu6p#LVUk3455t ZzLyzt^(~TDN}S4?i7b^UjeSW!|Je$%m-+wz literal 0 HcmV?d00001 diff --git a/docs/v3/atx_led.jpg b/docs/v3/atx_led.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2a8a4f0c2ebf9253736d30ebb7bf1332ad95c946 GIT binary patch literal 59727 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∈SGIG~`_@@Q`>;wP@ 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
44ayJx>y8E9}!q49r4foTj?;i^Uu@JRl% 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