2017-02-11 1 views
0

Je veux écrire un pilote conforme à ALSA factice en tant que module de noyau chargeable. Quand on y accède par aplay/arecord à travers ALSA-lib, disons, il doit se comporter comme un périphérique audio 7.1 canaux fournissant au moins tous les contrôles de base - taux d'échantillonnage, nombre de canaux, format, etc ... Il suffit d'obtenir chaque canal du flux audio et de l'envoyer via le réseau en tant que flux de paquets UDP. Il doit pouvoir être chargé plusieurs fois et, en fin de compte, il exposerait autant de périphériques audio que souhaité sous/dev. De cette façon, nous aurons plusieurs cartes son virtuelles dans le système.Comment écrire un pilote de périphérique conforme ALSA factice?

Quelle devrait être la structure minimale d'un tel module noyau? Pouvez-vous me donner un exemple de squelette (au moins les interfaces) pour être 100% ALSA conforme? Les exemples de pilotes ALSA sont si pauvres ...

+1

Vous n'avez probablement pas besoin de créer un module de noyau. Ce que vous voulez, c'est écrire un plugin alsa qui va créer un périphérique alsa et mettre n'importe quel canal sur le réseau. vous pouvez regarder ce que fait pulseaudio ou simplement configurer le son pulsé pour faire exactement ce que vous voulez. –

+0

Je vois. Mais je veux vraiment l'avoir dans l'espace du noyau afin de l'utiliser pour autre chose. Je prévois de contrôler les LED de ce pilote aussi. – valioiv

+0

Ce que vous pouvez également faire à partir de l'espace utilisateur –

Répondre

1

Je pense que je viens de trouver ce dont j'ai besoin. Il n'y a pas de meilleurs exemples d'interface ALSA que « factice » et modèles « aLoop » sous le répertoire audio/pilotes dans l'arborescence du noyau:

https://alsa-project.org/main/index.php/Matrix:Module-dummy

https://www.alsa-project.org/main/index.php/Matrix:Module-aloop

je devrai mettre en œuvre la partie réseau seulement.

EDIT: Ajout encore un autre projet pour un pilote ALSA virtuel très simple mais essentielle:

https://alsa-project.org/main/index.php/Minivosc

0
  • installer alsa-basealsa-util
  • modprobe snd-dummy
  • utilisation alsamixer ou utiliser mocp (besoin d'installer moc) pour conifg ajouter succès dummy-audio