diff --git a/README.md b/README.md index 8466f5cf..f2d361bb 100644 --- a/README.md +++ b/README.md @@ -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.
- 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
for big displays | ✅ | ✅ | | ❌ | | ❌ | ❌ | | **HDMI 1920x1080@60Hz** support
for better BIOS/UEFI compatibility | ✅ | ✅ | | ❌ | | ❌ | ❌ | | **HDMI audio** capture | ✅ | ✅ | | ✅ | | ❌ | ❌ | +| **Microphone emulation** for two-way audio | ✅ | ✅ | | ✅ | | ❌ | ❌ | | **Super fast H.264 & MJPEG video:**
720p - 60fps, 1080p - 30fps for H.264 | ✅ | ✅ | | ✅ | | ✅ | ✅ | || || diff --git a/docs/_usb_limits.md b/docs/_usb_limits.md index 2267fee8..0c0ab18b 100644 --- a/docs/_usb_limits.md +++ b/docs/_usb_limits.md @@ -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 - 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). diff --git a/docs/audio.md b/docs/audio.md index dfe37b1e..8991dfb2 100644 --- a/docs/audio.md +++ b/docs/audio.md @@ -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. + + + +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 + -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. - - - -!!! 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. ----- diff --git a/docs/audio/menu_mic.png b/docs/audio/menu_mic.png new file mode 100644 index 00000000..0c526b1d Binary files /dev/null and b/docs/audio/menu_mic.png differ diff --git a/docs/audio/menu.png b/docs/audio/menu_speakers.png similarity index 100% rename from docs/audio/menu.png rename to docs/audio/menu_speakers.png diff --git a/docs/usb.md b/docs/usb.md new file mode 100644 index 00000000..f25ec8c8 --- /dev/null +++ b/docs/usb.md @@ -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. diff --git a/docs/usb_dynamic.md b/docs/usb_dynamic.md deleted file mode 100644 index c5d46481..00000000 --- a/docs/usb_dynamic.md +++ /dev/null @@ -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] - ``` diff --git a/docs/usb_serial.md b/docs/usb_serial.md index aa014bf8..a895003c 100644 --- a/docs/usb_serial.md +++ b/docs/usb_serial.md @@ -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!} diff --git a/docs/v3.md b/docs/v3.md index abaaf083..6c30d4b0 100644 --- a/docs/v3.md +++ b/docs/v3.md @@ -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. diff --git a/docs/v4.md b/docs/v4.md index 76ce8acd..437434d7 100644 --- a/docs/v4.md +++ b/docs/v4.md @@ -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. diff --git a/mkdocs.yml b/mkdocs.yml index bc20943c..e97a920e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -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