2017-02-11 80 views
0

我想編寫虛擬ALSA兼容驅動程序作爲可加載內核模塊。當通過ALSA-lib通過aplay/arecord訪問它時,假設它必須像通常的7.1聲道音頻設備一樣提供所有基本控制 - 採樣率,通道數量,格式等... 下面會只需從音頻流中獲取每個通道,並將其作爲UDP數據包流通過網絡發送。 它必須能夠被加載多次,並且最終它會暴露多達/ dev下的音頻設備。這樣我們就可以在系統中有多個虛擬聲卡。如何編寫僞ALSA兼容設備驅動程序?

這種內核模塊的最小結構應該是什麼? 你能給我一個示例框架(至少是界面)100%符合ALSA嗎? ALSA驅動程序的例子很差...

+1

您可能不需要創建內核模塊。你想要的是編寫一個alsa插件,它將創建一個alsa設備並在網絡上放置任何通道。你可以看看pulseaudio正在做什麼,或者簡單地配置脈衝音頻來完成你想要的。 –

+0

我明白了。但是我真的想把它放在內核空間中,以便用於其他任何事情。我正計劃從這個驅動程序中控制LED。 – valioiv

+0

您還可以從用戶空間做什麼 –

回答

0
  • 安裝alsa-basealsa-util
  • modprobe snd-dummy
  • 使用alsamixer或使用mocp(需要安裝moc)來配置添加虛擬音頻成功