3 Punkte von GN⁺ 2024-02-12 | 1 Kommentare | Auf WhatsApp teilen
  • SimpleKVM ist ein Programm für Windows, mit dem sich mehrere Computer mit einem einzigen Set aus Tastatur, Maus und Monitor steuern lassen, und eine Alternative, um die Kosten für KVMs mit hoher Auflösung und hoher Bildwiederholrate zu senken
  • Nutzer verbinden jeden Computer mit dem Monitor, schließen Tastatur und Maus an einen USB-Switch an und starten dann SimpleKVM auf einem der Computer
  • Das Umschalten ist per USB-Switch-Taste oder Hotkey möglich; das Programm erkennt das Verbinden und Trennen von USB-Geräten oder Hotkey-Eingaben
  • Das Umschalten des Monitoreingangs erfolgt über DDC/CI-Befehle, die von vielen Monitoren unterstützt werden; auch Multi-Monitor-Konfigurationen werden unterstützt
  • Der Download wird im GitHub-Bereich releases bereitgestellt, aktuell nur für Windows

Welches Problem SimpleKVM löst

  • SimpleKVM ist ein Programm, um mehrere Computer mit einer einzigen Tastatur, Maus und einem Monitor zu steuern
  • Normale KVMs sind tendenziell teuer, besonders Modelle mit Unterstützung für hohe Auflösungen und hohe Bildwiederholraten
  • SimpleKVM ermöglicht zusammen mit einem günstigen USB-Switch einen ähnlichen Aufbau, ohne mehrere hundert Dollar auszugeben

Benötigte Konfiguration

  • Nutzer richten es in folgender Reihenfolge ein
    • Die Computer mit dem Monitor verbinden
    • Maus und Tastatur mit dem USB-Switch verbinden
    • SimpleKVM auf einem der Computer starten
  • Danach ist das Umschalten zwischen den Computern per USB-Switch oder Hotkey möglich

Funktionsweise

  • Das Programm erkennt, wann USB-Geräte verbunden oder getrennt werden
  • Auch Hotkey-Eingaben können als Auslöser für das Umschalten verwendet werden
  • Beim Umschalten sendet es DDC/CI-Befehle an den Monitor, um die Eingangsquelle zu ändern
  • DDC/CI ist ein Verfahren, das von vielen Monitoren unterstützt wird

Multi-Monitor und Laufzeitumgebung

  • SimpleKVM unterstützt Multi-Monitor
  • Releases können im Bereich releases heruntergeladen werden
  • Derzeit werden nur Builds für Windows bereitgestellt

Beispiele für USB-Switches

Autostart-Einstellung und Quelle

  • Für automatisches Starten beim Systemstart auf den Einstellungsbutton klicken und Run at Startup aktivieren
  • SimpleKVM ist von haimgels Programm display-switch inspiriert

