3 điểm bởi GN⁺ 2024-02-12 | 1 bình luận | Chia sẻ qua WhatsApp
  • SimpleKVM là một chương trình dành cho Windows, cho phép điều khiển nhiều máy tính bằng một bộ bàn phím, chuột và màn hình; đây là một lựa chọn thay thế giúp giảm chi phí so với KVM độ phân giải cao, tần số quét cao
  • Người dùng chỉ cần kết nối từng máy tính với màn hình, kết nối bàn phím và chuột với USB Switch, rồi chạy SimpleKVM trên một trong các máy tính
  • Có thể chuyển đổi bằng nút trên USB Switch hoặc bằng phím tắt; chương trình phát hiện việc thiết bị USB được kết nối/ngắt kết nối hoặc thao tác nhập phím tắt
  • Việc chuyển ngõ vào màn hình được xử lý bằng lệnh DDC/CI mà nhiều màn hình hỗ trợ, và cũng hỗ trợ cấu hình đa màn hình
  • Bản tải xuống được cung cấp trong mục releases trên GitHub, hiện chỉ có cho Windows

Vấn đề SimpleKVM giải quyết

  • SimpleKVM là chương trình để điều khiển nhiều máy tính bằng một bộ bàn phím, chuột và màn hình
  • KVM thông thường thường đắt, đặc biệt là các sản phẩm hỗ trợ độ phân giải caotần số quét cao
  • SimpleKVM cho phép tạo một cấu hình tương tự khi dùng cùng USB Switch giá rẻ, mà không phải tốn hàng trăm đô la

Cấu hình cần có

  • Người dùng cấu hình theo thứ tự sau
    • Kết nối các máy tính với màn hình
    • Kết nối chuột và bàn phím với USB Switch
    • Chạy SimpleKVM trên một trong các máy tính
  • Sau đó có thể chuyển đổi giữa các máy tính bằng USB Switch hoặc phím tắt

Cách hoạt động

  • Chương trình phát hiện thời điểm thiết bị USB được kết nối hoặc ngắt kết nối
  • Thao tác nhập phím tắt cũng có thể được dùng làm tác nhân kích hoạt chuyển đổi
  • Khi chuyển đổi, chương trình gửi lệnh DDC/CI tới màn hình để thay đổi nguồn đầu vào
  • DDC/CI là phương thức được nhiều màn hình hỗ trợ

Đa màn hình và môi trường chạy

  • SimpleKVM hỗ trợ đa màn hình
  • Có thể tải bản phát hành tại mục releases
  • Bản build hiện được cung cấp là dành cho Windows

Ví dụ USB Switch

Thiết lập chương trình khởi động cùng hệ thống và nguồn gốc

