Andrey Konovalov (GitHub user xairy) has developed a Linux kernel module for a USB Raw Gadget. A USB Raw Gadget is a kernel module that allows to emulate USB devices from userspace.There is a GitHub repository which contains instructions and examples for using Raw Gadget.The module is currently under review for upstream inclusion, so...