diff --git a/docs/_edidconf_adopt.md b/docs/_edidconf_adopt.md new file mode 100644 index 00000000..f7a773ec --- /dev/null +++ b/docs/_edidconf_adopt.md @@ -0,0 +1,19 @@ +--- +search: + exclude: true +--- + +[PiKVM V4 Plus](v4.md) has a simple way to read and adopt display identifiers like model and serial number +from a physical monitor connected to `OUT2` port (it's also used for [HDMI passthrough](pass.md)). +This way, the target host will recognize PiKVM as your display. + +To adopt display identifiers, connect the display to `OUT2` port and run these commands: + +```console +[root@pikvm ~]# rw +[root@pikvm ~]# kvmd-edidconf --import-display-ids --apply +[root@pikvm ~]# ro +``` + +Now the display can be unplugged. PiKVM will remember the new settings (in `/etc/kvmd/tc358743-edid.hex`) +and apply them immediately (`--apply option`). diff --git a/docs/_edidconf_options.md b/docs/_edidconf_options.md index 224c5ac3..291ade59 100644 --- a/docs/_edidconf_options.md +++ b/docs/_edidconf_options.md @@ -3,12 +3,11 @@ search: exclude: true --- -!!! tip "Quick IDs changing on PiKVM V4 Plus" +!!! tip "Quick video IDs changing on PiKVM V4 Plus" - PiKVM V4 Plus has a simple way read and adopt display identifiers like model and serial number - from your physical display. See [here](edid.md#adopt-real-display-indentifiers-on-v4-plus) for details. + {!_edidconf_adopt.md!} -Run `kvmd-edidconf` on PiKVM: +Let's check the identification. Run `kvmd-edidconf` on PiKVM: ```console [root@pikvm ~]# kvmd-edidconf diff --git a/docs/_usb_limits.md b/docs/_usb_limits.md index 38dbc9b9..91bed54d 100644 --- a/docs/_usb_limits.md +++ b/docs/_usb_limits.md @@ -7,7 +7,10 @@ search: !!! info "USB limitations" Each emulated USB device consumes a limited hardware resource called **endpoints**. + On the default PiKVM, **you can add only one or two of additional USB devices** + depending of its endpoint requirements. - Short info: by default, you can add only one additional USB device. - - To get more information about the endpoints, add more devices, and flexibly manage the configuration on the fly, see [here](usb.md). + To get more information about the endpoints, add more devices, + and flexibly manage the configuration on the fly, see **[here](usb.md)**. + This also help you if you encounter a compatibility issue + due to the device being turned on (for example, in UEFI). diff --git a/docs/audio.md b/docs/audio.md index dceca5cd..cf281360 100644 --- a/docs/audio.md +++ b/docs/audio.md @@ -72,8 +72,11 @@ immediately after opening without user activity to protect against annoying ads. ----- ## Microphone (outgoing audio) -PiKVM is able to emulate a USB microphone on the target host to transmit your speech from the browser to the host. -This feature is disabled by default for backward compatibility reasons. +PiKVM [V3](v3.md) and [V4](v4.md) is able to emulate a USB microphone on the target host to transmit +your speech from the browser to the host. + +The microphone uses [the same USB identifiers](id.md) as the keyboard, mouse and other emulated devices. +You can change everything together, but not separately. {!_usb_limits.md!} @@ -114,16 +117,6 @@ Your browser will ask for permission to use the microphone, allow it. The switch state will be saved in the browser's local settings. The microphone signal will not be transmitted if the volume level is zero. -!!! warning "USB compatibility" - - This feature is very new, so we don't know how much it affects the ability to interact with the BIOS and UEFI. - - Please try this and [let us know](https://pikvm.org/support/) if you have lost the ability to access - the BIOS or boot OS from PiKVM Mass Storage after turning on the USB microphone. - - But even if this happens, don't worry. You can use [the dynamic USB device control](usb.md) - to temporarily turn off the microphone emulation. - ----- ## Troubleshooting diff --git a/docs/edid.md b/docs/edid.md index f5a94554..3984a9bb 100644 --- a/docs/edid.md +++ b/docs/edid.md @@ -45,19 +45,7 @@ Typical examples of working with EDID and the full cycle of using custom EDID wi ----- ## Adopt real display indentifiers on V4 Plus -PiKVM V4 Plus has a simple way read and adopt display identifiers like model and serial number -from the physical monitor connected to `OUT2` port (it's also used for [HDMI passthrough](pass.md)). -This way, the target host will recognize PiKVM as your display. - -To adopt display identifiers, connect the display to `OUT2` port and run these commands: - -```console -[root@pikvm ~]# rw -[root@pikvm ~]# kvmd-edidconf --import-display-ids --apply -[root@pikvm ~]# ro -``` - -Now the display can be unplugged. PiKVM will remember the new settings. +{!_edidconf_adopt.md!} ----- diff --git a/docs/id.md b/docs/id.md index 1e716193..e2b8bc27 100644 --- a/docs/id.md +++ b/docs/id.md @@ -8,7 +8,7 @@ system, and how this can be changed. This is useful for developers, testers and system administrators who need PiKVM to emulate a specific USB device or monitor. -!!! info +!!! tip Before exploring this page, we recommend to read the [PiKVM configuration guide](config.md) so that you understand the terminology and how exactly the parameters described below change. @@ -32,37 +32,65 @@ For example, if you go to monitor settings on the host, you will see something l It works in a similar way with USB. +----- +## Replicating setups + +Using PiKVM utilities, you can replicate the entire IDs of peripheral devices in automatic or manual way. + +* [PiKVM V4 Plus](v4.md) is able to import and adopt both EDID and USB IDs directly from your physical display and some USB device. +* [PiKVM V4 Mini](v4.md) doesn't have HDMI output and extra USB, but you can change configuration manually. +* [PiKVM V3](v3.md) or [DIY V2](v2.md) is able to import USB IDs, but not EDID. + +**Both automatic and manual paths are fully described later on this page.** + + ----- ## HDMI Identifiers -!!! info - - This applies to [PiKVM V3](v3.md), [V4](v4.md) and DIY based on CSI bridge. - It is impossible to change the EDID for the HDMI-USB dongle. - The EDID (Extended Display Identification Data) is responsible for presenting the display. It also provides the host with information about the resolutions that PiKVM supports. -More information about this is written on [this page](edid.md), and here we will provide brief information. +More information about this is written on the [EDID guide](edid.md), and here we will provide brief information. + +Please note that this applies to [PiKVM V3](v3.md), [V4](v4.md) and DIY based on CSI bridge. +It is impossible to change the EDID for the HDMI-USB dongle. {!_edidconf_options.md!} -For a detailed guide on customizing EDID, please visit [this page](edid.md). There you can also find out how to set the EDID from a real monitor, or quickly adopt your real monitor IDs with PiKVM V4 Plus. +For a detailed guide on customizing EDID identifiers, please visit the [EDID guide](edid.md). ----- ## USB Identifiers -!!! info +What is described here concerns only the USB identifiers, not the device structure. +Your typical PiKVM setup is recognized as a keyboard with a built-in mouse and flash drive. +If you encounter USB compatibility issues due to legacy OS or buggy drivers on the target host, +there are two things you can do: - This applies to PiKVM V2+. Identifiers on V1 and/or the [Pico HID](pico_hid.md) can't be changed - without recompilation and reflashing of the firmware. + * Change USB identifiers (described further); + * [Disable some of emulated devices to simplify the device structure](usb.md). + For example, keep only keyboard and one mouse (for example, this is useful for buggy UEFI on DELL and HP), + and disable Mass Storage and other devices. +Please note that this applies to PiKVM V2+. Identifiers on V1 and/or the [Pico HID](pico_hid.md) can't be changed +without recompilation and reflashing of the firmware. -USB is a much more complex subsystem and another part of PiKVM is responsible for it. -Be careful when changing the settings here, it may cause the USB to fail. +!!! tip "Quick USB IDs changing" -For information on how to control emulated devices see [here](usb.md). -The identification is described below. + All PiKVMs (except DIY based on Zero W) have a simple way to read and adopt USB identifiers + from a physical USB keyboard or mouse connected to any USB port. This way, the target host + will recognize PiKVM as your regular USB device. + + To adopt USB identifiers, connect a keyboard or mouse to PiKVM and run these commands: + + ```console + [root@pikvm ~]# rw + [root@pikvm ~]# kvmd-otgconf --import-usb-ids + [root@pikvm ~]# reboot + ``` + + Now the device can be unplugged. PiKVM will remember the new settings (in `/etc/kvmd/override.yaml`) + and apply them after reboot (the last command). As you may have found out from the [PiKVM configuration guide](config.md) (if you haven't read it yet, now is the time), you can get the list of all configuration parameters using the `kvmd -m` command. @@ -160,23 +188,4 @@ otg: After changing validate the config using `kvmd -M`. You will see a list with your changes and default values, or a message about configuration error. -If everything is fine, perform the soft reboot. - -## Replicating setups - -You can use `kvmd-edidconf` and `kvmd-otgconf` to replicate an entire host configuration for testing or other purposes. What you can do will vary depending on the PiKVM device you have: - -- V4 Plus: you can import both EDID and USB IDs. -- V4 Mini: you must manually edit `override.yaml`, as there is neither a second HDMI Out or additional USB ports on your PiKVM. -- V3: you can import USB IDs only, as there is no second HDMI output on your PiKVM. - -Assuming you have PiKVM V4 Plus, follow these steps: - -1. Connect the host's display to one of the two HDMI Out ports on the rear panel of your PiKVM. -2. Connect the host's USB keyboard and mouse to USB ports on the front and the rear panel of you PiKVM. -3. Run `rw` to switch to read-write mode. -4. Run `kvmd-edidconf --import-display-ids --apply` as root on the PiKVM. This will fetch EDID information from the connected physical display and place it into the `/etc/kvmd/override.yaml` configuration file. -5. Run `kvmd-otgconf --import-usb-ids` as root on the PiKVM. This will fetch IDs of the connected physical USB devices and place them into the `/etc/kvmd/override.yaml` configuration file. -6. Run `ro` to switch to read-only mode. -7. Run `reboot` to reboot your PiKVM and apply newly the added customization. -8. Reconnect the host's display and keyboard/mouse back to the host. +If everything is fine, perform the soft `reboot` command. diff --git a/docs/usb.md b/docs/usb.md index f063dc17..b81be87b 100644 --- a/docs/usb.md +++ b/docs/usb.md @@ -21,8 +21,10 @@ re-enable existing emulated devices in preset. ----- ## Basics -Each emulated USB device consumes a limited hardware resource called **endpoints**. +For information on how emulated devices are represented on the target host +and how to change USB identifiers, please see [this page](id.md). +Each emulated USB device consumes a limited hardware resource called **endpoints**. Depending on the device, the number of required endpoints varies: | Device | Endpoints | @@ -67,7 +69,6 @@ To configure additional devices, please refer to the corresponding pages: from the target host to the PiKVM, or for any other purpose that requires a serial connection. -For information on how emulated devices are represented on the target host and how to change it, read [here](id.md). ----- ## Default preset