update
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 148 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 794 KiB |
After Width: | Height: | Size: 221 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 69 KiB |
@ -0,0 +1,51 @@
|
||||
1. Connect the USB and HDMI cables to the target host,
|
||||
check the correctness of the ATX connection if you have made this option.
|
||||
|
||||
2. [Flash the memory card with PiKVM OS](https://docs.pikvm.org/flashing_os){target=_blank}
|
||||
and insert it to Raspberry Pi.
|
||||
|
||||
3. Turn on PiKVM using a power supply. Wait ~5 minutes.
|
||||
Do not turn off the device until it's fully booted for the first time.
|
||||
|
||||
4. **Carefully read and follow [the "First steps" guide](first_steps.md){target=_blank}** -
|
||||
how to find PiKVM on the network, how to log in there, change passwords, and so on.<br>
|
||||
**Follow the steps described there and come back to this page.**
|
||||
|
||||
5. ??? note "Note for the HDMI-USB dongle"
|
||||
|
||||
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:
|
||||
```console
|
||||
[root@pikvm ~]# rw
|
||||
```
|
||||
|
||||
* Edit file `/etc/kvmd/override.yaml` and add these lines:
|
||||
```yaml
|
||||
kvmd:
|
||||
streamer:
|
||||
forever: true
|
||||
cmd_append: [--slowdown]
|
||||
```
|
||||
|
||||
* Finish:
|
||||
```console
|
||||
[root@pikvm ~]# ro
|
||||
[root@pikvm ~]# systemctl restart kvmd
|
||||
```
|
||||
|
||||
6. **Just reminding again:**
|
||||
|
||||
{!_passwd.md!}
|
||||
|
||||
7. **Try to manage the computer using PiKVM with the Web Interface.**<br>
|
||||
Make sure that you get an image and both 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).
|
||||
|
||||
8. Configure access to PiKVM from the Internet using [port forwarding](https://docs.pikvm.org/port_forwarding)
|
||||
or [Tailscale VPN](https://docs.pikvm.org/tailscale), if you need it.
|
||||
|
||||
9. Explore the features of PiKVM using the site's table of contents and have fun!
|
@ -0,0 +1,15 @@
|
||||
With this part, you will be able to remotely turn on, turn off and restart your computer!
|
||||
|
||||
* *x4* [MOSFET relays OMRON G3VM-61A1](https://www.digikey.com/products/en?keywords=G3VM-61A1).<br>
|
||||
*Don't use random relay modules or random optocouplers! Some of these 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).*
|
||||
* *x4* 390 Ohm resistors (see [here](https://github.com/pikvm/pikvm/issues/46) for alternatives).
|
||||
* *2x* 4.7 kOhm resistors.
|
||||
* *x10+* dupont wires male-male.
|
||||
* *x1* a breadboard.
|
||||
* *various* wires for the breadboard.
|
||||
|
||||
This can be partially replaced by using [Wake-on-LAN](wol.md) in the software, but it will not allow
|
||||
to reboot a hung system, and it is not as reliable as an ATX controller. Sometimes the Wake-on-LAN
|
||||
on the host just stops working, for its own or network reasons.
|
@ -0,0 +1,4 @@
|
||||
* *x1* [Raspberry Pi Pico board](https://www.raspberrypi.com/products/raspberry-pi-pico/) with soldered pins.
|
||||
* *x1* USB-A to Micro-USB cable.
|
||||
* *x10* dupont wires female-female.
|
||||
* *x1* 1N5819 diode. It's optional but strongly recommended. Any similar one will do.
|
@ -0,0 +1,17 @@
|
||||
Insert the flexible flat cable of the HDMI-CSI bridge into the narrow white connector on the Raspberry Pi
|
||||
(the closest one to big USB sockets). It is labeled `CAMERA`. To insert you need to open the connector first.
|
||||
On the Raspberry Pi side you can gently lift the black part up and a little bit sideways:
|
||||
|
||||
| Opening the MIPI CSI slot on the Raspberry Pi |
|
||||
|-----------------------------------------------|
|
||||
| <img src="../_diy/open_mipi_csi.jpg" width="500"> |
|
||||
|
||||
For the HDMI-CSI bridge this operation depends on the version you bought.
|
||||
Either pull it gently up as on the Raspberry or push it sideways.
|
||||
Make sure that the cable is inserted on the correct side and until it stops, and then push the black latch back.
|
||||
Never connect or disconnect the flat cable from a powered device. This is not Plug-and-Play, and you can damage it.
|
||||
Also use only the cable that was included with the device package, or make sure that the third-party cable has the correct pinout.
|
||||
|
||||
| HDMI-CSI bridge connected to Raspberry Pi 4 |
|
||||
|---------------------------------------------|
|
||||
| <img src="../_diy/rpi4_csi_connection.jpg" width="500"> |
|
@ -0,0 +1,10 @@
|
||||
Connect USB dongle to exactly this port. It is bound in the software so the OS does not confuse the video device with something else.
|
||||
|
||||
| Raspberry Pi 2 and 3 | Raspberry Pi 4 |
|
||||
|----------------------|----------------|
|
||||
| <img src="../_diy/usbcap_rpi2.jpg" width="200"/> | <img src="../_diy/usbcap_rpi4.jpg" width="200"/> |
|
||||
|
||||
There are many revisions of the Raspberry Pi boards and you may come across one that we haven't tested.
|
||||
If the binding fails, the device will be available for all ports.
|
||||
Everything will work, but if you use a webcam and Linux mistakes it for a dongle,
|
||||
[write to us](https://discord.gg/bpmXfz5) and we will fix it.
|
@ -0,0 +1,102 @@
|
||||
# On-boot configuration & production deployment
|
||||
|
||||
At the first boot, PiKVM generates encryption keys and performs other actions necessary to configure the device.
|
||||
|
||||
Some parameters, such as connecting to Wi-Fi, or configuring a static interface for wired Ethernet,
|
||||
can be easily changed by the user if there is physical access to the memory card.
|
||||
This is convenient for quick customization of your device before the first use.
|
||||
|
||||
All settings are made using a file `pikvm.txt` on the first section of the memory card.
|
||||
After applying the settings, the file is automatically deleted.
|
||||
|
||||
|
||||
-----
|
||||
## Setting up Wi-Fi
|
||||
|
||||
1. Remove the PiKVM memory card. The device must be turned off.
|
||||
|
||||
2. Insert the memory card into the computer and mount the first FAT32 partition.
|
||||
|
||||
3. Among the system files you will see the file `pikvm.txt`.
|
||||
If you haven't enabled PiKVM yet, this file will contain a single line `FIRST_BOOT=1`.
|
||||
|
||||
4. To connect to Wi-Fi, you will need an ESSID (network name) and a password. Add this to `pikvm.txt`.
|
||||
If the file doesn't exists, just create it. Like following:
|
||||
|
||||
```bash
|
||||
WIFI_ESSID='mynet'
|
||||
WIFI_PASSWD='p@s$$w0rd'
|
||||
```
|
||||
|
||||
Note that backslash in the password should be escaped: `\` should be written as `\\`.
|
||||
|
||||
If there was a string `FIRST_BOOT=1` in the file, do not remove it.
|
||||
This is the trigger needed to initialize the OS at the first boot.
|
||||
On the contrary, if the file pikvm.txt it was not exist, you should not add this line.
|
||||
|
||||
5. Unmount partition and return the memory card to PiKVM.
|
||||
|
||||
6. A few things to keep in mind:
|
||||
* WPA3 is not supported. Enable WPA2 on your router.
|
||||
* There is a possibility that, in countries that support channel 13, the device will not connect.
|
||||
You will need to configure your router to disable channels 12-14 or disable Auto scan mode.
|
||||
|
||||
|
||||
-----
|
||||
## Other available options
|
||||
|
||||
A number of other parameters can be applied in the same way as with Wi-Fi.
|
||||
|
||||
* `FIRST_BOOT=1`<br>
|
||||
Triggers initialization of the first OS startup. The following actions are performed:
|
||||
|
||||
* Generates unique `/etc/machine-id` for internal systemd machinery.
|
||||
* Generates unique SSL certificates for HTTPS and VNC.
|
||||
* Mass Storage image partition is reformatted to fill the available space at the end of SD card (only for V2+).
|
||||
* Different minor things are performed like fc-cache update.
|
||||
|
||||
Note that this option does not reset the OS to factory defaults.
|
||||
There is no way to do this other than [reflashing](flashing_os.md).
|
||||
|
||||
* `ENABLE_OTG_SERIAL=1`<br>
|
||||
Only for V2+. Enables a virtual serial port on a USB emulator, that can be used to log in
|
||||
to PiKVM from the target host side. Disabled for security reasons.
|
||||
|
||||
* `SSH_PORT=1234`<br>
|
||||
Changes SSH server port to 1234 instead of 22.
|
||||
|
||||
* `ETH_DHCP=1`<br>
|
||||
Configures Ethernet port for DHCP. This is a default for PiKVM OS.
|
||||
|
||||
* `ETH_ADDR=192.168.0.100/24`, `ETH_DNS=8.8.8.8`, `ETH_GW=192.168.0.1`<br>
|
||||
Configures a static IP on the Ethernet port. Only IPv4 available here. For IPv6 you'll need to change
|
||||
[systemd configuration files](https://wiki.archlinux.org/title/systemd-networkd) on the live OS.
|
||||
All three options must be set simultaneously to avoid incorrect configuration.
|
||||
|
||||
* `WIFI_ESSID=foo`, `WIFI_REGDOM=bar`<br>
|
||||
Configures Wi-Fi, described in more detail in previous paragrpah.
|
||||
Both options must be set simultaneously to avoid incorrect configuration.
|
||||
|
||||
* `WIFI_REGDOM=US`<br>
|
||||
Changes Wi-Fi regulatory domain to the US. Other domains available by
|
||||
[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country codes.
|
||||
|
||||
|
||||
-----
|
||||
## Advanced production deployment
|
||||
|
||||
For a production environment, it may be important to integrate PiKVM into an existing infrastructure automatically.
|
||||
Usually, such actions are performed by special scripts written by the administrator.
|
||||
|
||||
To run such scripts, PiKVM OS suggests placing them in `pikvm-scripts.d` directory (`/boot/pikvm-scripts.d` on the system itself)
|
||||
on the same partition next to `pikvm.txt` file.
|
||||
|
||||
If `pikvm.txt` exists, all the parameters described there will be applied, and the contents inside `pikvm-scripts.d`
|
||||
will be checked if this directory exists. Scripts in this directory are run in alphabetical order,
|
||||
the failure will be ignored, it is assumed that the script author should handle this situation.
|
||||
|
||||
If the script needs to reboot the OS, it should create an empty file `/boot/pikvm-reboot.txt`.
|
||||
The reboot is performed once after all scripts.
|
||||
|
||||
In order not to copy scripts manually on each memory card on each PiKVM, it may make sense to build
|
||||
a custom OS image containing everything you need.
|
@ -0,0 +1,64 @@
|
||||
# DIY PiKVM V1 Instructions
|
||||
|
||||
!!! tip "So many choices!"
|
||||
There are many different options with sub-items, so you can choose what will suit you.<br>
|
||||
However, we marked the recommended way by sign **`✮ ✮ ✮`**
|
||||
|
||||
|
||||
-----
|
||||
## Required parts
|
||||
|
||||
1. **Raspberry Pi board**:
|
||||
* **✮ ✮ ✮ [Raspberry Pi 3](https://www.raspberrypi.com/products/raspberry-pi-3-model-b/)**.<br>
|
||||
* ... or [Raspberry Pi 2](https://www.raspberrypi.com/products/raspberry-pi-3-model-b/).<br>
|
||||
*Does not support H.264 even with HDMI-CSI bridge.*
|
||||
|
||||
2. **MicroSD card minimum 8Gb class 10**.
|
||||
|
||||
3. **Video capture device**:
|
||||
* **✮ ✮ ✮ [HDMI-CSI bridge based on TC358743 chip](https://www.amazon.de/Waveshare-Raspberry-Supports-Backward-Compatible/dp/B092HVP926/)**.<br>
|
||||
*Supports H.264 video encoding on Raspberry Pi 3, automatic resolution selection and the lowest possible latency.*
|
||||
* ... or [HDMI-USB dongle](https://www.amazon.com/Capture-Streaming-Broadcasting-Conference-Teaching/dp/B09FLN63B3).<br>
|
||||
*Only heavy MJPEG video, no resolution detection, big latency compared to HDMI-CSI.
|
||||
Some users report hardware problems: the dongle may not work in the BIOS or simply stop working after a while.
|
||||
It's a black box, and no one knows what's inside it. If you have problems with it, it will not be possible to fix them.*
|
||||
|
||||
4. **[Official USB-Micro Power Supply](https://www.amazon.com/Capture-Streaming-Broadcasting-Conference-Teaching/dp/B09FLN63B3)**.
|
||||
|
||||
5. **The Pico HID Keyboard & mouse emulator**:
|
||||
|
||||
{!_diy_parts_pico_hid.md!}
|
||||
|
||||
6. **Optional feature: ATX controller**
|
||||
|
||||
{!_diy_parts_atx.md!}
|
||||
|
||||
7. **Optional feature: VGA video capture**
|
||||
|
||||
If you want to capture VGA from your server instead of HDMI, buy the [VGA-to-HDMI converter](https://aliexpress.com/item/3256801728005613.html).
|
||||
Some converters have issues with not supporting all resolutions and refresh rates.
|
||||
|
||||
|
||||
-----
|
||||
## Setting up the hardware
|
||||
|
||||
1. **Video capture device**:
|
||||
|
||||
??? success "✮ ✮ ✮ HDMI-CSI bridge"
|
||||
|
||||
{!_diy_setup_video_csi.md!}
|
||||
|
||||
??? note "... or HDMI-USB dongle"
|
||||
|
||||
{!_diy_setup_video_usb.md!}
|
||||
|
||||
2. **[Build the Pico HID Keyboard & Mouse emulator](pico_hid.md)**.
|
||||
|
||||
|
||||
!!! warning "WORK IN PROGRESS"
|
||||
|
||||
|
||||
-----
|
||||
## First launch and usage
|
||||
|
||||
{!_diy_first_launch.md!}
|
@ -0,0 +1,137 @@
|
||||
# DIY PiKVM V2 Instructions
|
||||
|
||||
!!! tip "So many choices!"
|
||||
There are many different options with sub-items, so you can choose what will suit you.<br>
|
||||
However, we marked the recommended way by sign **`✮ ✮ ✮`**
|
||||
|
||||
|
||||
-----
|
||||
## Required parts
|
||||
|
||||
1. **Raspberry Pi board**:
|
||||
* **✮ ✮ ✮ [Raspberry Pi 4 2Gb](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/)**.<br>
|
||||
*It makes no sense to buy a Pi 4 with more memory than 2Gb, since PiKVM software uses very few resources.*
|
||||
* ... or [Raspberry Pi Zero 2 W](https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/).<br>
|
||||
*Compact and cheap, but not so reliable solution because of lack of the wired Ethernet.*
|
||||
|
||||
2. **MicroSD card minimum 16Gb class 10**.
|
||||
|
||||
3. **Video capture device**:
|
||||
* **✮ ✮ ✮ [HDMI-CSI bridge based on TC358743 chip](https://www.amazon.de/Waveshare-Raspberry-Supports-Backward-Compatible/dp/B092HVP926/)**.<br>
|
||||
*Supports H.264 video encoding, automatic resolution selection and the lowest possible latency.*
|
||||
* ... or [HDMI-USB dongle](https://www.amazon.com/Capture-Streaming-Broadcasting-Conference-Teaching/dp/B09FLN63B3).<br>
|
||||
*Only heavy MJPEG video, no resolution detection, big latency compared to HDMI-CSI.
|
||||
Some users report hardware problems: the dongle may not work in the BIOS or simply stop working after a while.
|
||||
It's a black box, and no one knows what's inside it. If you have problems with it, it will not be possible to fix them.*
|
||||
|
||||
4. **Board-specific: Power supply, USB connectivity, etc.**
|
||||
|
||||
??? success "✮ ✮ ✮ Raspberry Pi 4"
|
||||
|
||||
On a Raspberry Pi 4 only the USB-C port that receives power is capable of acting as a USB Device.
|
||||
The other USB ports are capable only of acting as USB Hosts.
|
||||
Therefore a special cable must be used on the USB power port that it can simultanously act as USB Device
|
||||
for the target host and receive external power from an power supply.
|
||||
|
||||
??? success "✮ ✮ ✮ Variant #1: Power supply + ready-made Y-splitter module"
|
||||
|
||||
* *x1* USB-C/Power Splitter Module ([US](https://www.pishop.us/product/usb-c-pwr-splitter/)/[UK](https://www.tindie.com/products/8086net/usb-cpwr-splitter)/[CA](https://www.buyapi.ca/product/usb-c-pwr-splitter/)).
|
||||
* *x1* USB-C to USB-C cable (male-male) for connecting the Raspberry Pi to the splitter.
|
||||
* *x1* USB-A to USB-C cable (male-male) for connecting the target host to the splitter.
|
||||
* *x1* [Official USB-C Power Supply](https://www.raspberrypi.com/products/type-c-power-supply/).
|
||||
|
||||
??? note "... or Variant #2: Power supply + Y-splitter based on power blocker"
|
||||
|
||||
* *x1* USB-A to USB-A cable (male-male).
|
||||
* *x1* [USB splitter](https://www.amazon.com/dp/B08C5FWQND).
|
||||
* *x1* [USB Power Blocker](https://www.amazon.com/gp/product/B092MLT2J3) - Will go into the USB-A end towards the target host.
|
||||
* *x1* [Official USB-C Power Supply](https://www.raspberrypi.com/products/type-c-power-supply/).
|
||||
|
||||
??? note "... or Variant #3: Power supply + DIY Y-splitter for soldering"
|
||||
|
||||
* *x1* USB-A to USB-C cable (male-male).
|
||||
* *x1* Another cable USB-A to *any* (male-*any*).
|
||||
* *x1* Any 5V 3A power supply with USB-A socket.
|
||||
|
||||
??? note "... or Raspberry Pi Zero 2 W"
|
||||
|
||||
* *x1* USB-A to USB-Micro cable (male-male).
|
||||
* *x1* [Raspberry Pi Zero Camera Cable](https://www.amazon.com/Arducam-Raspberry-Camera-Ribbon-Extension/dp/B085RW9K13). *Not compatible with Auvidea B101*.
|
||||
* *x1* [Official USB-Micro Power Supply](https://www.amazon.com/Capture-Streaming-Broadcasting-Conference-Teaching/dp/B09FLN63B3).
|
||||
|
||||
5. **Optional feature: ATX controller**
|
||||
|
||||
{!_diy_parts_atx.md!}
|
||||
|
||||
6. **Optional feature: VGA video capture**
|
||||
|
||||
If you want to capture VGA from your server instead of HDMI, buy the [VGA-to-HDMI converter](https://aliexpress.com/item/3256801728005613.html).
|
||||
Some converters have issues with not supporting all resolutions and refresh rates.
|
||||
|
||||
|
||||
*Kit parts suitable for assembly are also on [sale in Poland](https://3mdeb.com/shop/open-source-hardware/pikvm/).*
|
||||
|
||||
|
||||
-----
|
||||
## Setting up the hardware
|
||||
|
||||
1. **Video capture device**:
|
||||
|
||||
??? success "✮ ✮ ✮ HDMI-CSI bridge"
|
||||
|
||||
{!_diy_setup_video_csi.md!}
|
||||
|
||||
??? note "... or HDMI-USB dongle"
|
||||
|
||||
{!_diy_setup_video_usb.md!}
|
||||
|
||||
2. **USB cable and power supply**:
|
||||
|
||||
??? success "✮ ✮ ✮ Raspberry Pi 4"
|
||||
|
||||
??? success "✮ ✮ ✮ Variant #1: Power supply + ready-made Y-splitter module"
|
||||
|
||||
<img src="../_diy/v2_splitter_module.jpg" width=500>
|
||||
|
||||
??? note "... or Variant #2: Power supply + Y-splitter based on power blocker"
|
||||
|
||||
<img src="../_diy/v2_splitter_cable.jpg" width=500>
|
||||
|
||||
??? note "... or Variant #3: Power supply + DIY Y-splitter for soldering"
|
||||
|
||||
It is assumed that if you have followed this path, you know how to handle a soldering iron and a multimeter.
|
||||
|
||||
The Y-splitter can be soldered from two suitable USB cables. Check the attached diagram.
|
||||
The appropriate USB pinout(s) can easily be found on Google.
|
||||
|
||||
Please note that if you make a Y-cable from two no-name cables, the colors of the wires may not match those shown.
|
||||
Use a multimeter to make sure the connections are correct.
|
||||
|
||||
<img src="../_diy/v2_splitter_soldering.png" width=500>
|
||||
|
||||
**Video How-To: [Making a USB Y-splitter cable](https://www.youtube.com/watch?v=uLuBuQUF61o)**
|
||||
|
||||
??? note "... or Raspberry Pi Zero 2 W"
|
||||
|
||||
This board has two USB micro connectors: one for power supply (marked as `PWR`) and the second for emulating
|
||||
a USB gadget (marked as `USB`). Both connectors have a common power line, so to prevent Raspberry power from entering
|
||||
the USB port of the target host, it is required to make a special USB A-to-Micro cable without power line.
|
||||
|
||||
One way is to physically cut the power wire inside the USB cable.
|
||||
|
||||
An easier way is to stick a piece of duct tape, as shown in this picture:
|
||||
|
||||
<img src="../_diy/v2_tape_off.jpg" width=500>
|
||||
|
||||
Connect the power supply to the `PWR`, and your magic cable to the `USB`. Use the USB-A of the magic cable
|
||||
to connect the device to the target host.
|
||||
|
||||
3. **Optional feature: ATX control**:
|
||||
|
||||
!!! warning "WORK IN PROGRESS"
|
||||
|
||||
|
||||
-----
|
||||
## First launch and usage
|
||||
|
||||
{!_diy_first_launch.md!}
|
After Width: | Height: | Size: 230 KiB |