|
|
|
|
|
by PaulHoule
1821 days ago
|
|
Device drivers can be very simple code, but you have to know something about systems programming to write them. (E.g. you might be able to just allocate a buffer, copy data into the buffer, write to an I/O register to start the DMA and it is that many lines of code.) You have to know how the device works. The vendor may or may not have gone out of the way to make it hard to initialize the device to control who can write drivers for it. Also the device could have many modes but you only need to use one which is less work.) So it is high risk. In an easy case with good luck and the right skills an audio driver could be working in a day. In a hard case a professional reversing firm could do it with a $1M budget (think of the people who unlocked a terrorist’s iPhone for the fbi) Other than writing new drivers there are ways to ‘virtualize’ a device driver to get it to run in a different environment, particularly for USB devices. That is, the driver works through an OS interface to send USB packets and you can tap it at this level, see how it works, tunnel the USB data to another OS, etc. |
|
Given the risk you mentioned, it sounds tricky to commission without finding one of the team who had worked on the device previously and knew they could have it wrapped quickly. Or someone with a shared interest in getting it done.
At the risk of being told to Google it ... may I ask you a little more about your suggestion of 'virtualizing' the driver?
Would this involve running another full OS within the OS? Like, running a Mojave install from within a Big Sur install? VMWare type thing?
Latency is always a thing with audio routing, might this be a bit resource-intensive / slow?
Would there be implications with the M1?
Any hints welcome. Thanks