news.volyx.in

Writing userspace USB drivers for abandoned devices (blog.benjojo.co.uk)

872 points by signa11 · 2523 days ago · 114 comments on HN

Article summary

The article describes the process of reverse engineering a userspace USB driver for an abandoned device, the Epiphan VGA2USB LR, which captures VGA input and presents it as a webcam. The author details their journey, from analyzing the device's communication protocol to extracting the firmware and writing a new driver. The device was found to be based on an FPGA platform with a USB controller and analog-to-digital converter. The author successfully wrote a userspace driver and made it available on GitHub.

Main themes

  • USB driver development
  • Reverse engineering
  • FPGA programming
  • Linux kernel development
  • Device driver maintenance
  • Hardware hacking
  • Protocol analysis

What commenters say

  • Learning to write device drivers under Linux requires a combination of self-study, trial and error, and analyzing existing code.
  • The Linux Device Drivers book is a valuable resource for learning about device drivers, despite being based on an older kernel version.
  • Reverse engineering a device's communication protocol can be a complex and time-consuming process, but can be rewarding for understanding how the device works.
  • The use of binary blobs and proprietary drivers can make it difficult to maintain and update device drivers, leading to abandoned hardware.
  • Analyzing the communication protocol of a device can reveal interesting details about its inner workings, such as the use of YUV color encoding.
  • The ability to reprogram an FPGA device can make it a versatile and valuable tool for a variety of applications.
  • Writing a userspace driver can be a viable alternative to kernel-level drivers, especially for devices with complex protocols or proprietary drivers.