mirror of https://github.com/pikvm/pikvm.git
				
				
				
			
		
			
				
	
	
		
			259 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			259 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| ---
 | |
| title: PiKVM Switch Multiport Extender Quickstart Guide
 | |
| description: "How to get started with PiKVM Switch Multiport Extender"
 | |
| ---
 | |
| 
 | |
| # PiKVM Switch Multiport Extender
 | |
| 
 | |
| !!! info "Where to buy?"
 | |
| 
 | |
|     * [International store](https://shop.hipi.io/product/pikvm-switch-multiport-extender).
 | |
|     * [Canadian store](https://www.pishop.ca/product/pikvm-switch-multiport-extender/).
 | |
|     * EU is coming!
 | |
| 
 | |
| { width="400" }
 | |
| 
 | |
| [PiKVM Switch Datasheet (PDF)](switch_datasheet.pdf){ .md-button }
 | |
| 
 | |
| The PiKVM Switch Multiport Extender enables one PiKVM device to view and control multiple target
 | |
| computers connected to each port. Target computers are viewed using HDMI video capture and then
 | |
| controlled via USB and ATX connections. Up to five Switch Multiport Extenders can be daisy-chained
 | |
| for a total of 20 ports. This is the maximum number of target computers that can be controlled by
 | |
| each supported PiKVM device.
 | |
| 
 | |
| Thanks to the modularity of PiKVM and the new Switch, you can build up your infrastructure gradually,
 | |
| adding new Switches as needed, without replacing the KVM entirely.
 | |
| 
 | |
| One target system at a time can be selected for HDMI video capture and USB control. ATX statuses
 | |
| and controls are available for all connected targets simultaneously. Video inputs include dedicated
 | |
| EDID (HDMI information and display parameters) and full control of the video connection state of
 | |
| each port.
 | |
| 
 | |
| The PiKVM Switch is fully plug-and-play.
 | |
| 
 | |
| It is compatible with [PiKVM V4 Plus](v4.md), [PiKVM V3](v3.md), [DIY V2](v2.md) and [DIY V1](v1.md) devices.
 | |
| 
 | |
| Please note that it's not compatible with PiKVM V4 Mini and DIY devices based on Raspberry Pi Zero boards
 | |
| because of the lack of available USB host ports.
 | |
| 
 | |
| 
 | |
| -----
 | |
| ## Installation requirements
 | |
| 
 | |
| * Head device: [PiKVM V4 Plus](v4.md) (recommended) or any other PiKVM except V4 Mini and Zero-based DIY.
 | |
| 
 | |
| * The PiKVM Switch box includes:
 | |
|     * Switch device
 | |
|     * Power supply unit
 | |
|     * DC Barrel Jack Cable
 | |
|     * HDMI 2.0 Cable
 | |
|     * USB-A Male To USB-C Female Adapter
 | |
|     * *2x* USB Cable, USB-C Male
 | |
|     * *4x* ATX kit with brackets and wires
 | |
| 
 | |
| * Some cables are not included in the kit, but are required to connect each target host port:
 | |
|     * HDMI 2.0 cable (no shorter than 30 centimeters).
 | |
|     * USB-A to USB-C cable
 | |
|     * <a target="_blank" href="../atx_board/straight.png">Straight Ethernet cable</a> for ATX connection.
 | |
| 
 | |
| 
 | |
| -----
 | |
| ## Setup
 | |
| 
 | |
| 1. Turn off the head PiKVM device.
 | |
| 
 | |
| 2. Unpack the box. Turn Switch in your hands and study the purpose of the ports.
 | |
|     Lovingly pat the top cover to show it that you want to be friends.
 | |
| 
 | |
|     * The **numbered ports** on the front can be used to connect to the target hosts.
 | |
|     * **UPLINK** ports should be connected to PiKVM or to the superior chained Switch.
 | |
|     * **DOWNLINK** ports should be connected to a lower-level Switch.
 | |
| 
 | |
| 3. Connect Switch to PiKVM according to the following diagram.
 | |
|     Example connections with [PiKVM V4 Plus](v4.md) are shown,
 | |
|     but similar connections can be made for any supported model.
 | |
| 
 | |
|     <img src="conn_kvm_to_switch.png" height=500>
 | |
| 
 | |
|     * **(1)** OTG connection for USB emulation (using Type-C cable).
 | |
|     * **(2)** Video (using HDMI cable).
 | |
|     * **(3)** USB control connection (using Type-C cable and included C-to-A adapter).
 | |
|     * **(4)** Optional power chaining. If you're using [PiKVM V4 Plus](v4.md),
 | |
|         both PiKVM and Switch can be powered from a single 12V power supply.
 | |
|         Use the supplied two-way power cable to connect the PiKVM and Switch.
 | |
|     * **(5)** Connect the supplied 12V power supply here.
 | |
| 
 | |
|     !!! warning "Double power supply is not allowed"
 | |
| 
 | |
|         * When power chaining (4), never use your own 5V power port on the PiKVM V4.
 | |
| 
 | |
|         * The two 12V connectors on the Switch are designed for chaining only. Never connect two power supplies to your Switch.
 | |
| 
 | |
|     If you want to connect multiple Switches in a chain, use the following diagram.
 | |
|     Two connected units can be considered as a single device, and the left group of **UPLINK** ports areused
 | |
|     in a similar way: either connect it to a PiKVM as in the previous step, or connect to another Switch to.
 | |
| 
 | |
|     <img src="conn_switch_to_switch.png">
 | |
| 
 | |
|     !!! info "Chaining limit"
 | |
| 
 | |
|         A maximum of 5 Switch units can be connected in a chain.
 | |
| 
 | |
| 5. Connect the target hosts to the numbered ports on the front panel of Switch.
 | |
| 
 | |
|     * HDMI for a video (don't use a cable shorter than 50 centimeters).
 | |
|     * USB-C for USB emulation.
 | |
|     * Optional [ATX](atx_board.md) for power management of the host.
 | |
| 
 | |
| 6. PiKVM Switch is a Plug-n-Play device, so you don't need to write any complex configs.
 | |
|     All you need is a fresh PiKVM OS and drivers that can be obtained by updating.
 | |
| 
 | |
|     !!! note "Check the OS image"
 | |
| 
 | |
|         To store the settings, Switch uses the [Persistent Storage](pst.md) feature,
 | |
|         which is presented in images older than **2022.06.20**. To check if your
 | |
|         PiKVM OS supports this, use the following command:
 | |
| 
 | |
|         ```console
 | |
|         [root@pikvm ~]# mount | grep '\<pst\>'
 | |
|         /dev/mmcblk0p2 on /var/lib/kvmd/pst type ext4 (ro,nosuid,nodev,noexec,relatime,errors=remount-ro)
 | |
|         ```
 | |
| 
 | |
|         If the output is similar to the above (`/var/lib/kvmd/pst`), then everything is fine.
 | |
|         Otherwise on empty output, you need to [reflash the OS](flashing_os.md).
 | |
| 
 | |
|     Do the update anyway (even if you did reflashing):
 | |
| 
 | |
|     {!_update_os.md!}
 | |
| 
 | |
| 7. It's done! PiKVM will automatically configure all your Switches.
 | |
| 
 | |
| 
 | |
| -----
 | |
| ## Working with the Switch
 | |
| 
 | |
| All the functions of the Switch are available through the menu, which you will see in the PiKVM interface.
 | |
| The attached example uses two Switches, and switching between their ports works transparently.
 | |
| 
 | |
| <img src="ui_menu.png" width=500 />
 | |
| 
 | |
| * The menu title shows the current active port (**1.4**) in **unit.port** format,
 | |
|     and the status of the ATX power and HDD LEDs for its host.
 | |
| 
 | |
| * **(1)** The **Settings** button shows the common chain settings window (see below).
 | |
| 
 | |
| * **(2)** The ports are grouped by physical units, the sub-header of the table shows
 | |
|     the unit 1 and the ports following it: 1.1, 1.2, 1.3 and 1.4.
 | |
| 
 | |
| * **(3)** Beacon activation buttons for the **UPLINK** and **DOWNLINK** ports on the back of the Switch unit 1.
 | |
|     When activated, the corresponding multifunction LED on the back of the Switch will start flashing
 | |
|     to make it easier to find its connectors. This is especially useful if you have several Switches in a chain.
 | |
| 
 | |
| * **(4)** The port switching button. The green color indicates the current active port.
 | |
| 
 | |
| * **(5)** A button for configuring individual port parameters such as name, EDID, and more.
 | |
| 
 | |
| * **(6)** The beacon activation button for the selected port activates the flashing LED
 | |
|     on the numbered group of connectors on the front of the Switch unit.
 | |
| 
 | |
|     There are four indicators to the right: host video detected, USB detected,
 | |
|     ATX power and HDD LEDs. Next, three ATX action buttons.
 | |
| 
 | |
| * **(7)** The title of the sub-table of the Switch unit 2. The units are numbered according to the closeness
 | |
|     to PiKVM device: Switch number 1 is connected directly to PiKVM, unit 2 is connected to downlink of unit 1.
 | |
| 
 | |
| In the settings menu, you can access the EDIDs Collection and customize the color scheme of the Switch LEDs.
 | |
| 
 | |
| 
 | |
| #### Chain settings
 | |
| 
 | |
| In the settings menu, you can access the EDIDs Collection and customize the color scheme of the Switch LEDs.
 | |
| 
 | |
| Each port can use its own EDID which must be preloaded into the Collection, otherwise it will use
 | |
| the default EDID (taken from PiKVM). Binary and text [EDID in HEX format](edid.md) are supported.
 | |
| 
 | |
| | EDIDs Collection | Color scheme |
 | |
| |------------------|--------------|
 | |
| | <img src="ui_settings_edid.png" width=300 /> | <img src="ui_settings_colors.png" width=300 /> |
 | |
| 
 | |
| 
 | |
| #### Port settings
 | |
| 
 | |
| <img src="ui_port.png" width=300 />
 | |
| 
 | |
| In the port settings, you can set the display name (can be used for the name of the connected host)
 | |
| and the individual EDID from the Collection.
 | |
| 
 | |
| Other parameters relate to the ATX intervals for pressing the power and reset buttons of the target host.
 | |
| 
 | |
| 
 | |
| -----
 | |
| ## Firmware updating
 | |
| 
 | |
| Sometimes we release firmware updates for the Switch, which are distributed along with PiKVM OS updates.
 | |
| When the software detects that your switch has an old firmware, it will inform you about it via
 | |
| the web interface. After that, you will be able update the Switch.
 | |
| 
 | |
| If you have several switches in the chain, then all devices will be updated: first, PiKVM uploads the update
 | |
| to the first switch, then it updates the next one, and so on.
 | |
| This is very convenient because you don't have to perform complex manual manipulations to maintain your equipment.
 | |
| The Switches are intelligent and save you time.
 | |
| 
 | |
| !!! warning
 | |
| 
 | |
|     We recommend updating the firmware only if you have physical access to the hardware.
 | |
| 
 | |
|     Switches are extremely difficult to brick, but if there is a power failure during updating,
 | |
|     you will need physical access to restore the device. So don't worry, it can't be bricked forever.
 | |
| 
 | |
|     It is also recommended to perform all the operations described below via SSH, and not via a web terminal.
 | |
| 
 | |
| ### Performing update
 | |
| 
 | |
| Just run these commands via SSH under root:
 | |
| 
 | |
| ```console
 | |
| [root@pikvm ~]# cd /usr/share/kvmd/switch
 | |
| [root@pikvm switch]# systemctl stop kvmd   # This will stop the KVM web service
 | |
| [root@pikvm switch]# make install          # Flash the first switch
 | |
| [root@pikvm switch]# systemctl start kvmd  # Start it again
 | |
| ```
 | |
| 
 | |
| The switches will show the progress of the update on the front LEDs and will gradually return to service.
 | |
| 
 | |
| 
 | |
| -----
 | |
| ## Known issues
 | |
| 
 | |
| ??? info "A DIY PiKVM device based on HDMI-CSI board does not receive a video through the Switch"
 | |
| 
 | |
|     Some HDMI-CSI boards does not follow the HDMI specification correctly.
 | |
|     We have provided a special compatibility mode for them,
 | |
|     which should be enabled using the following configuration:
 | |
| 
 | |
|     1. Switch filesystem to RW-mode:
 | |
| 
 | |
|         ```console
 | |
|         [root@pikvm ~]# rw
 | |
|         ```
 | |
| 
 | |
|     2. Add some lines to `/etc/kvmd/override.yaml`:
 | |
| 
 | |
|         ```yaml
 | |
|         kvmd:
 | |
|             switch:
 | |
|                 ignore_hpd_on_top: true
 | |
|         ```
 | |
| 
 | |
|     3. Restart KVMD:
 | |
| 
 | |
|         ```yaml
 | |
|         [root@pikvm ~]# systemctl restart kvmd
 | |
|         ```
 | |
| 
 | |
|     4. Switch filesystem back to RO-mode:
 | |
| 
 | |
|         ```console
 | |
|         [root@pikvm ~]# ro
 | |
|         ```
 |