Linux &引用;“多实例”;内核模块与参数化
我正在开发一个内核模块,它应该处理自身的多个实例。它应该打开多个虚拟声卡。这样的虚拟声卡只需通过UDP数据包将音频数据流传输到特定的IP地址 在我的例子中,每当内核模块第一次被modprobe'd时,它将创建一个虚拟声卡实例(一个ALSA兼容设备),公开一组ALSA节点-/dev/snd/controlC0、/dev/snd/pcmC0D0p和/dev/snd/pcmC0D0c。在第二个“加载请求”中,它将公开另一组ALSA节点-/dev/snd/controlC1、/dev/snd/pcmC1D0p和/dev/snd/pcmC1D0c 我的问题是:Linux &引用;“多实例”;内核模块与参数化,linux,linux-kernel,linux-device-driver,kernel-module,alsa,Linux,Linux Kernel,Linux Device Driver,Kernel Module,Alsa,我正在开发一个内核模块,它应该处理自身的多个实例。它应该打开多个虚拟声卡。这样的虚拟声卡只需通过UDP数据包将音频数据流传输到特定的IP地址 在我的例子中,每当内核模块第一次被modprobe'd时,它将创建一个虚拟声卡实例(一个ALSA兼容设备),公开一组ALSA节点-/dev/snd/controlC0、/dev/snd/pcmC0D0p和/dev/snd/pcmC0D0c。在第二个“加载请求”中,它将公开另一组ALSA节点-/dev/snd/controlC1、/dev/snd/pcmC1
如果要设置参数virt\u soundcard\u name=“room1”,virt\u soundcard\u ip=“192.168.1.105”,virt\u soundcard\u number\u of_channels=“8”,最简单的方法是什么?我可以通过SYSFS或其他方式将一个文件或一行具有该配置的文件传递给内核模块吗?加载一次,使用多次。是的,sysfs会有帮助。当然,您可以为您的模块选择另一个IPC。可能我将使用与gpio密钥类似的方法:它在/sys/devices/platform/gpio keys/下公开一些属性。所以它和我需要的很相似。你的意见是什么?还有其他“用户友好”的解决方案吗?忘了澄清一下-我需要它作为基于文件的方法,因为我将使用Python/Bash来配置内核模块。我不会在用户空间中使用中间件作为C等中的库。如果您了解其优缺点,任何设计都是好的。您可以实现一个带有接口的控制设备,该接口允许创建和销毁虚拟声卡。