PiKVM for W2 & Mainline Linux 6.18 Kernel

Thanks to some help from Claude AI, I’ve brought my BPI-W2 back to life after it sat in a drawer for years. I ported PiKVM to the board, and along the way I also brought it up on a mainline Linux kernel (6.18 LTS). Almost everything now works. PCIe is the exception: I don’t have an M.2 E-key card to test it with.

Working on Linux 6.18 (tested on the board):

  • Boot from SD card or eMMC (HS200), all four CPU cores
  • CPU frequency scaling 300 MHz – 1.4 GHz with the G2227 PMIC, temperature sensor and thermal throttling
  • Gigabit Ethernet on both RJ45 ports (the second one through the hardware NAT engine’s port)
  • SATA (AHCI, 6 Gbps)
  • USB host ports and USB OTG (Type-C, gadget mode)
  • HDMI input: 1080p60 capture with EDID, plus HDMI audio capture
  • H.264 hardware encoding (CODA980, mainline coda driver)
  • HDMI output and mini DisplayPort output (1080p60)
  • IR receiver (rc-core)

PiKVM: 1080p60 capture, MJPEG / H.264 / WebRTC streaming, keyboard and mouse, virtual media (MSD), HDMI audio and the web terminal all work.

Not done yet: a PCIe driver (no card to test with), the ATX power/reset lines (the GPIOs are set up, but no ATX board has been tried), and other HDMI output modes (only 1080p60).

It’s an old board, but if you’re interested, you’re welcome to try it out or help with development.

Feedback, bug reports and pull requests are welcome!