Sem áudio sobre HDMI na NVIDIA GeForce GTX 1050 Ti

3

Estou executando o kernel v4.13.0-36-generic no Ubuntu 17.10 em um HP Omen 15. Eu tenho uma placa gráfica NVIDIA Optimus híbrida. Eu dual-boot Windows 10, que pode reproduzir áudio do mesmo monitor externo através do mesmo cabo HDMI que eu estou tentando usar no Ubuntu. Eu posso ver o vídeo no meu monitor externo no Ubuntu.

Eu tentei trocar meu dispositivo de saída de áudio nas configurações de som incorporadas do Ubuntu, GUI e Pulse Audio Volume Control , mas no primeiro não aparece nenhum dispositivo de áudio HDMI e, neste último, todos os dispositivos HDMI aparecem como desconectados.

Eu obtive mais sucesso usando o driver proprietário nvidia-384 instalado por meio da guia Drivers Adicionais do Software & amp; Atualizações. Com esse driver, posso ver o vídeo no meu monitor externo, reproduzir áudio pelos alto-falantes do meu laptop e inicializar de maneira confiável.

Eu tentei usar nvidia-387 e nvidia-390 de ppa: graphics-drivers / ppa com bumblebee , bumblebee-nvidia e primus instalado , mas não consigo nem inicializar ou ver vídeo no meu monitor externo de forma confiável usando esses drivers. Observei que /etc/bumblebee/xorg.conf.nouveau e /etc/bumblebee/xorg.conf.nvidia detectaram minha GeForce GTX 1050 Ti como uma placa gráfica discreta, o que acredito ser incorreta, mas não sei como substituir essas configurações para indicar que minha placa gráfica é híbrida.

Eu tenho o nouveau na lista negra, porque não consigo inicializar de maneira confiável com nouveau ativado.

Instalei NVIDIA-Linux-x86_64-390.25.run , mas após a reinicialização estava preso em um loop de inicialização, então eu corri sudo nvidia-uninstall .

Eu não tenho um kernel de baixa latência instalado.

Eu desativei o Wayland caso ele estivesse causando problemas.

Eu desativei o Secure Boot.

Eu tentei usar o kernel v4.15.4, mas só achei ainda mais difícil inicializar de forma confiável.

Eu tentei verificando novamente o barramento PCI na ponte PCI que minha GPU está conectada . Eu não sei como mudar de híbrido para o modo de gráficos dedicados como o autor dessa solução sugere, então é por isso que não funcionou para mim.

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC295 Analog [ALC295 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

$ lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 05)
00:01.0 PCI bridge: Intel Corporation Skylake PCIe Controller (x16) (rev 05)
00:02.0 VGA compatible controller: Intel Corporation Device 591b (rev 04)
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 05)
00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31)
00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)
00:17.0 SATA controller: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] (rev 31)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #1 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #5 (rev f1)
00:1c.5 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #6 (rev f1)
00:1c.6 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #7 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)
00:1f.3 Audio device: Intel Corporation Device a171 (rev 31)
00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)
01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] (rev a1)
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader (rev 01)
04:00.0 Network controller: Intel Corporation Wireless 7265 (rev 61)
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

Um grande obrigado a qualquer um que tenha chegado até este ponto. Qualquer sugestão seria muito apreciada.

    
por lighthunter 22.02.2018 / 07:06

3 respostas

1

link resolveu meu problema. Ele aproveita a mesma estratégia conectada acima por ambos Ping e eu . O mais provável setpci -s 01:00.0 0x488.l=0x2000000:0x2000000 não funcionou com minha configuração de hardware.

    
por lighthunter 09.03.2018 / 04:33
1

Muito obrigado ao Rudi Daemen . O problema de áudio na minha GTX 1060 foi resolvido por sua solução. Você pode tentar a solução dele:

  1. Criar arquivo /etc/systemd/system/fix-hdmi-audio.service

    [Unit]
    Description=nVidia HDMI Audio Fixer
    Before=systemd-logind.service display-manager.service
    After=module-init-tools.service
    
    [Service]
    Type=oneshot
    ExecStart=/usr/local/bin/fix-hdmi-audio.sh
    
    [Install]
    WantedBy=multi-user.target
    
  2. Criar arquivo /usr/local/bin/fix-hdmi-audio.sh

    #!/bin/sh
    setpci -s 01:00.0 0x488.l=0x2000000:0x2000000
    rmmod nvidia-uvm nvidia-drm nvidia-modeset nvidia
    sh -c 'echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove'
    sh -c 'echo 1 > /sys/bus/pci/devices/0000:00:01.0/rescan'
    modprobe nvidia nvidia-modeset nvidia-drm nvidia-uvm
    

    e defina como executável: chmod +x /usr/local/bin/fix-hdmi-audio.sh

  3. Ativar o serviço: systemctl enable fix-hdmi-audio.service

  4. Instale apt install pavucontrol , depois inicie o "Controle de Volume do PulseAudio". Na aba "Configuração", você pode ver apenas "Áudio Interno".

  5. Reinicie. Conecte HDMI e reproduza algumas músicas. Inicie o "Controle de Volume do PulseAudio". Na aba "Configuração", você deve ver "Internal Audio" e "HDA NVidia". Na aba "Reprodução", há um botão no lado direito do seu music player. Você pode escolher "Internal Audio" ou "HDA NVidia". Escolha "HDA NVidia".

Nota

Após a reinicialização, você pode ver

01:00.1 Audio device: NVIDIA Corporation Device 10f1 (rev a1)

nas saídas de lscpi .

    
por Ping Chu Hung 02.03.2018 / 16:03
1

Observe que isso é para uma GTX 970M, mas se aplica a 1060 e outros.

O problema para mim com a rota setpci é a redefinição de várias telas, pois lightdm é recarregado. Talvez porque eu tenha três monitores:

  • TV de 50 "conectada via HDMI embutido no cartão nVidia
  • display interno de 17 "acionado pela Intel iGPU
  • TV de 32 "conectada via Thunderbolt e acionada pela Intel iGPU

O maior problema é a complexidade de configurar os scripts systemd e bash.

A solução baseada em kernel% language, kernel encontrada neste link: link está distante superior. Eu incluí a maior parte do link abaixo com algumas modificações na minha plataforma.

Especificações do meu sistema:

i7-6700HQ + GTX 970M
Linux kernel version: 4.13.0-26-generic
Nvidia driver Version: 384.130
OS: Ubuntu 16.04.5 LTS

Eu posso confirmar que o módulo do kernel, postado por Maik Freudenberg [Comentário 27], está funcionando bem no meu sistema. Obrigado pela correção. O dispositivo de áudio HDMI agora funciona como deveria.

Eu baixei e extraí o arquivo nvhda.tar.xz . Eu criei o diretório c para extração.

Executar comandos no terminal:

cd ~/nVidia
make
sudo make install
echo nvhda | sudo tee -a /etc/initramfs-tools/modules
echo "options nvhda load_state=1" | sudo tee /etc/modprobe.d/nvhda.conf
sudo update-initramfs -u # This updated newest kernel 4.15.0-26
sudo update-initramfs -u -k 'uname -r' # Update booted 4.13.0-36
reboot

Com essa correção, não notei problemas com gerenciamento de energia ou estabilidade do sistema. O áudio HDMI funciona na inicialização do sistema, após a retomada do modo de espera, após a conexão / desconexão do cabo HDMI.

    
por WinEunuuchs2Unix 06.08.2018 / 19:28