我编写了一个可加载内核模块(LKM),它将音频驱动程序包装在 /dev/snd/pcmC0D0p 下。
因此,我移至pcmC0D0p
,pcmC0D0p_bak
将我的驱动程序重命名为pcmC0D0p
并通过每个命令MMAP
,例如IOCTL
等(但在转发 MMAPed 数据之前做其他事情)。
这很糟糕,我知道(但这是我在 linux 编程中的第一步),但它奏效了。
今天,我读到一篇关于Userspace device drivers
.
现在我想知道:这真的可能吗?用用户空间代码编写一个“驱动程序”,实现 MMAP 和 IOCTL 等方法并将其放置在普通内核设备 (/dev/snd/pcmC0D0p) 的位置?
不是,不是吗?
如果可能的话,有人有一个简单的例子,一个参考吗?任何事情都非常受欢迎!