O conector de fone de ouvido pára de funcionar após a suspensão / reinicialização

4

Eu tive esse problema muito chato, onde o fone de ouvido funcionaria bem após um arranque a frio. Mas depois de suspender ou reinicializar a frio (reinicie o computador sem desligá-lo completamente) o conector de fone de ouvido pararia de funcionar.

O sistema detecta quando os fones de ouvido estão sendo conectados e desconectados, mas não há mais som saindo dos fones de ouvido.

Estou experimentando isso apenas no Ubuntu 14.04 (em minha partição do Windows funciona bem) em um laptop XMG A305. Parece que esse problema está relacionado aos drivers usados com minha placa de som (placa: HDA Intel PCH, chip: VIA VT1802) ou a interação entre diferentes drivers.

Além disso, várias outras pessoas experimentaram isso em outras máquinas: Relatório de erros para o Clevo Laptop

    
por cbandera 25.02.2016 / 10:31

4 respostas

5

Depois de pesquisar por um bom tempo, descobri uma solução que funciona bem para mim e pode ajudar você também:

O código é retirado principalmente de aqui .

Obtenha o código

Existe um script python que pode reativar o fone de ouvido. Este código é retirado de ektor5 no GitHub . Você precisa baixar o script, colocá-lo em algum lugar onde seu sistema o encontre e torne-o executável. Você pode fazer tudo isso com esta linha:

sudo wget https://raw.githubusercontent.com/ektor5/init-headphone/master/init-headphone -O /usr/local/sbin/init-headphone && sudo chmod +x /usr/local/sbin/init-headphone

Instalar dependências

O script init-headphone precisa de dependências que possam ser instaladas com:

sudo apt-get install python-smbus

Adicionar sinalizador de grub

Além disso, seu kernel precisa ser iniciado com um sinalizador adicional ativado. Você pode fazer isso editando o arquivo '' / etc / default / grub ''. Altere esta linha

GRUB_CMDLINE_LINUX=""

para isso

GRUB_CMDLINE_LINUX="acpi_enforce_resources=lax"

Depois disso, execute

sudo update-grub

Carregar módulos na inicialização

Além disso, o script precisa de módulos para serem carregados. Ou seja, "i2c_dev" e "i2c_i801". Estes podem ser carregados em tempo de execução com

modprobe i2c_dev
modprobe i2c_i801

Agora você pode testar se funciona, executando o ´sudo init-headphone´.

Para carregar automaticamente os módulos na inicialização, adicione as seguintes linhas a '' / etc / modules '':

i2c_dev
i2c_i801

Criar script de inicialização

Por último, queremos que o script seja executado automaticamente quando o computador for reinicializado ou retornar da suspensão. Para fazer isso, coloque o seguinte script em ´ / etc / pm / sleep.d / ´.

sudo gedit /etc/pm/sleep.d/init-headphone

Adicione as seguintes linhas

#!/bin/sh

if [ ! -x /usr/local/sbin/init-headphone ]; then
    exit 0
fi

case $1 in
     resume|thaw)
        /usr/local/sbin/init-headphone
       ;;
esac

E não se esqueça de tornar o arquivo executável

sudo chmod +x /etc/pm/sleep.d/init-headphone

Espero que isso ajude, deixe-me saber se você tem algum problema.

cbandera

    
por 25.02.2016 / 10:31
0

Você pode tentar verificar seu painel de controle de volume para ver se ele está apenas redefinindo para alto-falantes padrão. Em caso afirmativo, você pode fazer o script para reiniciar ou configurá-lo manualmente de volta para fones de ouvido.

    
por 25.02.2016 / 10:35
0

Não tenho certeza de qual versão do Linux você está usando, mas considere testar o equivalente relevante do sudo apt-get install gstreamer seguido por executar as propriedades gstreamer via linha de comando e ver se há configurações incomuns entre o pulso audio e alsa em relação aos seus fones de ouvido, etc.

(Eu usei isso em sistemas antigos baseados no Ubuntu para obter configurações de fone de ouvido para trabalhar no Skype etc.)

    
por 25.02.2016 / 10:44
0

Somando-se a excelente resposta de @cbandera: Para sistemas que usam systemd (por exemplo, Ubuntu 15.04 ou posterior), o script de inicialização deve ser /lib/systemd/system-sleep/init-headphone e ter esta aparência:

#!/bin/sh

[ -x /usr/local/sbin/init-headphone ] || exit 0

[ "$1" = "post" ] && /usr/local/sbin/init-headphone
    
por 26.07.2018 / 21:31