如何编写ALSA(高级Linux声音体系结构)驱动程序?比如PCI声卡。在其他设备类型的情况下,API也可能有所不同。然而,至少ALSA内核API是一致的。对开发者而言需要具备足够的C语言技能和基本的linux内核编程知识。什么时在ALSA上编写PCI声音驱动程序的标准方法?
ALSA驱动程序的文件树结构:
core目录
这个目录包含中间层,它是ALSA驱动程序的核心。在该目录中,存储了本机ALSA模块。子目录包含不同的模块,并且依赖于内核配置。
core/oss
PCM和mixer OSS仿真模块的代码存储在此目录中。rawmidi OSS仿真包含在ALSA-rawmidi代码中,因为它很小。定序器代码存储在core/seq/oss目录中。
core/seq
此目录及其子目录用于ALSA定序器。此目录包含序列发生器内核和主序列发生器模块,如snd-seq-midi、snd-seq-virmidi等。只有在内核配置中设置CONFIG_snd_sequencer时,才会编译它们。
core/seq/oss
其中包含OSS定序器仿真代码。
include目录