启动 Windows 8.1 后,Ubuntu 14.04 中的笔记本电脑扬声器没有声音

启动 Windows 8.1 后,Ubuntu 14.04 中的笔记本电脑扬声器没有声音

我有一台戴尔 Inspiron 15 7537。

我已在其上安装了 14.04,最初声音没有任何问题。但是,就像我的以太网卡一样,期望在 Linux 中不出现驱动程序/软件问题似乎是不现实的。

我为笔记本电脑购买了一块 SSD,并在其上安装了 Ubuntu 14.04。然后,我使用 gparted 从笔记本电脑附带的磁盘复制 Windows 分区。

一切仍然运行良好,直到我启动 Windows 8.1。当我在 Windows 中时,声音工作正常,但重新启动笔记本电脑并返回 Ubuntu 后,声音停止通过笔记本电脑内置扬声器工作。

不过我注意到,在 Ubuntu 中我仍然可以使用耳机接收声音。

从现在开始,我可以启动 Windows 8.1 以通过内置扬声器接收声音,但除非使用耳机,否则我无法再在 Ubuntu 14.04 中再次使声音正常工作。

我决定做个实验,所以我彻底清除了磁盘,并重新安装了 Ubuntu 14.04。声音又回来了!然后我再次继续复制我的 Windows 分区。同样,在启动 Windows 8.1 并返回 Ubuntu 后,我的内置扬声器不再发出声音。

我尝试过最常见的解决方案,例如:

sudo apt-get remove --purge alsa-base pulseaudio
sudo apt-get install alsa-base pulseaudio unity-control-center
sudo alsa force-reload

或者

pulseaudio -k

我还尝试确保 alsamixer 中没有静音。我还尝试安装脉冲音频音量控制工具。如果我正在播放一首歌曲,我可以看到内置扬声器的音量在移动,就像它应该在播放一样。

脉冲音频音量控制工具也显示我的 HDMI 卡是一个声音设备,但它将其识别为关闭。

值得注意的是,在 alsamixer 中,应用程序似乎将我的 PCH/输出卡识别为辅助卡,将 HDMI 识别为第一卡。但是,情况一直如此,所以我不确定这是不是问题所在。

我不太了解这一切是如何设计的,但据我所知,我很难理解启动另一个操作系统如何能阻止扬声器在另一个操作系统中工作。

我该怎么做才能恢复系统声音,并确定为什么启动 Windows 会导致此行为?我非常想使用双启动系统。

lspci -v 输出:

00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09)
    Subsystem: Dell Device 05f9
    Flags: bus master, fast devsel, latency 0
    Capabilities: <access denied>

00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09) (prog-if 00 [VGA controller])
    Subsystem: Dell Device 05fa
    Flags: bus master, fast devsel, latency 0, IRQ 60
    Memory at e3000000 (64-bit, non-prefetchable) [size=4M]
    Memory at c0000000 (64-bit, prefetchable) [size=256M]
    I/O ports at 5000 [size=64]
    Expansion ROM at <unassigned> [disabled]
    Capabilities: <access denied>
    Kernel driver in use: i915

00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 09)
    Subsystem: Dell Device 05f9
    Flags: bus master, fast devsel, latency 0, IRQ 63
    Memory at e3610000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: snd_hda_intel

00:14.0 USB controller: Intel Corporation Lynx Point-LP USB xHCI HC (rev 04) (prog-if 30 [XHCI])
    Subsystem: Dell Device 05f9
    Flags: bus master, medium devsel, latency 0, IRQ 56
    Memory at e3600000 (64-bit, non-prefetchable) [size=64K]
    Capabilities: <access denied>
    Kernel driver in use: xhci_hcd

00:16.0 Communication controller: Intel Corporation Lynx Point-LP HECI #0 (rev 04)
    Subsystem: Dell Device 05f9
    Flags: bus master, fast devsel, latency 0, IRQ 61
    Memory at e3619000 (64-bit, non-prefetchable) [size=32]
    Capabilities: <access denied>
    Kernel driver in use: mei_me

00:1b.0 Audio device: Intel Corporation Lynx Point-LP HD Audio Controller (rev 04)
    Subsystem: Dell Device 05f9
    Flags: bus master, fast devsel, latency 0, IRQ 62
    Memory at e3614000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: snd_hda_intel

