Intel nuc6i7kyk 没有 HDMI 声音

Intel nuc6i7kyk 没有 HDMI 声音

我刚刚开始使用 Linux,最近买了一台英特尔 nuc 设备,目前正在使用 Ubuntu 16.04 LTS。

让我烦恼的问题是我无法通过 HDMI 检索声音。我一直在检查这不是什么新鲜事,有些人只需在 /etc/pulse/daemon.conf 中将默认采样率设置为 48000 即可解决这个问题,但这对我来说不起作用。

我目前正在做的事情:

  1. BIOS 更新
  2. 确保 BIOS 配置中已激活 HDMI 声音
  3. 安装最新的 ALSA 驱动程序,安装后没有错误
  4. 升级所有软件包
  5. 确保我的电视支持采样率 44100 和 48000
  6. 从英特尔网页安装最新的视频驱动程序
  7. 确认 HDMI 线缆正常工作
  8. 尝试其他 Ubuntu 版本(16.10 和 17.04)

我不得不说,在这周内声音出现了两次:第一次是在检查 alsamixer 和 pavucontrol 一切正确并执行以下命令后:

speaker-test -c 2 -r 48000 -D hw:0,3

当我修改了 pulseaudio 的 daemon.conf 并重新启动计算机时,声音不起作用。我只是用备份文件恢复了 daemon.conf,并尝试以相同的方式执行操作,但声音也不起作用。

第二次是在安装 gdebi 包和 Intel Graphics 工具(但不是驱动程序)之后。我可以检查声音是否在电视支持的所有采样率下都能正常工作。重启后声音再次停止工作。

我将感谢您提供的任何帮助或提示,以便我可以让计算机正常运行。

提前致谢。


(2017-09-25 更新)

现在一切都变得清晰起来。似乎每次电脑挂起时,声音都会恢复。但是当我重新启动时,声音就消失了。让它恢复的唯一方法是挂起电脑,唤醒后,S/PDIF 在 alsamixer 中静音,所以我必须取消静音,然后才能正常工作。

答案1

这里有一个故障排除部分:https://www.intel.com/content/www/us/en/support/articles/000005499/mini-pcs.html

建议做以下事情:

usermod -a -G audio,pulse,pulse-access,video,voice YOURUSERNAME
sudo add-apt-repository ppa:ubuntu-audio-dev/alsa-daily
sudo apt update
sudo apt install oem-audio-hda-daily-dkms
reboot

答案2

我遇到了同样的问题,我发现默认选择了错误的声音输出。在这种情况下,只需点击Super调出搜索菜单,然后键入sound调出声音配置屏幕。然后选择“输出”选项卡,在“播放声音”中选择“HDMI / DisplayPort”。

答案3

由于我将 NUC 用作媒体中心,因此无法访问 GUI。因此,我通过添加一个 cron 作业解决了这个问题,该作业每分钟“提醒” PulseAudio 通过 HDMI 发送输出。这不是一个优雅的解决方案,但这是我发现的最简单的方法,无需不断重新启动媒体中心。

首先,您必须根据 PulseAudio 确定声卡的索引。如果您只有一张声​​卡,则该索引很可能为 0,但您应该通过运行

pacmd list-cards

您应该看到以以下行开头的输出

1 card(s) available.
index: 0
name: <alsa_card.pci-0000_00_1f.3>
driver: <module-alsa-card.c>
owner module: 6

现在我们知道了索引。接下来,向下滚动以查看配置文件名称列表。配置文件决定了 PulseAudio 如何路由音频输入和输出。查看列表,我有一个名为的配置文件:

output:hdmi-stereo: Digital Stereo (HDMI) Output (priority 5400, available: unknown)

这就是我们想要的。因此,为了结合这些信息并告诉 PulseAudio 在卡 0 上切换到正确的配置文件,我们运行

pacmd set-card-profile 0 output:hdmi-stereo

现在使用 crontab 自动执行此命令。我不会在这里详细介绍 crontab 语法,但基本上它是一个灵活的后台任务调度程序,大多数 Linux 发行版都预装了它。我们打开 crontab 文件进行编辑

crontab -e

在文件底部我们添加以下行

* * * * * XDG_RUNTIME_DIR=/run/user/`id -u` pacmd set-card-profile 0 output:hdmi-stereo

五个星号告诉 crontab 每分钟运行一次命令。我们需要设置变量,XDG_RUNTIME_DIR以便pacmd知道 PulseAudio 从哪里运行。其余的只是我们上面的命令。

相关内容