Nee, dat kan dus niet. Je kan data wel vermenigvuldigen, maar je kan niet een device faken (nouja, dat kan wel, maar dan moet je dus een fake-copy OSS driver schrijven en dat wil je niet nee echt niet neehee echt niet nouja misschien ook wel maar doe toch maar niet want het gaat toch niet goed werken

).
Een driver/applicatie doen meer dan read() (applicatie) en read()-handler (driver). Doet ook set-format ioctl()s (dingen als bitrate/unsigned/signed/endianness, samplerate etc.), en nog wat meer dingen. Nu raad je 'em al: een FIFO kan geen van dat allen!

. Een FIFO is net zo dom als een tuinslang, het heeft een ingang en een uitgang en verder niks. Een device driver kan veel meer dan dat.
Daarmee heb ik videovraag ook al deels beantwoord - dat kan dus ook niet, tenzij je een fake-copy driver schrijft, en bij video wil je dat al HELEMAAAAAAAAAAAAAAAL niet. Onder sommige omstandigheden kan het handig zijn, maar ik raad het af. Mocht ik het ooit moeten doen (
/me jep vreemd aan
* 
), dan kan het wel, maar het is allesbehalve simpel, omdat je namelijk vanuit een kernel driver userspace interaction met andere drivers moet doen en dat zuigt. Het moet idd via kernelspace omdat je anders niet bij videodev.o of soundcore.o kunt registreren, en daar zitten alle video/audio devices... Is nogal evil daarbinnen.

.
Maargoed, zo simpel als 'een device copieren' is het helaas niet. Data kun je copieren, maar gedrag kun je niet emuleren. Sorry...