KVM Nerd's home

Design Goals

When planning my project, I tried to achieve a list of design goals.

General

  • Make it as flexible and extensible as possible
  • Do not even get the idea of using more than two cabinets and the desk for the computers and additional stuff (WAF)

Energy

  • Save as much electrical energy as possible

Mechanics

  • Use standardized 19" rack mountable cases where possible
  • Reduce cable mess as much as possible
  • Build it in a way it can be dismounted as good as possible for transport
  • At least try to have a reasonable airflow in the setup to optimize cooling

Computers

  • Have one computer installed from every important x86 CPU generation, starting from the 8086
  • Try to keep the computers in their original state, but use a powerful configuration for the time they were built, do not become too unrealistic
  • Emulate media for all the computers to be able to insert virtual media remotely

Controls, Video and Sound

  • Break it all down to one console and split it to different output consoles from this point, involving the following connections:
    • HDMI for picture (and sound)
    • S/PDIF
    • Analog sound (including 2.0, 4.0, 5.1 and 7.1)
    • Dedicated USB 1.1 connections for keyboard and mouse
    • USB 2.0 for peripheral devices, e. g. game controllers
  • Have the following consoles:
    1. Local console at the desk
      • DVI-D/HDMI for picture (and sound)
      • Analog sound (2.0/4.0/5.1/7.1)
      • S/PDIF (for direct connection to the receiver, and for feeding into HDMI)
      • HDMI sound
      • USB 1.1 for keyboard and mouse
      • USB 2.0 for additional hardware
    2. Remote console in the living room
      • HDMI for picture and sound
      • USB 1.1 for keyboard and mouse
      • USB 2.0 for additional hardware
    3. KVM over IP console
      • HDMI for picture and sound
      • USB 1.1 for keyboard and mouse
      • USB 2.0 for virtual media
  • Be able to use one or two USB Game Controllers at the same time for every computer in focus

Networking

  • Try to be able to exchange data to and from every computer

Automation

  • Automate as much as possible, including:
    • Power switching
    • Signal switching and routing
    • Device controlling
  • Create a remote control daemon for automation which can be controlled via a web client and a CLI client
Last updated on 6 Aug 2021
Published on 23 Apr 2020
 Edit on GitHub