Onde os drivers de som são transmitidos? [fechadas]

3

Há pouco tempo, procurei um bom driver para minha placa de som (com suporte a som surround) e não encontrei nenhum. Então parece que não há nenhum.

Eu pensei que poderia tentar (mesmo pensando que nada útil seria produzido) escrevendo meu próprio driver para isso.

Agora estou um pouco preso, porque nem sei onde os drivers de som são executados. Eu poderia imaginar que eles correm no espaço do kernel e eu tenho que escrevê-los como drivers de kernel "regulares". Mas eu também posso imaginar que eles são construídos na ALSA e eu tenho que olhar para a API da ALSA.

Onde é um bom ponto de partida para pesquisar como começar a fazer isso.

    
por Kritzefitz 12.03.2014 / 18:04

2 respostas

2

Os drivers de som estão no diretório sound da origem do kernel.

Para escrever um driver de som, consulte Drivers de dispositivos Linux e Escrevendo um driver da ALSA .

    
por 12.03.2014 / 18:37
0

Todos os fones de ouvido USB devem funcionar com recursos básicos (saída de áudio e microfone) com o driver de áudio USB padrão do Linux (snd_usb_audio). Se o seu fone de ouvido específico não for mencionado como suportado, você perderá alguns recursos extras, como cancelamento de ruído ativo, emulação de som surround, etc. Dê uma olhada em este wiki , e para surround, esta página de ajuda . Se você tiver esse driver instalado e provavelmente o fizer, e ainda não ouvir nada, lembre-se de que os fones de ouvido USB serão exibidos como uma segunda placa de som e talvez você tenha que tocar com o PulseAudio para transmitir o áudio para eles. Eu acho que o pavucontrol é um bom lugar para começar a ver se você pode evitar a configuração complexa. Se você não usa o PulseAudio, é um bom dia para começar - o ALSA não funcionará bem com configurações complexas quando você tiver muitos fluxos de áudio de entrada e saída.

Escrever seu próprio driver não é uma tarefa trivial. Além disso, você precisará se familiarizar com algumas partes da fonte do kernel, você deve levar em consideração essas duas coisas:

1) As empresas não fornecem documentação técnica. Você precisará recorrer à engenharia reversa para descobrir como ela funciona internamente.

2) Para os recursos avançados mencionados acima, você precisará ter um bom conhecimento no campo Processamento Digital de Sinais.

Mas se você gosta de experimentar e / ou se está interessado em engenharia de software, é uma experiência muito gratificante.

PS: sim, eles são drivers de dispositivo "regulares" rodando no kernel-space, mas também sim, você terá que também conectar seu driver com a API ALSA (que também está no espaço do kernel).

    
por 12.03.2014 / 19:12