This commit is contained in:
Maxim Devaev 2025-01-20 04:18:53 +02:00
parent ddb61abb23
commit e2c6db72f5
11 changed files with 301 additions and 215 deletions

View File

@ -32,7 +32,7 @@ PiKVM supports several different hardware configurations, referred to as **platf
All of them uses our common open source software stack.
* **PiKVM V4** and **V3** are our own **plug-and-play, fully assembled, industrial grade, robust** devices.<br>
Supports **H.264 video & audio** transmission, **host power management**, **mass-storage emulation** and much more.
Supports **H.264 video & two-way audio with microphone** transmission, **host power management**, **mass-storage emulation** and much more.
They are really well-made, reliable things which you can use yourself or provide to your clients.
V4 and V3 also have more features than DIY builds.
@ -101,6 +101,7 @@ All of them uses our common open source software stack.
| **HDMI 1920x1200@60Hz** support<br>for big displays | ✅ | ✅ | | ❌ | | ❌ | ❌ |
| **HDMI 1920x1080@60Hz** support<br>for better BIOS/UEFI compatibility | ✅ | ✅ | | ❌ | | ❌ | ❌ |
| **HDMI audio** capture | ✅ | ✅ | | ✅ | | ❌ | ❌ |
| **Microphone emulation** for two-way audio | ✅ | ✅ | | ✅ | | ❌ | ❌ |
| **Super fast H.264 & MJPEG video:**<br>720p - 60fps, 1080p - 30fps for H.264 | ✅ | ✅ | | ✅ | | ✅ | ✅ |
||
||

View File

