FUSD: A Linux Framework for User-Space Devices

Posted on 01/03/2010 in Software

fusd is a Linux Framework for User-Space Devices.


When the Cybook Orizon project started it became apparent to me that the main reading application should use native linux input event instead of using its own module reading the status of buttons or certains IO, as the reading app was moving slowly and maintainer was not really willing to support these for the time being, an intermediate solution was needed, and the decision was made to create a demon tool which would take normal input event and create a user space device which would behave like the old driver used in the Cybook Gen3 line.

At the time there were two possibilities for user space devices, the original fusd project, and one based on the FUSE project (Filesystem in User Space) named CUSE (Character device in User Space), but the second was albeit being officially supported by the kernel was only able to behave like a character device and not a block device, and I needed the second type for this project.

Fusd was unmaintained at the time I needed it and was not working with the kernel we were using for the ebook reader which was the Linux kernel version 2.6.21, and I made the changed needed for it to support the newer kernels at the time, and been maintaining it since when I think about it or get a request.


This project is an out of tree linux kernel module and hasn’t been tested with some of the most recent kernel, but was bulding properly up to the 5.4 kernel branch. Also CUSE being part of the kernel may provide what you need, though feel free to use fusd if you really need it and it fit your purpose.

Github page for the project: https://github.com/Godzil/fusd