1 Kommentare

 
GN⁺ 2024-02-12
Meinungen auf Hacker News
  • Es läuft auf „ich bin zum gleichen Schluss gekommen“ hinaus, aber mein Setup ist etwas komplexer, dafür meiner Ansicht nach besser und günstiger
    Der oben beschriebene Ansatz ist für mich schwierig, weil er auf allen Computern installiert werden muss, und da er vom USB-Umschalten abhängt, lässt er sich nicht vollständig remote auslösen
    Stattdessen erledige ich das Umschalten der Monitoreingänge per DDC-Befehl, USB über einen 25-Dollar-USB-KVM mit nur einem Button, und den Button-Input über ein AliExpress-Macropad für 5–15 Dollar
    Fertigprodukte wie Stream Deck sind für ein paar Tasten mit über 80 Dollar teuer, und günstige Macropads lassen sich statt mit der mitgelieferten Software über GitHub-Projekte wie https://github.com/rOzzy1987/MacroPad programmieren
    Den USB-KVM-Button lasse ich von einem FingerBot für 16 Dollar oder einem Switchbot für 28 Dollar drücken, und AHK überwacht Hotkeys und triggert zusammen den DDC-Befehl und den Button des USB-Switches
    Es gibt ein paar Sekunden Verzögerung, aber es wird nur von einer Stelle aus gesteuert und lässt sich auch vollständig remote ausführen

    • Offenbar sind alle zu ähnlichen Schlüssen gekommen. Beim Versuch, das unter Windows und macOS nur mit einem USB-Switch zu automatisieren, hatte ich einige Probleme, etwa falsche DDC-Werte und das Erkennen von Geräte-Events: https://nokappa.notion.site/Making-a-software-KVM-using-only...
      Am Ende war es etwas instabil, und weil andere Dinge noch chaotischer waren, habe ich es größtenteils aufgegeben
      Ein Macropad ist eine gute Idee, und den USB-Switch richtig zu platzieren war immer lästig
    • Dieses Setup hat gegenüber einem normalen KVM-Switch Vorteile und war sicher ein interessantes Hacking-Projekt, aber rein vom Preis her bekommt man bei AliExpress einen 4-Port-4K-HDMI-KVM samt Bedienpad für 29,25 Dollar
      Versandkosten in die USA kenne ich nicht, nach Europa waren es 15 Dollar
    • Ich hätte gern so ein Setup, aber mein Monitor unterstützt nicht genügend DDC-Befehle. Gibt es empfehlenswerte Monitore?
    • Du sagst, du magst nicht, dass „der oben beschriebene Ansatz auf allen Computern installiert werden muss“, aber muss man bei dieser Lösung nicht am Ende auch auf allen Computern ein AHK-Skript installieren?
  • Beim Recherchieren zu KVMs bin ich letztlich zum gleichen Schluss gekommen: DDC ist die Lösung
    In meinem Fall sind es zwei Windows-Rechner und ein Dual-Monitor-Setup; ich nutze NirSoft ControlMyMonitor mit CLI und ein Elgato Stream Deck
    Ein normaler KVM zeigt auf beiden Monitoren nur einen Computer, aber ich möchte auf Monitor A einen Computer und auf Monitor B den anderen anzeigen und sie bei Bedarf tauschen können
    Ich nutze einen Monitor im Hochformat und einen im Querformat und möchte Maus und Tastatur unabhängig von der Monitorkonfiguration umschalten
    Auf jedem Computer läuft die Stream-Deck-Software, und das Stream Deck ist an den USB-Switch angeschlossen

    • Mich würde interessieren, ob wirklich alles sauber funktioniert, einschließlich der mit dem Stream Deck verbundenen Bindings
    • Wofür steht DDC?
  • Selbst einfache USB-Switcher sind ziemlich teuer, und manchmal verlangen sie Treiber, die unter Linux nicht funktionieren
    Also habe ich schnell eine einfache Leiterplatte mit USB-Hub und Switch entworfen und sie bei DIY-Fertigern wie JLCPCB oder PCBWay inklusive Bestückung herstellen lassen
    Fünf Stück eines einfachen 2-zu-1-Switches kosteten 25 Euro, und obwohl ich keine Erfahrung im Schaltungsdesign hatte und nicht gelötet habe, funktioniert es perfekt
    Das dürfte auch gut zu dieser Software passen, vielleicht probiere ich es einmal aus

    • Bei solchen Switches passiert alles physisch, daher braucht man keine Software, und bei Amazon bekommt man sie für etwa 20 Euro
      Ich denke, das ist günstiger als eine Sonderanfertigung
    • Es wäre schön, wenn du das Design irgendwo zugänglich machen könntest. KVMs funktionieren, wenn sie billig sind, oft auf seltsame Weise nicht, und wenn sie teuer sind, funktionieren sie zwar, haben aber häufig Quirks
      Erdung und das Vermeiden von Ground Loops zwischen unterschiedlichen Potenzialen dürften ein ziemlich großer Teil davon sein
    • Es stimmt wohl, dass die Preise in den letzten Jahren etwas gestiegen sind. Vielleicht gibt es sogar einen Markt für selbstgebaute Geräte
      Interessant ist, dass manche USB-Switcher unter Linux nicht gut funktionieren
      Ich hätte gedacht, dass ein einfacher USB-Hub keinen separaten Treiber braucht, aber Produkte mit erweiterten Funktionen wie Dateiübertragung zwischen PCs oder Maus-Sharing, etwa https://www.aliexpress.com/item/1005006202631772.html, benötigen oft spezielle Software und Treiber
    • 2019 habe ich https://www.amazon.com/gp/product/B01HV1N674 für 13 Dollar gekauft und nutze es bis heute zusammen mit dem von OP erwähnten display-switch
      Es ist ein möglichst „dummes“ Gerät; laut einer Rezension können die Ports etwas wackelig werden, wenn man zu oft ein- und aussteckt, aber mit meinen zwei Dell-P2419H-Monitoren funktioniert es bisher perfekt
      Ich habe dieses Modell gewählt, weil alle Kabel hinten herausgehen, und das Modell mit Fernbedienung auf OPs GitHub-Seite scheint ebenfalls in Ordnung zu sein
    • Einige der von TA verlinkten Produkte waren preislich ziemlich vernünftig
      Ich habe auf der Suche nach einem ähnlichen Setup mehrere ausprobiert und recherchiert, aber keines davon brauchte einen Treiber
  • Ich verwende dafür udev. Wenn der USB-Switch auftaucht, wird ein DDC-Befehl gesendet
    ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="1a40", ENV{ID_MODEL_ID}=="0101", RUN+="/usr/bin/ddcutil --sn ABCDEFGHI setvcp 60 0x0f"

  • Gute KVMs, insbesondere die Produkte von Level1Tech, halten alle Monitore virtuell dauerhaft verbunden, sodass die Fensterpositionen beim Wechsel zwischen Rechnern erhalten bleiben.
    Aus Sicht des Client-PCs sind die USB-/DisplayPort-Geräte nie verschwunden, daher gibt es auch keine Verzögerung durch erneutes Einstecken der Geräte.
    Man kann auch jede Menge Peripherie an ein Dock hängen und nur den Upstream-Thunderbolt umschalten, aber dieser Ansatz funktioniert nicht richtig.
    Schlechte KVMs sind einfach, gute KVMs sind schwierig.
    Hat nichts mit https://www.store.level1techs.com/products/hardware zu tun.

    • Ich habe einen Level1Tech-KVM gekauft, aber er unterstützte keine EDID-Emulation.
      Beim Wechsel zwischen Mac und einer Linux-Box (Gnome) geht der Mac in den Ruhezustand, und Gnome fällt auf die Standard-Monitorkonfiguration zurück und verschiebt die Fensterpositionen.
      Es gibt DP-1.2-KVMs mit EDID-Emulation, aber damit verliert man die Vorteile von DP 1.4.
      Steht auch im FAQ-Forum: https://forum.level1techs.com/t/official-l1techs-kvm-faq-ult...
    • Die meisten aktuellen Dell-Monitore haben einen integrierten KVM und Hub.
      In Kombination mit kabelloser Peripherie über USB-Empfänger ergibt das ein schönes Setup ohne Kabelsalat, und beim Laptop ist mit nur einem Kabel alles verbunden.
    • Ich habe mir letztes Jahr ein Level1Tech-Produkt gekauft; es war sehr teuer, aber für mich persönlich war es sein Geld wert.
      Ich wechsle mehrmals täglich zwischen Arbeits-PC und privatem PC, und mit zwei Linux-Rechnern, einem Dual-Monitor-Setup aus 4K 60 Hz und 2K 144 Hz, funktioniert es bisher perfekt.
      Daran hängen USB-Audio, Mikrofon, 4K-Kamera, Drucker, Tastatur und Maus.
    • Der Bug, dass Fensterpositionen nicht erhalten bleiben, tritt nur bei schlechten Window Managern auf.
      Ein ordentlicher Window Manager ist schlau genug, Fenster wieder an ihre ursprüngliche Position zu setzen, wenn der Monitor zurückkommt.
    • Ich habe einen generischen KVM von Amazon https://www.amazon.com/gp/product/B088WGKFZH genutzt und war sehr zufrieden damit; schade, dass er inzwischen offenbar ausverkauft ist.
      Das Umschalten der Quellen ist nie fehlgeschlagen, und die von anderen erwähnte Verzögerung war nur der HDMI-Handshake des Monitors selbst.
      Es gab auch den deutlich teureren TESmart https://www.amazon.com/gp/product/B08N494N7X, aber mit meinem Thunderbolt-Dock https://www.amazon.com/gp/product/B08HR3T837 und dem MBP hatte er merkwürdige Kompatibilitätsprobleme, sodass ich ihn nicht verwenden konnte.
      Ich habe auch den Support kontaktiert, aber die Ursache ließ sich am Ende nicht klären.
  • Bei solchen Tools muss man beachten, dass DisplayPort normalerweise nur für den aktiven Eingang Befehle zulässt.
    Wenn man einmal auf einen anderen Eingang umgeschaltet hat, kommt man nicht mehr zurück, sofern man den Befehl nicht auf dem anderen Computer ausführt; das ist lästig.
    HDMI dagegen erlaubt DDC-Befehle normalerweise auch auf Ports, die nicht der aktive Eingang sind.
    Ich weiß nicht, ob das zwingend so sein muss, aber bei allen Displays, die ich ausprobiert habe, war es so.

  • Das ist genau das Projekt, das ich gerade brauche. Ich frage mich, ob man auch nur ein Thunderbolt-Dock umschalten kann.
    Zum Beispiel vier Computer mit Thunderbolt-Unterstützung, zwischen denen man nur einen USB-C-Anschluss umschaltet.
    Ich habe es nicht ausprobiert, weil ich befürchtete, die Hardware zu beeinträchtigen; inspiriert von diesem Beitrag habe ich nach Thunderbolt-KVMs gesucht und Dinge wie https://sabrent.com/products/sb-tb4k und https://www.reddit.com/r/Thunderbolt/comments/11gos6n/kvm_sw... gefunden.

    • Darauf sollte man besser nicht hoffen. Thunderbolt sieht nur äußerlich wie USB-C aus; man sollte es eher als PCIe betrachten, das zufällig die Form eines USB-Steckers hat.
    • Das klingt nach hoher Wahrscheinlichkeit für Probleme. Die Thunderbolt-Docks, die ich habe, haben jedes Mal beim Einschalten oder Umschalten so etwas wie eine Boot-Zeit.
      Wenn man die Verzögerung in Kauf nimmt, könnte es vielleicht funktionieren.
    • Thunderbolt dürfte sehr spezifische Anforderungen haben, und deshalb dürften entsprechende Switches auch teuer sein.
  • Kurz gesagt: Jeder Computer muss sein eigenes HDMI-Kabel in jeweils einen Eingang des Monitors stecken.
    Das ist nicht der echte KVM, an den viele denken, sondern eine Methode, um nicht die Eingangswahltaste am Monitor drücken zu müssen.
    Mindestens ein Rechner muss eingeschaltet sein und Windows ausführen, aber vermutlich reicht einer aus.

    • Es genügt ein Computer, auf dem Windows läuft und das Programm ausgeführt wird.
      Wenn erkannt wird, dass ein USB-Gerät eingesteckt wurde, wird der Monitoreingang auf den Windows-Computer umgeschaltet; wenn erkannt wird, dass das USB-Gerät entfernt wurde, wird auf den Linux-Computer umgeschaltet.
    • Unter Linux kann man mit ddcutil den Eingang umschalten, daher wäre etwas Ähnliches leicht zu bauen.
      Ich nutze bereits etwas Ähnliches: Per Tastenkürzel wird ein Skript ausgeführt, das mit xrandr die Monitordrehung ändert.
  • Bis ich wieder zu einem einzigen Computer zurückgekehrt bin, habe ich Kabel manuell ab- und angesteckt, dann den im README erwähnten Ugreen-USB-Switch genutzt und bin schließlich bei einem Monitor mit integriertem KVM gelandet; das war am besten.
    Das Problem entsteht, wenn man denselben Monitor für Arbeit und Gaming verwenden möchte.
    4K- oder High-Refresh-Rate-KVM-Switches sind extrem teuer und tendenziell unzuverlässig, daher nutzt man meist einen USB-Switch und schaltet den Monitoreingang manuell um.
    Diese Software reduziert zwar das Drücken der Taste zum „Eingangsquelle wechseln“, scheint aber Windows-only zu sein. Wenn also nicht beide Maschinen Windows nutzen, funktioniert der Wechsel nur in eine Richtung; beim Zurückwechseln muss man manuell umschalten.
    Als Monitor, der gamingtauglich ist und zugleich hohe DPI, hohe Bildwiederholrate und einen integrierten KVM bietet, gibt es den Gigabyte M28U.
    Mit einem einzigen Knopf wechseln Eingangsquelle und USB-Peripherie gemeinsam, und das funktioniert ziemlich gut.
    Es gibt auch den M32U, aber dessen DPI ist niedriger.

    • Wenn es nur zwei Computer sind, reicht es, SimpleKVM nur auf einem davon auszuführen.
      Denn es kann erkennen, dass ein USB-Gerät entfernt wurde, also zum anderen Computer gewechselt ist, und dass es eingesteckt wurde, also zu diesem Computer zurückgekehrt ist.
    • Ich frage mich, ob die anderen Computer, zu denen am Monitor umgeschaltet wurde, erkennen, dass das Display verschwunden ist.
    • Der Gigabyte M27U hat ein besseres Panel und sieht dank der höheren DPI auch unter macOS deutlich besser aus.
  • Ich habe etwas Ähnliches selbst gebaut und dafür gesorgt, dass es ohne USB-Switch oder andere Hardware funktioniert.
    An HDMI-/USB-C-Monitore sende ich DDC-Befehle, und an Logi-MX-Tastatur und -Maus sende ich HID++-Bytecode.
    Der Code ist zu chaotisch, um ihn zu teilen, aber wer so etwas selbst bauen möchte, kann es so aufsetzen, dass Byte-Sequenzen zum Wechseln auf den jeweiligen Host an Logi Bolt Receiver, Logitech Unified Receiver, MX Keys Mini Bluetooth und MX Anywhere 3 Bluetooth gesendet werden.

    • Wo sollte man nachsehen, um mehr darüber herauszufinden? Ich frage mich auch, ob solche Sequenzen je nach Gerät unterschiedlich sind.
      Meine aktuelle Konfiguration besteht aus zwei Dell-U2415-Monitoren und einem Linux-x86_64-Desktop; ich nutze eine vertikale Logi-Maus sowie eine ATK-(A.JAZZ)-Tastatur, die beide Bluetooth und Dongle unterstützen.
      Ich möchte Tastatur/Monitor/Maus rein softwarebasiert über Bluetooth und die beiden micro-HDMI-Ports eines Raspberry Pi 5 teilen und kein Vermögen für einen Hardware-KVM ausgeben.