HeadlinesBriefing favicon HeadlinesBriefing.com

Browser‑based Linux VM revives old Canon SELPHY printer

Hacker News •
×

When a hobbyist swapped a 3‑D printer for a cheap Canon SELPHY photo printer, he discovered the device no longer works on modern macOS or Windows. Using a Manjaro box, he installed CUPS and Gutenprint, shared the printer via AirPrint, and got the family printing photos again. Yet the solution required a Linux host, limiting its appeal.

To make the printer usable from any browser, the author built a web app that runs an x86 Linux VM inside Chrome using the v86 emulator compiled to WebAssembly. The VM boots Alpine, installs CUPS and the Gutenprint driver, then connects to the printer through WebUSB. Early attempts used custom CUPS back‑ends that pushed raw data one‑way, but they could not report device errors.

A later revision introduced a bidirectional bridge by running USB/IP inside the emulated Linux and pairing it with tcpip.js, which translates raw Ethernet frames to TCP/IP in the browser. This eliminated the custom backend, letting CUPS treat the printer as a normal USB device and exposing status messages. The final web app, printervention.app, now prints reliably from any Chrome‑compatible platform.