1 bình luận

 
GN⁺ 2024-02-12
Ý kiến trên Hacker News
  • Chỉ ở mức “tôi cũng đi đến cùng kết luận”, nhưng tôi nghĩ cấu hình của mình tuy phức tạp hơn một chút nhưng tốt hơn và rẻ hơn
    Cách trên khó với tôi vì phải cài trên mọi máy tính, và do phụ thuộc vào việc chuyển USB nên không thể kích hoạt hoàn toàn từ xa
    Thay vào đó, tôi xử lý việc chuyển đầu vào màn hình bằng lệnh DDC, USB bằng một USB KVM 25 USD chỉ có một nút, còn thao tác nhấn nút bằng macropad AliExpress giá 5–15 USD
    Sản phẩm hoàn chỉnh như Stream Deck thì đắt, hơn 80 USD chỉ cho vài nút, còn macropad giá rẻ có thể lập trình bằng các dự án GitHub như https://github.com/rOzzy1987/MacroPad thay vì phần mềm đi kèm
    Nút USB KVM được nhấn bằng FingerBot 16 USD hoặc Switchbot 28 USD, còn AHK theo dõi phím tắt để kích hoạt đồng thời lệnh DDC và nút USB switch
    Có độ trễ vài giây, nhưng chỉ điều khiển từ một nơi và cũng có thể chạy hoàn toàn từ xa

    • Có vẻ mọi người đều đi đến kết luận tương tự. Tôi đã gặp khá nhiều vấn đề khi cố tự động hóa chỉ bằng USB switch trên Windows và macOS, như giá trị DDC sai, phát hiện sự kiện thiết bị: https://nokappa.notion.site/Making-a-software-KVM-using-only...
      Cuối cùng nó hơi thiếu ổn định, và những việc khác còn rối hơn nên tôi gần như đã bỏ cuộc
      Macropad là một ý tưởng hay, còn việc đặt vị trí USB switch lúc nào cũng phiền
    • Cấu hình này có ưu điểm so với KVM switch thông thường và hẳn là một dự án hack thú vị, nhưng nếu chỉ xét giá thì trên AliExpress có thể mua KVM HDMI 4K 4 cổng kèm pad điều khiển với giá 29,25 USD
      Tôi không biết phí ship đến Mỹ, nhưng ship sang châu Âu là 15 USD
    • Tôi muốn một cấu hình như thế này, nhưng màn hình của tôi không hỗ trợ đủ lệnh DDC. Có màn hình nào đáng giới thiệu không?
    • Bạn nói không thích việc “cách trên phải cài trên mọi máy tính”, nhưng giải pháp này rốt cuộc chẳng phải cũng phải cài script AHK trên mọi máy tính sao?
  • Khi tìm hiểu KVM, cuối cùng tôi cũng đi đến cùng kết luận rằng DDC là lời giải
    Trường hợp của tôi là hai máy Windows và cấu hình hai màn hình, dùng NirSoft ControlMyMonitor có CLI cùng Elgato Stream Deck
    KVM thông thường chỉ cho cả hai màn hình hiển thị một máy tính, nhưng tôi muốn màn hình A hiển thị một máy, màn hình B hiển thị máy kia, và khi cần thì đổi chéo cho nhau
    Tôi dùng kết hợp màn hình dọc/ngang, và muốn chuyển chuột với bàn phím độc lập với cấu hình màn hình
    Trên mỗi máy tính chạy phần mềm Stream Deck, còn Stream Deck được nối vào USB switch

    • Tôi tò mò liệu mọi thứ, kể cả các binding liên kết với Stream Deck, có hoạt động tốt không
    • DDC là viết tắt của gì?
  • Ngay cả USB switcher đơn giản cũng khá đắt, và đôi khi còn yêu cầu driver không chạy được trên Linux
    Vì vậy tôi nhanh chóng vẽ một bo mạch đơn giản có USB hub và switch, rồi nhờ các xưởng DIY như JLCPCB hoặc PCBWay lắp ráp luôn
    Năm cái switch 2-vào-1 chỉ có một nút giá 25 euro, tôi không có kinh nghiệm thiết kế mạch và cũng không hàn gì, nhưng nó hoạt động hoàn hảo
    Có vẻ nó cũng hợp với phần mềm này, nên có lẽ tôi sẽ thử một lần

    • Loại switch đó mọi thứ đều diễn ra về mặt vật lý nên không cần phần mềm, và có thể mua trên Amazon khoảng 20 euro
      Tôi nghĩ như vậy rẻ hơn đặt làm riêng
    • Sẽ rất tuyệt nếu bạn đăng thiết kế ở nơi có thể truy cập được. KVM loại rẻ thì hay không hoạt động theo những cách kỳ lạ, còn loại đắt thì hoạt động nhưng thường có quirks
      Việc nối đất và tránh ground loop giữa các mức điện thế khác nhau có lẽ là một phần khá lớn
    • Có vẻ đúng là giá đã tăng một chút trong vài năm gần đây. Có khi sản phẩm tự làm cũng có thị trường
      Việc một số USB switcher không chạy tốt trên Linux khá thú vị
      Tôi từng nghĩ vì chỉ là USB hub đơn giản nên sẽ không cần driver riêng, nhưng các sản phẩm có tính năng nâng cao như truyền tệp giữa PC hoặc chia sẻ chuột, chẳng hạn https://www.aliexpress.com/item/1005006202631772.html, thường cần phần mềm và driver đặc thù
    • Năm 2019 tôi mua https://www.amazon.com/gp/product/B01HV1N674 với giá 13 USD, và đến giờ vẫn dùng cùng display-switch mà OP nhắc tới
      Nó là thiết bị “ngốc” hết mức có thể; theo một bài review, nếu cắm rút quá nhiều thì cổng có thể hơi lỏng, nhưng với hai màn hình Dell P2419H của tôi thì đến giờ vẫn hoạt động hoàn hảo
      Tôi chọn sản phẩm này vì mọi dây đều ở phía sau, và mẫu có điều khiển từ xa trên trang GitHub của OP trông cũng ổn
    • Một vài sản phẩm TA link có giá khá hợp lý
      Tôi đã dùng thử vài cái và cũng tìm hiểu khi muốn cấu hình tương tự, nhưng chưa gặp sản phẩm nào cần driver
  • Tôi dùng udev cho mục đích này. Khi USB switch xuất hiện thì gửi lệnh DDC
    ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="1a40", ENV{ID_MODEL_ID}=="0101", RUN+="/usr/bin/ddcutil --sn ABCDEFGHI setvcp 60 0x0f"

  • KVM tốt, đặc biệt là sản phẩm của Level1Tech, giữ cho tất cả màn hình luôn ở trạng thái được kết nối ảo, nên khi chuyển qua lại giữa các máy, vị trí cửa sổ vẫn được giữ nguyên
    Từ góc nhìn của PC client, thiết bị USB/DisplayPort chưa từng biến mất, nên cũng không có độ trễ do phải cắm lại thiết bị
    Cũng có thể cắm hàng loạt thiết bị ngoại vi vào dock rồi chỉ chuyển upstream Thunderbolt, nhưng cách đó không hoạt động ổn
    KVM dở thì dễ làm, KVM tốt thì khó
    Không liên quan đến https://www.store.level1techs.com/products/hardware

    • Tôi đã mua KVM của Level1Tech nhưng nó không hỗ trợ giả lập EDID
      Khi chuyển qua lại giữa Mac và máy Linux (Gnome), Mac đi ngủ, còn Gnome quay về cấu hình màn hình mặc định và di chuyển vị trí cửa sổ
      Có KVM DP 1.2 có giả lập EDID, nhưng như vậy sẽ mất các lợi thế của DP 1.4
      Diễn đàn FAQ cũng có nêu: https://forum.level1techs.com/t/official-l1techs-kvm-faq-ult...
    • Hầu hết màn hình Dell đời mới đều có KVM và hub tích hợp
      Dùng cùng thiết bị ngoại vi không dây có receiver USB thì rất tiện vì tạo được cấu hình không dây cáp, còn laptop chỉ cần cắm một sợi cáp là kết nối được mọi thứ
    • Năm ngoái tôi mua sản phẩm của Level1Tech, rất đắt nhưng cá nhân tôi thấy xứng đáng
      Tôi chuyển qua lại giữa PC làm việc và PC cá nhân nhiều lần mỗi ngày; với hai máy Linux, cấu hình hai màn hình 4K 60Hz và 2K 144Hz đến nay vẫn hoạt động hoàn hảo
      Tôi còn nối cả USB audio, micro, camera 4K, máy in, bàn phím và chuột
    • Lỗi không giữ được vị trí cửa sổ chỉ xảy ra với trình quản lý cửa sổ kém
      Trình quản lý cửa sổ tốt đủ thông minh để đưa cửa sổ về vị trí cũ khi màn hình quay lại
    • Tôi từng dùng rất ổn một KVM phổ thông tìm thấy trên Amazon https://www.amazon.com/gp/product/B088WGKFZH, tiếc là giờ có vẻ đã hết hàng
      Chưa từng có lần nào chuyển nguồn thất bại, và độ trễ mà người khác nói chỉ là quá trình HDMI handshake của chính màn hình
      Tôi cũng có chiếc TESmart đắt hơn nhiều https://www.amazon.com/gp/product/B08N494N7X, nhưng không dùng được vì có vấn đề tương thích kỳ lạ với dock Thunderbolt https://www.amazon.com/gp/product/B08HR3T837 và MBP
      Tôi đã liên hệ cả đội hỗ trợ nhưng cuối cùng vẫn không tìm ra nguyên nhân
  • Điểm cần chú ý với các công cụ kiểu này là trên DisplayPort, thường chỉ input đang hoạt động mới cho phép gửi lệnh
    Một khi chuyển sang input khác, bạn sẽ không thể quay lại nếu không chạy lệnh từ máy tính bên kia, khá phiền
    Ngược lại, HDMI thường cho phép lệnh DDC cả trên các cổng không phải input đang hoạt động
    Tôi không rõ có bắt buộc phải như vậy không, nhưng mọi màn hình tôi từng dùng đều như thế

  • Đây đúng là dự án tôi đang cần. Tôi tò mò liệu có thể chỉ chuyển dock Thunderbolt hay không
    Ví dụ có bốn máy tính hỗ trợ Thunderbolt, và chỉ chuyển một cổng USB-C giữa chúng
    Tôi chưa thử vì sợ ảnh hưởng đến phần cứng; sau khi được bài này truyền cảm hứng, tôi tìm Thunderbolt KVM thì thấy những thứ như https://sabrent.com/products/sb-tb4khttps://www.reddit.com/r/Thunderbolt/comments/11gos6n/kvm_sw...

    • Tốt nhất đừng kỳ vọng vào chuyện đó. Thunderbolt chỉ có vẻ ngoài là USB-C; nên xem nó giống PCIe tình cờ mang hình dạng đầu nối USB thì đúng hơn
    • Có vẻ khả năng cao sẽ phát sinh vấn đề. Các dock Thunderbolt tôi có đều có thứ giống như thời gian khởi động mỗi lần bật nguồn hoặc chuyển đổi
      Nếu chấp nhận độ trễ thì có thể nó vẫn hoạt động
    • Thunderbolt có vẻ sẽ có yêu cầu rất cụ thể, nên switch cũng có khả năng đắt
  • Tóm lại, mỗi máy tính phải cắm cáp HDMI của mình vào từng input của màn hình
    Đây không phải KVM thực sự như nhiều người nghĩ, mà là cách giúp bạn khỏi phải bấm nút chọn input trên màn hình
    Ít nhất một máy phải bật và chạy Windows, nhưng có lẽ chỉ cần một máy như vậy là đủ

    • Chỉ cần một máy tính chạy Windows và chạy chương trình
      Khi phát hiện thiết bị USB được cắm vào, nó đổi input màn hình sang máy Windows; khi phát hiện thiết bị USB được rút ra, nó đổi sang máy Linux
    • Trên Linux có thể chuyển input bằng ddcutil, nên khá dễ làm một thứ tương tự
      Tôi đã dùng theo kiểu tương tự: bấm phím tắt để chạy script, rồi dùng xrandr đổi hướng xoay màn hình
  • Trước khi quay lại dùng một máy tính, tôi từng rút cắm cáp thủ công, rồi dùng USB switch Ugreen được nêu trong README, và cuối cùng chuyển hẳn sang màn hình KVM tích hợp; đó là lựa chọn tốt nhất
    Vấn đề là khi muốn dùng cùng một màn hình cho công việc và chơi game
    KVM switch 4K hoặc tần số quét cao rất đắt và thường kém tin cậy, nên thông thường sẽ dùng USB switch và chuyển đầu vào màn hình thủ công
    Phần mềm ở đây giúp giảm việc phải bấm nút “đổi nguồn đầu vào”, nhưng có vẻ chỉ dành cho Windows, nên nếu cả hai máy không đều chạy Windows thì chỉ chuyển được một chiều, còn khi quay lại sẽ cần chuyển thủ công
    Một màn hình phù hợp để chơi game, có DPI cao, tần số quét cao và KVM tích hợp là Gigabyte M28U
    Chỉ với một nút, nguồn đầu vào và thiết bị ngoại vi USB sẽ cùng chuyển đổi, và hoạt động khá tốt
    Cũng có M32U, nhưng DPI thấp hơn

    • Nếu chỉ có hai máy tính thì chỉ cần chạy SimpleKVM trên một máy là đủ
      Vì nó có thể phát hiện thiết bị USB bị gỡ ra, tức là đã chuyển sang máy tính khác, và được cắm vào, tức là đã quay lại máy tính này
    • Tôi thắc mắc liệu các máy tính khác được chuyển sang từ màn hình có nhận biết rằng màn hình đã biến mất hay không
    • Gigabyte M27U có tấm nền tốt hơn, và nhờ DPI cao nên nhìn trên macOS cũng đẹp hơn nhiều
  • Tôi cũng tự làm một thứ tương tự, và khiến nó hoạt động mà không cần USB switch hay phần cứng khác
    Tôi gửi lệnh DDC tới màn hình HDMI/USB-C, và gửi bytecode HID++ tới bàn phím và chuột Logi MX
    Code quá lộn xộn để chia sẻ, nhưng nếu ai muốn tự làm thì có thể cấu hình theo kiểu gửi các chuỗi byte để chuyển sang từng host cho Logi Bolt Receiver, Logitech Unified Receiver, MX Keys Mini Bluetooth, MX Anywhere 3 Bluetooth

    • Nếu muốn tìm hiểu thêm về việc này thì nên xem ở đâu? Tôi cũng tò mò liệu các chuỗi này có khác nhau theo từng thiết bị hay không
      Cấu hình hiện tại của tôi là hai màn hình Dell U2415 và desktop Linux x86_64, dùng chuột dọc Logi hỗ trợ cả Bluetooth lẫn dongle và bàn phím ATK(A.JAZZ)
      Tôi muốn chia sẻ bàn phím/màn hình/chuột hoàn toàn bằng phần mềm qua Bluetooth của Raspberry Pi 5 và hai cổng micro-HDMI, và không muốn chi nhiều tiền cho KVM phần cứng