00:1c.0 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 1 (rev e4) (prog-if 00 [Normal decode])
    Flags: bus master, fast devsel, latency 0
    Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:1c.2 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 3 (rev e4) (prog-if 00 [Normal decode])
    Flags: bus master, fast devsel, latency 0
    Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
    Memory behind bridge: e3500000-e35fffff
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:1c.3 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 4 (rev e4) (prog-if 00 [Normal decode])
    Flags: bus master, fast devsel, latency 0
    Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
    I/O behind bridge: 00004000-00004fff
    Memory behind bridge: e3400000-e34fffff
    Prefetchable memory behind bridge: 00000000bfb00000-00000000bfbfffff
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:1c.4 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 5 (rev e4) (prog-if 00 [Normal decode])
    Flags: bus master, fast devsel, latency 0
    Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
    I/O behind bridge: 00003000-00003fff
    Memory behind bridge: e2000000-e2ffffff
    Prefetchable memory behind bridge: 00000000d0000000-00000000e1ffffff
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:1d.0 USB controller: Intel Corporation Lynx Point-LP USB EHCI #1 (rev 04) (prog-if 20 [EHCI])
    Subsystem: Dell Device 05f9
    Flags: bus master, medium devsel, latency 0, IRQ 23
    Memory at e361d000 (32-bit, non-prefetchable) [size=1K]
    Capabilities: <access denied>
    Kernel driver in use: ehci-pci

00:1f.0 ISA bridge: Intel Corporation Lynx Point-LP LPC Controller (rev 04)
    Subsystem: Dell Device 05f9
    Flags: bus master, medium devsel, latency 0
    Capabilities: <access denied>
    Kernel driver in use: lpc_ich

00:1f.2 SATA controller: Intel Corporation Lynx Point-LP SATA Controller 1 [AHCI mode] (rev 04) (prog-if 01 [AHCI 1.0])
    Subsystem: Dell Device 05f9
    Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 59
    I/O ports at 5088 [size=8]
    I/O ports at 5094 [size=4]
    I/O ports at 5080 [size=8]
    I/O ports at 5090 [size=4]
    I/O ports at 5060 [size=32]
    Memory at e361c000 (32-bit, non-prefetchable) [size=2K]
    Capabilities: <access denied>
    Kernel driver in use: ahci

00:1f.3 SMBus: Intel Corporation Lynx Point-LP SMBus Controller (rev 04)
    Subsystem: Dell Device 05f9
    Flags: medium devsel, IRQ 255
    Memory at e3618000 (64-bit, non-prefetchable) [size=256]
    I/O ports at efa0 [size=32]

02:00.0 Network controller: Intel Corporation Wireless 7260 (rev 73)
    Subsystem: Intel Corporation Dual Band Wireless-N 7260
    Flags: bus master, fast devsel, latency 0, IRQ 64
    Memory at e3500000 (64-bit, non-prefetchable) [size=8K]
    Capabilities: <access denied>
    Kernel driver in use: iwlwifi

03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device 5287 (rev 01)
    Subsystem: Dell Device 05f9
    Flags: bus master, fast devsel, latency 0, IRQ 57
    Memory at e3405000 (32-bit, non-prefetchable) [size=4K]
    Expansion ROM at bfb00000 [disabled] [size=64K]
    Capabilities: <access denied>
    Kernel driver in use: rtsx_pci

03:00.1 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 12)
    Subsystem: Dell Device 05f9
    Flags: bus master, fast devsel, latency 0, IRQ 58
    I/O ports at 4000 [size=256]
    Memory at e3404000 (64-bit, non-prefetchable) [size=4K]
    Memory at e3400000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: r8168

04:00.0 3D controller: NVIDIA Corporation GK107M [GeForce GT 750M] (rev ff) (prog-if ff)
    !!! Unknown header type 7f

/etc/modprobe.d/alsa-base.conf 内容:

# autoloader aliases
install sound-slot-0 /sbin/modprobe snd-card-0
install sound-slot-1 /sbin/modprobe snd-card-1
install sound-slot-2 /sbin/modprobe snd-card-2
install sound-slot-3 /sbin/modprobe snd-card-3
install sound-slot-4 /sbin/modprobe snd-card-4
install sound-slot-5 /sbin/modprobe snd-card-5
install sound-slot-6 /sbin/modprobe snd-card-6
install sound-slot-7 /sbin/modprobe snd-card-7

