ipkvm

command module
v0.0.0-...-0f6150a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 22, 2021 License: MIT Imports: 19 Imported by: 0

README

IP KVM

Features

  • Remote Video
    • Video and Audio capture from HDMI
    • Using WebRTC (H.264 + Opus)
    • Hardware enconding (using Gstreamer OpenMax plugins)
  • Remote Control
    • Connect to target device via USB
    • Supported Functions
      • Keyboard
      • Mouse
      • Touch screen
      • Gamepad
    • Keyboard and mouse are support boot protocol
    • Mouse supports absolute and relative position reporting
    • Gamepad input on your browse using the Gamepad API

Hardware requiments

  • Raspberry Pi 4 Model B or Compute Module 4
    • At least 1GB RAM
  • USB-HDMI capture module
    • UVC compatible

Software requiments

  • Raspberry Pi OS (based on Debian buster)
  • Go (checked on 1.15)

Implementation status

Feature Status Remarks
Video work, but need improvement There is a problem with resoltuions 1920x1080 and 800x600. (Resolution must be a multiple of 16)
Audio OK
Keyboard OK some key codes are undefined
Mouse OK
Touch screen OK
Gamepad work, but need improvement Buttons and axes are working fine. Hat switch is not tested and will not working.

Install

Preparation
# Enable USB OTG
echo "dtoverlay=dwc2" | sudo tee -a /boot/config.txt
cat << 'EOS' | sudo tee /etc/modules-load.d/ipkvm.conf
dwc2
libcomposite
EOS

# Disable USB suspend
sudo sed -i -e '1 s/$/ usbcore.autosuspend=-1/' /boot/cmdline.txt

# Install GStreamer
sudo apt update
sudo apt install gstreamer1.0-omx gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-tools libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

# Reboot to apply settings
sudo reboot
Install ipkvm
# Download and install
mkdir -p $(go env GOPATH)/src/github.com/msawahara/ipkvm
git clone https://github.com/msawahara/ipkvm.git $(go env GOPATH)/src/github.com/msawahara/ipkvm
(cd $(go env GOPATH)/src/github.com/msawahara/ipkvm && go install)

# Register service unit
cat << EOS | sudo tee /etc/systemd/system/ipkvm.service
[Unit]
Description=KVM over IP service
After=network.target

[Service]
Type=simple
ExecStartPre=$(which modprobe) uvcvideo
ExecStart=$(go env GOPATH)/bin/ipkvm
WorkingDirectory=$(go env GOPATH)/src/github.com/msawahara/ipkvm

[Install]
WantedBy=multi-user.target
EOS

# Start service
sudo systemctl daemon-reload
sudo systemctl enable --now ipkvm

The KVM console can be accessed at http://<ip-addr>:1323/.

Note

  • Gamepad API is only available in secure contexts (starting with https:// or localhost). more info.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL