Engineering services

Linux Device Driver Development

Kernel-space drivers for custom hardware, written by someone who also designed the hardware.

A driver for custom hardware is only as good as the writer's understanding of the device underneath it. The drivers behind the products on this site sit on top of FPGA designs and boards from the same bench, which removes the usual gap where the hardware team and the software team each believe the other has the bug.

Work covers the kernel-space layer specifically: character devices, V4L2 video capture, and USB, plus the userspace interface a driver has to present to be usable by the application team.

Driver classes

  • Character drivers with custom ioctl interfaces and sysfs attributes
  • V4L2 video capture drivers for camera and imaging pipelines
  • USB drivers, host side, for custom and class-compliant devices
  • Device tree bindings and platform driver integration

Kernel-space work

  • DMA buffer management and zero-copy paths to userspace
  • Interrupt handling, threaded IRQs, and deferred work
  • Memory-mapped register access and hardware abstraction layers
  • Kernel module packaging and out-of-tree build integration

Bring-up and debug

  • Driver bring-up on new silicon, alongside the FPGA design
  • Debugging across the hardware and software boundary in one place
  • Userspace test harnesses and capture validation
  • Yocto and PetaLinux integration for embedded targets
Representative work

Built, shipped, and debugged on real hardware

V4L2 capture driver

A V4L2 driver presenting a high-rate FPGA capture pipeline as a standard video device, so existing userspace tooling works without modification.

Character and USB drivers

Custom character drivers exposing FPGA register maps and DMA channels, plus host-side USB drivers for bespoke peripherals.

How engagements run

Scope that fits the problem

  • Driver written from scratch for your device
  • Upstreaming-quality cleanup of an existing out-of-tree driver
  • Debugging a driver that works on one kernel version and not the next
  • Hardware and driver delivered together as one deliverable

Related work on this site

These are shipping products from the same bench. They are the clearest evidence of what the service delivers.

Discuss a project