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

14 sound pulseaudio alsa hda-intel 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
Run Code Online (Sandbox Code Playgroud)

或者

pulseaudio -k
Run Code Online (Sandbox Code Playgroud)

我还尝试确保在 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
Run Code Online (Sandbox Code Playgroud)

/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
Run Code Online (Sandbox Code Playgroud)

bai*_*ain 9

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

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


cur*_*key 5

我的笔记本电脑(Samsung Series 7 Chronos)在 Ubuntu 14.04 LTS(Windows 双启动)上遇到了类似的问题。自从引入 Windows 8(以及升级到 Windows 10 之后),扬声器会一直保持静音(即使音量设置会提示相反)。

经过一些在线研究,我发现了声音故障排除程序。该过程的步骤 1A 解决了该问题:

killall pulseaudio; rm -r ~/.config/pulse/* ; rm -r ~/.pulse*
Run Code Online (Sandbox Code Playgroud)

(即它结束/杀死所有运行pulseaudio 的进程,并通过删除在用户主文件夹中创建的文件和文件夹强制PulseAudio重置其用户配置)

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

pulseaudio -k 
Run Code Online (Sandbox Code Playgroud)

(即它杀死了pulseaudio守护进程)

有关上述命令的其他信息,您可能需要查看以下链接:Ubuntu 手册 - killallUbuntu 手册 -pulseaudioUbuntu Wiki - PulseAudio

如果这些简单的命令没有解决您的问题,我建议您执行声音故障排除程序提供的替代步骤。

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

原因是什么?PulseaAudio配置似乎已损坏/未同步,并没有反映音响系统的当前状态。但是,我不知道导致不一致的确切事件。