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.
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.
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.
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.
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:
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
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
Ativar o serviço: systemctl enable fix-hdmi-audio.service
Instale apt install pavucontrol
, depois inicie o "Controle de Volume do PulseAudio". Na aba "Configuração", você pode ver apenas "Áudio Interno".
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
.
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:
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.