# Cause optional modules to be loaded above generic modules
install snd /sbin/modprobe --ignore-install snd $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-ioctl32 ; /sbin/modprobe --quiet --use-blacklist snd-seq ; }
#
# Workaround at bug #499695 (reverted in Ubuntu see LP #319505)
install snd-pcm /sbin/modprobe --ignore-install snd-pcm $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-pcm-oss ; : ; }
install snd-mixer /sbin/modprobe --ignore-install snd-mixer $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-mixer-oss ; : ; }
install snd-seq /sbin/modprobe --ignore-install snd-seq $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; /sbin/modprobe --quiet --use-blacklist snd-seq-oss ; : ; }
#
install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; : ; }
# Cause optional modules to be loaded above sound card driver modules
install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-emu10k1-synth ; }
install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq ; }

# Load saa7134-alsa instead of saa7134 (which gets dragged in by it anyway)
install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist saa7134-alsa ; : ; }
# Prevent abnormal drivers from grabbing index 0
options bt87x index=-2
options cx88_alsa index=-2
options saa7134-alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
options snd-usb-audio index=-2
options snd-usb-caiaq index=-2
options snd-usb-ua101 index=-2
options snd-usb-us122l index=-2
options snd-usb-usx2y index=-2
# Ubuntu #62691, enable MPU for snd-cmipci
options snd-cmipci mpu_port=0x330 fm_port=0x388
# Keep snd-pcsp from being loaded as first soundcard
options snd-pcsp index=-2
# Keep snd-usb-audio from beeing loaded as first soundcard
options snd-usb-audio index=-2

答案1

Windows 8 包含一项新功能,称为“混合关机”或“快速启动”。此过程在文章中进行了描述“Windows 8 混合关机/快速启动功能的工作原理”。基本上,Windows 在关机时会终止所有用户进程,然后将内核休眠到磁盘。这样做是为了加快关机和启动过程。终止所有用户进程比将它们休眠到磁盘要快,而恢复休眠的内核比重新启动内核要快。

建议 Linux 用户关闭“混合关机/快速启动”,否则他们将无法挂载 NTFS 文件系统(因为 NTFS 文件系统的当前状态不存储在 NTFS 分区上,而是保存在休眠的内核内存中)。从这个问题来看,它似乎还会干扰设备初始化 - 可能是通过将设备置于睡眠状态,在执行正常启动过程时不会唤醒设备。

答案2

我的笔记本电脑(三星 7 系列 Chronos)在 Ubuntu 14.04 LTS(与 Windows 双启动)上也遇到了类似的问题。自从 Windows 8 推出以来(以及升级到 Windows 10 之后),扬声器一直处于打开状态沉默的(即使音量设置表明情况并非如此)。

在网上搜索后我发现声音故障排除程序。该程序的步骤 1A 修复了该问题:

killall pulseaudio; rm -r ~/.config/pulse/* ; rm -r ~/.pulse*

(即它结束/杀死所有正在运行的进程脉冲音频,它迫使脉冲音频通过删除在用户主文件夹中创建的文件和文件夹来重置其用户配置)

等待至少 10 秒,然后运行以下命令:

pulseaudio -k 

(即杀死脉冲音频守护进程

有关上述命令的更多信息,您可能需要查看以下链接:Ubuntu 手册 - killallUbuntu 手册 - pulseaudioUbuntu 维基百科-PulseAudio

如果这些简单的命令不能解决您的问题,我建议您按照声音故障排除程序提供的替代步骤进行操作。

最后要说的是,有一个对我有用的简单解决方案:在 Ubuntu 中,插入和拔出耳机将重新启用扬声器的音频。

原因是什么?PulseaAudio配置已损坏/不同步,无法反映音响系统的当前状态。不过,我不知道导致不一致的具体事件。

答案3

这是一个相当直接的问题。我认为 Linux 将您的耳机插孔置于 Windows 无法识别的状态。

我发现对 Linux 进行冷关机(按住电源按钮 10 秒钟),然后启动 Windows 通常可以解决此问题。

答案4

我最近也遇到了同样的问题。我同时启动了 Windows 7 和 Ubuntu 14.04。这个问题似乎是在 Windows 更新安装了新的 Realtek HD Audio 驱动程序后出现的。

从 Windows 软重启到 Linux 会导致音频完全由爆裂声和噼啪声组成。完全无法使用。在此状态下,机箱正面的耳机插孔仍可正常工作。只有后置音频受到影响。

如果我做关机然后冷启动进入 Linux那么音频在 Linux 中就可以正常工作。

相关内容