O Linux não tem um "problema histórico na configuração de dispositivos de áudio". O problema, na verdade, são os fabricantes de dispositivos, principalmente laptops, que acabam de enviar o laptop com drivers pré-instalados do Windows que podem ser configurados para lidar com o hardware do laptop, porque o fabricante sabe exatamente como o hardware é configurado. Por outro lado, o fabricante não quer compartilhar os detalhes, não os documenta e os mantém em segredo; afinal, eles forneceram o driver do Windows. É por isso que muitas vezes todos os recursos não-padrão de laptops têm que ser descobertos através de engenharia reversa dolorosa e demorada para poder usá-los no Linux.
Com relação ao áudio, basicamente todos os dispositivos modernos usam a arquitetura Intel HDA, que é autodescritiva e fornece uma representação gráfica do codec (o chip de áudio analógico). Em princípio, supõe-se que o BIOS forneça a "configuração de pinos", ou seja, qual pino do chip do codec está conectado a microfones e alto-falantes internos, aos conectores de entrada de linha, saída de linha e fone de ouvido ou fone de ouvido.
No entanto, especialmente nos últimos anos, os fabricantes não acharam necessário configurar corretamente o BIOS (afinal, eles já forneciam o driver do Windows). Então o ciclo é: Novo modelo de laptop sai, alguém com o hardware real e compreensão técnica suficiente descobre como o BIOS está mentindo e como a configuração deve realmente parecer, os desenvolvedores do kernel adicionam uma peculiaridade (tratamento especial desse hardware) em os drivers para lidar com isso, com o driver mais recente, as outras pessoas que usam o mesmo hardware não percebem e estão felizes. Até o próximo modelo sair e o ciclo começar de novo. Enquanto isso, muitos usuários infelizes, onde não funcionam, deixam seus rastros por toda a Internet, perguntando em fóruns por toda parte, muitas vezes sem obter a resposta certa.
Então, sim, os drivers para o microfone externo são desenvolvidos e estão disponíveis (na verdade, eles são os mesmos drivers que o restante do codec). Você pode ver todas as peculiaridades (comportamento não padrão) que se acumularam inspecionando os arquivos de origem do kernel em /sound/pci/hda/
e grep para "quirk".
O que significa que se você tiver um laptop em que o microfone de fone de ouvido externo não esteja funcionando, alguém (talvez você?) precisará mergulhar nos detalhes técnicos, fazê-lo funcionar e reportá-lo aos desenvolvedores de kernel da ALSA.
Você pode ver o que os chips codec informam sobre sua estrutura interna com
cat /proc/asound/card*/codec\#*
Isto dá o gráfico interno, você pode segui-lo manualmente ou tentar programas como codecgraph
para visualizá-lo (nem sempre dá bons resultados). O "complexo de pinos" representa os pinos. Olhe para o que você tem, tente adivinhar qual pode representar o microfone externo, mesmo que esteja incorretamente rotulado. Use hdajackretask
para rotular corretamente o pino se você o identificou (ou adivinhe até que você o faça). Existem maneiras de tornar esse padrão de nova rotulação na inicialização até que o driver seja atualizado.
Quanto à combinação de microfone interno e fones de ouvido: o ALSA tem um elemento de mixer chamado "modo Auto-Mute". Isso fará com que o ALSA silencie o microfone / alto-falante interno e ative o microfone / fone de ouvido externo (ou vice-versa) quando o fone de ouvido estiver conectado ou desconectado. Desabilite isso em alsamixer
ou amixer
, mude e ative o microfone / alto-falante / fone de ouvido interno e externo conforme desejar.
Você também pode configurar isso no Pulseaudio: Inicie o pavucontrol
, selecione as portas corretas na guia de entrada e saída.
Se as "portas" internas e externas não estiverem disponíveis, ou se você quiser torná-lo o padrão, isso também é possível, embora seja um pouco trabalhoso: Veja os arquivos em /usr/share/pulseaudio/alsa-mixer/
, leia o comentários que explicam como eles funcionam. Você precisa de uma nova "configuração" para sua placa de som que combine dois "caminhos", um para o microfone interno e outro para os fones de ouvido externos, usando os elementos corretos do mixer ALSA. Isso provavelmente levará algum tempo para que funcione corretamente, o Pulseaudio não é muito intuitivo nessa resepção.
Não, não há maneira fácil de fazer o que você quer; você terá que sujar as mãos.