Thinkpad X1上没有HDMI声音输出

我的声音通过HDMI输出到我的电视有问题。

当我进入声音设置时,HDMI设备不会出现。

~$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: PCH [HDA Intel PCH], device 0: CONEXANT Analog [CONEXANT 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 

我不知道video信息是否有用,但无论如何:

 ~$ sudo lshw -C video *-display description: VGA compatible controller product: 2nd Generation Core Processor Family Integrated Graphics Controller vendor: Intel Corporation physical id: 2 bus info: pci@0000:00:02.0 version: 09 width: 64 bits clock: 33MHz capabilities: msi pm vga_controller bus_master cap_list rom configuration: driver=i915 latency=0 resources: irq:46 memory:d0000000-d03fffff memory:c0000000-cfffffff ioport:5000(size=64) 

对我有什么建议吗?

根据我的看法,您可能需要更改默认的pulseaudio配置。 备份/etc/pulse/default.pa文件并进行编辑。 寻找它所说的部分

 ### Automatically load driver modules edepending on the hardware available .ifexists module-udev-detect.so load-module module-udev-detect.so .else ### Use the static hardware detection module (for systems that lack udev/nal support) load-module module-detect .endif 

并将其更改为(尝试使用hw:0,3到hw:0,7或hw:0,8如果需要 – 这是基于你的aplay -l输出):

 ### Automatically load driver modules edepending on the hardware available #.ifexists module-udev-detect.so #load-module module-udev-detect.so #.else ### Use the static hardware detection module (for systems that lack udev/nal support) #load-module module-detect #.endif load-module module-alsa-sink device=hw:0,3 sink_name=hdmi 

然后重启pulseaudio服务器。 如果它基于每个用户运行,请键入pulseaudio --kill ,然后键入pulseaudio --start 。 如果它作为系统服务类型运行sudo service pulseaudio restart 。 要检查它,请运行ps -ef | grep pulse ps -ef | grep pulse并查看用户(左列)启动了pulseaudio应用程序:如果它是root用户,那么它是一个系统服务,如果它是你的用户,则使用kill和start方法。 在试验配置文件时,您可以使用pulseaudio -vvv运行它以查看调试信息。

请注意,此配置仅用于查看是否可以使hdmi输出正常工作。 在找到hw:0,#即可使用之后,例如,如果你的hdmi输出与load-module module-alsa-sink device=hw:0,7 sink_name=hdmi ,请尝试取消注释module-udev-的加载检测/模块检测模块,以便pulseaudio可以检测到它现在检测到的任何内容,你应该得到这样的结果:

 ### Automatically load driver modules edepending on the hardware available #.ifexists module-udev-detect.so load-module module-udev-detect.so .else ### Use the static hardware detection module (for systems that lack udev/nal support) load-module module-detect #.endif load-module module-alsa-sink device=hw:0,7 sink_name=hdmi 

我建议您使用pavucontrol来选择/查看pulseaudio的输出设备。

在X1(2017)上,我可以使用命令在HDMI和模拟音频输出之间切换

 pactl set-card-profile 0 output:hdmi-stereo+input:analog-stereo 

我可以换回来

 pactl set-card-profile 0 output:analog-stereo+input:analog-stereo 

我在arch wiki中找到了这些命令https://wiki.archlinux.org/index.php/PulseAudio/Examples#Automatically_switch_audio_to_HDMI