@ -1,54 +1,7 @@
??? warning "USB limitations"
**TL;DR: By default, you can add only one additional device to choose from, such as USB Ethernet, or USB Serial, or an extra Mass Storage Drive.**
!!! info "USB limitations"
There is a hardware limit on the number of devices that can be emulated at the same time.
Each USB device uses so-called endpoints to communicate with the host.
Depending on the type, the device consumes a different number of endpoints,
while their total number is limited by the capabilities of the chip, **for Raspberry Pi it is 8**.
Each emulated USB device consumes a limited hardware resource called **endpoints**.
It is quite difficult to calculate the number of endpoints used, but in the case of PiKVM,
you can focus on the following numbers:
Short info: by default, you can add only one additional USB device.
| Device | Endpoints |
|--------|-----------|
| Keyboard, mouse | 1 for each |
| Mass Storage Drive | 2 for each |
| USB Ethernet, USB Serial | 3 for each |
V2 and V3 emulates one mouse by default, V4 emulates two mouses. Thus, V2 and V3 use 4 endpoints, and V4 uses 5 by default.
Creating an axtra Mass Storage Drive consumes additional endpoints, as well as USB Serial and USB Ethernet,
so only a limited number of devices can be selected for the final configuration, for example, one USB Ethernet.
If you need something more non-standard, you can [disable the regular Mass Storage Drive](msd.md#disable-msd)
and the additional mouse (on V4) to free up some extra endpoints.
The `kvmd-otg` service is responsible for setting up USB emulation. If the endpoint limit is exceeded,
the service will not be able to start and no emulated USB device will work.
In the log it looks something like this:
```
# journalctl -u kvmd-otg
...
kvmd-otg[382]: kvmd.apps.otg INFO --- ===== Preparing complete =====
kvmd-otg[382]: kvmd.apps.otg INFO --- Enabling the gadget ...
kvmd-otg[382]: kvmd.apps.otg INFO --- WRITE --- /sys/kernel/config/usb_gadget/kvmd/UDC
kvmd-otg[382]: OSError: [Errno 524] Unknown error 524
kvmd-otg[382]: During handling of the above exception, another exception occurred:
kvmd-otg[382]: Traceback (most recent call last):
kvmd-otg[382]: File "/usr/bin/kvmd-otg", line 9, in <module>
kvmd-otg[382]: main()
kvmd-otg[382]: File "/usr/lib/python3.10/site-packages/kvmd/apps/otg/__init__.py", line 348, in main
kvmd-otg[382]: options.cmd(config)
kvmd-otg[382]: File "/usr/lib/python3.10/site-packages/kvmd/apps/otg/__init__.py", line 278, in _cmd_start
kvmd-otg[382]: _write(join(gadget_path, "UDC"), udc)
kvmd-otg[382]: File "/usr/lib/python3.10/site-packages/kvmd/apps/otg/__init__.py", line 83, in _write
kvmd-otg[382]: with open(path, "w") as file:
kvmd-otg[382]: OSError: [Errno 524] Unknown error 524
systemd[1]: kvmd-otg.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: kvmd-otg.service: Failed with result 'exit-code'.
systemd[1]: Failed to start PiKVM - OTG setup.
```
In this case, you need to disable some of the previously enabled devices and restart PiKVM.
To get more information about the endpoints, add more devices, and flexibly manage the configuration on the fly, see [here](usb.md).

View File

@ -1,91 +1,125 @@
# PiKVM V3+ Audio
Official PiKVM V3, V4 Mini and V4 Plus devices have an exclusive audio transmission feature.
Audio is transmitted over an HDMI cable from the target host to PiKVM as if it were a regular monitor
with speakers, and then from PiKVM to a web browser in [WebRTC video mode](webrtc.md).
This brings the user experience of working with a remote host even closer to the local one.
Official [PiKVM V3](v3.md) and [PiKVM V4](v4.md) devices have an exclusive audio transmission feature,
including **two-way** communication with microphone directly in the browser.
The incoming stream is captured from the target host via HDMI, the outgoing stream is transmitted to an emulated USB microphone.
This brings the user experience of working with voice applications on the remote host even closer to the local one.
!!! note
* This feature does not work with DIY devices, either CSI or USB video dongles.
* Audio does not work with DIY devices, either CSI or USB video dongles.
* Reverse audio transmission, that is, from the browser towards PiKVM
(for example, to emulate a microphone) is not yet supported.
* [VNC](vnc.md) does not support audio, it only works in the Web UI.
* [VNC](vnc.md) does not support audio, it only works in the Web UI in [WebRTC](webrtc.md) mode.
-----
## Preparing
## Speakers (incoming audio)
For PiKVM V4, this feature is enabled by default and no special preparations are required.
* On [PiKVM V4](v4.md), this feature is enabled by default, unless you didn't disable it [with custom EDID](edid.md).
For PiKVM V3, this feature is disabled by default for historical reasons so as not to break
old user configurations that were created before audio support was added.
* On [PiKVM V3](v3.md), this is disabled for historical reasons so as not to break old user's configurations
that was created before audio support was introduced.
??? example "Enabling audio on PiKVM V3"
??? example "Enabling audio on PiKVM V3"
1. Make sure that you have not removed the [audio jumpers (4)](v3.md#io-ports-and-jumpers)
on the V3 HAT board and have not deleted or commented the `dtoverlay=tc358743-audio`
line in `/boot/config.txt`. Return everything as it was, if you changed it.
1. Make sure that you have not removed the [audio jumpers (4)](v3.md#io-ports-and-jumpers)
on the V3 HAT board and have not deleted or commented the `dtoverlay=tc358743-audio`
line in `/boot/config.txt`. Return everything as it was, if you changed it.
2. Update OS and reboot:
2. Update OS and reboot:
{!_update_os.md!}
3. Enable the Basic Audio support in the [EDID](edid.md) in the `/etc/kvmd/tc358743-edid.hex` and reboot the device again:
```console
[root@pikvm ~]# rw
[root@pikvm ~]# kvmd-edidconf --set-audio=yes
[root@pikvm ~]# reboot
```
The target host determines whether it is possible to output audio via HDMI. Each OS does this in its own way.
In general, make sure that the audio output is HDMI in the mixer.
PiKVM supports stereo mode with any standard bits and frequencies like 32/44.1/48 kHz with 16/24 bit.
* **Mac OS** usually understands the priority of HDMI for audio output on its own,
but you can specify this explicitly in the settings.
* **Windows** requires explicit specifying of the audio output device.
* In **Linux**, everything depends on the distribution you use. In ancient times, the audio required performing
a ritual dance under the full Moon. For now, a working Pipewire or Pulseaudio most likely be enough.
Just specify HDMI as the audio sink in the mixer.
To receive audio in the PiKVM Web UI, go to the **System** menu and switch the video mode to `WebRTC`.
If everything is in order, the volume slider will appear. Set the volume to a non-zero value.
The video stream will restart and you should start hearing sounds from the target host.
<img src="menu_speakers.png" width="350" />
If the volume slider is set to zero, then PiKVM does not accept the audio stream to save traffic,
while the target host will still assume that the audio output to HDMI is available.
Besides, when the page is reloaded, the volume slider will be reset to zero.
Saving this setting is not possible due to browser limitation that do not allow web pages to play audio
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.
{!_usb_limits.md!}
??? example "Enabling USB Microphone"
1. Microphone requires speakers support so check the previous paragraph. Also perform OS updating and reboot if you didn't:
{!_update_os.md!}
3. Add the following lines to `/etc/kvmd/janus/janus.plugin.ustreamer.jcfg` if they missing:
```
audio: {
device = "hw:0,0"
tc358743 = "/dev/kvmd-video"
}
```
4. Enable the Basic Audio support in the [EDID](edid.md) in the `/etc/kvmd/tc358743-edid.hex`:
2. Switch filesystem to RW-mode:
```console
[root@pikvm ~]# kvmd-edidconf --set-audio=yes
[root@pikvm ~]# rw
```
5. Reboot the device:
3. Add a config to `/etc/kvmd/override.yaml`:
```yaml
otg:
devices:
audio:
enabled: true
```
4. Perform reboot:
```console
[root@pikvm ~]# reboot
```
To receive and transmit audio in the PiKVM Web UI, go to the **System** menu and switch the video mode to `WebRTC`.
If everything is in order, the volume slider will appear with additional Microphone switch.
Set the volume to a non-zero value, next switch the mic switch.
Your browser will ask for permission to use the microphone, allow it.
-----
## Usage
<img src="menu_mic.png" width="350"/>
The target host determines whether it is possible to output audio via HDMI. Each OS does this in its own way.
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.
* Mac OS usually understands the priority of HDMI for audio output on its own,
but you can specify this explicitly in the settings.
!!! warning "USB compatibility"
* Windows requires explicit specifying of the audio output device.
This feature is very new, so we don't know how much it affects the ability to interact with the BIOS and UEFI.
* In Linux, everything depends on the distribution you use. In ancient times, audio required performing
a ritual dance on a full moon. For now, a working Pipewire or Pulseaudio most likely be enough.
Just specify HDMI as the audio sink in the mixer.
Please try this and [let us know](https://discord.gg/bpmXfz5) if you have lost the ability to access
the BIOS or boot OS from PiKVM Mass Storage after turning on the USB microphone.
In general, make sure that the audio output is output via HDMI.
PiKVM supports stereo mode with any standard bits and frequencies like 32/44.1/48 kHz with 16/24 bit.
To receive audio in the PiKVM Web UI, go to the **System** menu and switch the video mode to `H.264 / WebRTC`.
If everything is in order, the volume slider will appear. Set the volume to a non-zero value.
The video stream will restart and you should start hearing sounds from the target host.
<img src="menu.png" width="350"/>
!!! note
If the volume slider is set to zero, then PiKVM does not accept the audio stream to save traffic,
while the target host will still assume that the audio output to HDMI is available.
Besides, when the page is reloaded, the volume slider will be reset to zero.
Saving this setting is not possible due to browser limitation that do not allow web pages to play audio
immediately after opening without user activity to protect against annoying ads.
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.
-----

BIN
docs/audio/menu_mic.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

193
docs/usb.md Normal file
View File

@ -0,0 +1,193 @@
# USB configuration
PiKVM V2+ emulates a small set of USB devices to ensure normal operation: a keyboard, [mouse](mouse.md) and [mass storage drive](msd.md).
However, the possibilities are not limited to this. Optionally, you can add a [USB ethernet](usb_ethernet.md),
[serial port](usb_serial.md), or (exclusive to [PiKVM V3](v3.md) and [V4](v4.md)) [a microphone to support two-way audio](audio.md).
In rare cases, the target host's BIOS/UEFI may not understand such a large number of emulated devices on single USB port,
and some of them may need to be disabled.
A complete USB configuration changing (adding or removing devices) requires a reboot, but it is possible
to temporarily disable and then re-enable existing emulated devices in preset.
-----
## Basics
Each emulated USB device consumes a limited hardware resource called **endpoints**.
Depending on the device, the number of required endpoints varies:
| Device | Endpoints |
|--------|-----------|
| Keyboard, mouse | 1 for each |
| Mass Storage Drive | 2 for each |
| USB Microphone | 2 |
| USB Ethernet, USB Serial | 3 for each |
**In total, PiKVM provides 9 endpoints for USB emulation**, some of which are used by default:
* PiKVM V2-V3 emulates one absolute mouse and one mass storage and uses 4 of 9 endpoints.
* PiKVM V4 also adds a relative mouse by default so it uses 5 of 9 endpoints.
You can add other devices remaining endpoints, disable existing ones at all to free some endpoints, or do this only temporarily.
Moreover, you can configure the preset with a large number of devices (more than PiKVM allows by endpoints),
and then dynamically enable only the necessary ones.
If you have configured too many devices that consume more than 9 endpoints in total,
the least important of them will be inactive. You can enable them using dynamic configuration.
To configure additional devices, please refer to the corresponding pages:
* [USB Microphone](audio.md) - Two-way audio communication for voice applications on the target host.
Exclusive to [PiKVM V3](v3.md) and [V4](v4.md).
* [Absolute and relative mouse](mouse.md) - The most convenient type of mouse is an absolute mouse,
but some BIOSes may not understand it. In this case, the relative one will help you.
* [USB Ethernet](usb_ethernet.md) - A FTP or Samba server on PiKVM can be configured, and the target host
will see this over the network. It is also possible that PiKVM can work as a router to connect a host to a big network.
* [USB Serial Port](usb_serial.md) - It can be used for terminal access from the target host to the PiKVM,
or for any other purpose that requires a serial connection.
-----
## Default preset
Device setup includes two stages: adding to config and starting.
When you add a device as described on the pages above, it automatically turns on after PiKVM reboot
and becomes available on the target device. This behaviour can be changed: the device will be created,
but not active until you turn it on dynamically.
The `/etc/kvmd/override.yaml` file is used for such changes. In the following example,
there are [USB Serial Port](usb_serial.md) and [Microphone](audio.md) enabled,
but the serial port is not started by default:
```yaml
otg:
devices:
serial:
enabled: true
start: false
audio:
enabled: true
```
The `start` parameter is also available for all USB devices, see `kvmd -m` for the entire configuration tree.
## Dynamic configuration
### Command-line utility
The `kvmd-otgconf` utility allows you to view and modify the USB configuration on the fly.
It will also inform you about the number of endpoints used.
Changing requires root permissions.
View the config. Each line represents an emulated device.
Plus or minus sign means the state (enabled or not), next it displays the device name,
the number of required endpoints and its description.
```console
[root@pikvm ~]# kvmd-otgconf
# Endpoints used: 7 of 9
# Endpoints free: 2
- acm.usb0 # [3] Serial Port
+ hid.usb0 # [1] Keyboard
+ hid.usb1 # [1] Absolute Mouse
+ hid.usb2 # [1] Relative Mouse
+ mass_storage.usb0 # [2] Mass Storage Drive
+ uac2.usb0 # [2] Microphone
```
Sometimes it happens that it is impossible to get into the UEFI/BIOS due to their bugs in USB support,
and you need to boot from the PiKVM mass storage.
In this case you can disable all devices except keyboard and relative mouse, and enter the BIOS:
```console
[root@pikvm ~]# kvmd-otgconf -d mass_storage.usb0 uac2.usb0 hid.usb1
# Endpoints used: 2 of 9
# Endpoints free: 7
- acm.usb0 # [3] Serial Port
- ecm.usb0 # [3] Ethernet
+ hid.usb0 # [1] Keyboard
- hid.usb1 # [1] Absolute Mouse
+ hid.usb2 # [1] Relative Mouse
- mass_storage.usb0 # [2] Mass Storage Drive
- uac2.usb0 # [2] Microphone
```
Then change the boot order in the BIOS by setting the USB sticks as first priority.
Exit the BIOS, and turn on mass storage again. Use it as usual to boot the image from PiKVM mass storage:
```console
[root@pikvm ~]# kvmd-otgconf -e mass_storage.usb0
# Endpoints used: 4 of 9
# Endpoints free: 5
- acm.usb0 # [3] Serial Port
- ecm.usb0 # [3] Ethernet
+ hid.usb0 # [1] Keyboard
- hid.usb1 # [1] Absolute Mouse
+ hid.usb2 # [1] Relative Mouse
+ mass_storage.usb0 # [2] Mass Storage Drive
- uac2.usb0 # [2] Microphone
```
You can also enable `uac2.usb0` and `hid.usb1` again.
### Web UI Menu
Using the pseudo-GPIO driver, you can USB control devices via the menu in the web interface.
Read about GPIO basics [here](gpio.md).
To setup the menu, use `kvmd-otgconf --make-gpio-config` to generate the configuration, and merge it
with your existing one in `/etc/kvmd/override.yaml` in a usual way.
??? example "The example of `kvmd-otgconf --make-gpio-config` output"
```yaml
# kvmd-otgconf --make-gpio-config
kvmd:
gpio:
drivers:
otgconf:
type: otgconf
scheme:
hid.usb0:
driver: otgconf
mode: output
pin: hid.usb0
pulse: false
hid.usb1:
driver: otgconf
mode: output
pin: hid.usb1
pulse: false
hid.usb2:
driver: otgconf
mode: output
pin: hid.usb2
pulse: false
mass_storage.usb0:
driver: otgconf
mode: output
pin: mass_storage.usb0
pulse: false
view:
table:
- ["#Keyboard", "#hid.usb0", hid.usb0]
- ["#Absolute Mouse", "#hid.usb1", hid.usb1]
- ["#Relative Mouse", "#hid.usb2", hid.usb2]
- ["#Mass Storage Drive", "#mass_storage.usb0", mass_storage.usb0]
```
Please note that this menu is not dynamically generated, you need to update the configuration if you added or deleted devices.

View File

@ -1,98 +0,0 @@
# Dynamic USB configuration
PiKVM emulates a number of USB devices to ensure normal operation: keyboards, mouse and mass storage drive.
Also an additional [relative mouse](mouse.md) may be present (like on PiKVM V4 by default),
or a user configured [USB Ethernet](usb_ethernet.md) or [Serial port](usb_serial.md).
In rare cases, the host BIOS/UEFI may not understand such a large number of emulated devices on single USB port,
so some of them may need to be disabled. USB reconfiguration usually requires a reboot, but it is possible
to temporarily disable already configured existing emulated devices.
!!! warning
This feature is experimental. Due to the imperfections of the kernel modules, rarely a dynamic configuration change
can lead to a kernel panic and reboot.
For PiKVM V3 and V4 this is considered more secure because they have two independent watchdog systems
that can bring devices back to life after a timeout of a few minutes.
-----
## Command-line utility
The `kvmd-otgconf` utility allows you to view and modify the USB configuration on the fly.
It requires root permission and can be used for example from a web terminal.
View the config:
```
# kvmd-otgconf
+ hid.usb0 # Keyboard
+ hid.usb1 # Absolute Mouse
+ hid.usb2 # Relative Mouse
+ mass_storage.usb0 # Mass Storage Drive
```
Each line represents a device (function). First comes plus or minus sign (the device on or off), then the name of the device and its description.
Disabling the device:
```
[root@pikvm ~]# kvmd-otgconf --disable-function mass_storage.usb0
+ hid.usb0 # Keyboard
+ hid.usb1 # Absolute Mouse
+ hid.usb2 # Relative Mouse
- mass_storage.usb0 # Mass Storage Drive
```
Enabling the device:
```
[root@pikvm ~]# kvmd-otgconf --enable-function mass_storage.usb0
+ hid.usb0 # Keyboard
+ hid.usb1 # Absolute Mouse
+ hid.usb2 # Relative Mouse
+ mass_storage.usb0 # Mass Storage Drive
```
-----
## Web UI menu
Using the pseudo-GPIO driver, you can also control devices via the menu in the web interface.
Read about GPIO basics [here](gpio.md).
To setup the menu, use `kvmd-otgconf --make-gpio-config` to generate the configuration, and merge it
with your existing one in `/etc/kvmd/override.yaml` in a usual way.
??? example "The example of `kvmd-otgconf --make-gpio-config` output"
```yaml
# kvmd-otgconf --make-gpio-config
kvmd:
gpio:
drivers:
otgconf:
type: otgconf
scheme:
hid.usb0:
driver: otgconf
mode: output
pin: hid.usb0
pulse: false
hid.usb1:
driver: otgconf
mode: output
pin: hid.usb1
pulse: false
hid.usb2:
driver: otgconf
mode: output
pin: hid.usb2
pulse: false
mass_storage.usb0:
driver: otgconf
mode: output
pin: mass_storage.usb0
pulse: false
view:
table:
- ["#Keyboard", "#hid.usb0", hid.usb0]
- ["#Absolute Mouse", "#hid.usb1", hid.usb1]
- ["#Relative Mouse", "#hid.usb2", hid.usb2]
- ["#Mass Storage Drive", "#mass_storage.usb0", mass_storage.usb0]
```

View File

@ -1,6 +1,6 @@
# 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.
Specifically to V2+. This can be used for terminal access from the target host 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.
{!_usb_limits.md!}

View File

@ -96,7 +96,7 @@ If you have a kit without a metal case, you can use our free 3D printing case dr
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.
11. Enable [audio forwarding](audio.md){target=_blank} if you want.
11. Enable [audio speakers and microphone](audio.md){target=_blank} if you want.
12. 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.
@ -175,5 +175,5 @@ The standard Raspberry Pi HDMI output (marked as `VIDEO OUT` on the PiKVM case)
## Known issues and limitations
* 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 great 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.
* 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 great 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. In the last case, [USB dynamic configuration](usb.md) will solve the problem.
* Pre-release V3.2 board (NOT Kickstarter/Store edition) doesn't have HDMI backpowering workaround jumper.

View File

@ -63,12 +63,14 @@
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).
7. Configure access to PiKVM from the Internet using [port forwarding](https://docs.pikvm.org/port_forwarding)
7. Enable [microphone for two-way audio](audio.md){target=_blank} if you want.
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.
8. **If you are using PiKVM V4 Plus, check out its new exclusive feature: [HDMI Passthrough](pass.md)!**
9. **If you are using PiKVM V4 Plus, check out its new exclusive feature: [HDMI Passthrough](pass.md)!**
9. Explore the features of PiKVM using the site's table of contents and have fun!
10. Explore the features of PiKVM using the site's table of contents and have fun!
-----
@ -141,5 +143,5 @@ To enable USB 3.0, it is required to flash the USB controller firmware. It's ver
-----
## Known issues and limitations
* 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 V4 will work great 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.
* 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 V4 will work great 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. In the last case, [USB dynamic configuration](usb.md) will solve the problem.
* While there is a Mini-PCIe slot in the V4 Plus, this was only designed with the LTE modem with USB lines in mind, therefore if you decide to get a NVME card, it will not work.

View File

@ -63,6 +63,7 @@ plugins:
"gsm.md": "modem.md"
"3g.md": "modem.md"
"4g.md": "modem.md"
"usb_dynamic.md": "usb.md"
nav:
- "Device guides":
@ -90,8 +91,9 @@ nav:
- "HDMI passthrough": pass.md
- "H.264 / WebRTC": webrtc.md
- "Working with video": video.md
- "HDMI audio": audio.md
- "Peripheral devices":
- "USB configuration": usb.md
- "Audio / microphone": audio.md
- "Keyboard & mouse":
- "Mouse modes": mouse.md
- "Mouse jiggler": mouse_jiggler.md
@ -100,7 +102,6 @@ nav:
- "Mass Storage Drive": msd.md
- "Ethernet-over-USB": usb_ethernet.md
- "Serial-over-USB": usb_serial.md
- "Dynamic USB configuration": usb_dynamic.md
- "GPIO (pins, relays, lamps, etc)": gpio.md
- "Advanced usage":
- "On-boot configuration": on_boot_config.md