Site Logo
LinuxNiche

Daisy-Chaining ezcoo HDMI Switches with BliKVM and PiKVM

Posted on 3 mins

PiKVM BliKVM HDMI Switches Homelab

Setting up the BliKVM V3 Hat with Daisy-chained ezcoo switches

This past Christmas, I received a BliKVM V3 HAT from a family member, and it has quickly become a pivotal tool in managing my homelab. My homelab, neatly tucked away in the basement inside a 10" Mini Rack , houses 10 servers: 5 Raspberry Pi’s and 5 1L TinyMiniMicro PCs. I wanted an efficient way to remotely install OSes and manage these devices without constantly heading downstairs.

The Challenge of Scaling PiKVM

The BliKVM V3 HAT allows me to view the HDMI output of a single system over a web browser. However, with 10 servers, I needed a solution to manage all devices seamlessly. Techno Tim’s video on scaling PiKVM using KVM switches inspired me. In his setup, he used an ezcoo switch , but it supported only up to 4 downstream devices. He later showcased the PiKVM Switch in another video , which integrates better with PiKVM software but is quite pricey.

Since my homelab consists of mostly Pi’s and 1L PCs, I didn’t need the ATX controls that the PiKVM switch offers. I opted for the more affordable ezcoo switches, which, after some research, I discovered this Reddit post and a GitHub commit that detailed modifications allowing “daisy-chaining” ezcoo switches to manage more devices.

Setting Up the BliKVM with Daisy-Chained ezcoo Switches

When I first received the BliKVM HAT, it came with an SD card pre-loaded with a modified PiKVM (not BliKVM’s software), but the version was outdated. Attempting to update the software using the standard PiKVM update procedure:

sudo pikvm-update

Bricked the device due to the OS being too old. I then flashed BliKVM’s official software but found it vastly different from the PiKVM setup. So, for the third attempt, I downloaded and flashed the latest PiKVM image from BliKVM’s website . This time, the PiKVM update worked perfectly, allowing me to modify the files from the GitHub guide—and it worked!

Wiring the Setup

Since the cabling process wasn’t clearly documented, here’s how I successfully connected everything:

  1. USB Connections:

    • Plug Micro-USB to USB-A cables from the control ports of both ezcoo switches directly into the PiKVM.
    • The PiKVM will register them as ttyUSB0 and ttyUSB1. Rename them as “ezcoo1” and “ezcoo2” according to the GitHub instructions.
  2. USB-C and HDMI Setup:

    • Connect the USB-C port on the BliKVM/PiKVM to a USB-C splitter (for Power + OTG).
    • Then connect it to USB-1 (or USB-3) on the first ezcoo switch. Do not use USB-2 as it limits functionality.
    • Connect the HDMI Out port of the first ezcoo switch to the HDMI In of the PiKVM.
  3. Daisy-Chaining the Second Switch:

    • Connect Port 4 HDMI of the first switch to HDMI Out of the second switch.
    • Connect Port 4 USB Out of the first switch to USB-1 of the second switch.

Configuring PiKVM for Daisy-Chaining

Once wired up, update the PiKVM configuration by following these steps:

  1. Make the filesystem writable:
    rw
    
  2. Update the required files as per the GitHub patch.
  3. Reload udev rules and restart kvmd service:
    udevadm control --reload-rules && udevadm trigger
    systemctl restart kvmd.service
    ro
    

After completing these steps, you should be able to control all 7 devices connected through the two ezcoo switches.

Results and Final Thoughts

I initially purchased only two ezcoo switches to test the setup, and they now allow me to manage 7 out of my 10 homelab devices seamlessly. The setup was a bit of trial and error, but the flexibility and control I’ve gained are well worth it.

PiKVM-Menu

With this setup, I can now manage my homelab from anywhere, saving both time and effort. If you’re looking to scale your PiKVM setup without breaking the bank, daisy-chaining ezcoo switches might be the perfect solution!

Stay tuned for more homelab adventures, and as always—happy tinkering!