There's nothing to fix. The devices are either open and a dev has decided to write his own, or the devices are closed and the drivers are provided by their respective creators.
If it's the former, pay a dev, if it's the latter, use a different device.