alsamixer 未检测到主声卡

alsamixer 未检测到主声卡

我在电脑上安装了 Ubuntu 20.04。我的屏幕有内置扬声器。声音仅通过屏幕的扬声器发出,该扬声器通过 HDMI 连接。它们的功率不够大,我想将扬声器连接到主输出。在声音设置中,我没有其他输出选项,即使在 alsamixer 上,Ubuntu 也无法识别我的本机声卡。

这是输出 lspci -v | grep -A7 -i "audio"

00:1f.3 Multimedia audio controller: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)
    DeviceName: Onboard - Sound
    Subsystem: Intel Corporation Cannon Point-LP High Definition Audio Controller
    Flags: bus master, fast devsel, latency 32, IRQ 139
    Memory at a1338000 (64-bit, non-prefetchable) [size=16K]
    Memory at a1000000 (64-bit, non-prefetchable) [size=1M]
    Capabilities: <access denied>
    Kernel driver in use: snd_hda_intel
    Kernel modules: snd_hda_intel, snd_sof_pci

aplay -l

**** List of PLAYBACK Hardware Devices ****
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

在我的结尾/etc/modprobe.d/alsa-base.conf

    # 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

如果我尝试选择另一个声卡,我的 alsamixer 将显示以下内容: 在此处输入图片描述

我知道我的问题是重复的,但我在网上尝试了很多建议,但都没有用。

答案1

第二张卡也应该列出/加载。对于不想要HDMI 设备我使用了模块PCI_Stub 接口在加载 snd 模块之前声明音频设备。update-initramfs -u如果我没记错的话,添加此行后你必须执行。

要在您的不想要声卡,您必须使用 获取 PCI-Vendor-Info lspci -nn。在我的例子中,这是以下内容

lspci -nn |grep -i audio
01:00.1 Audio device [0403]: NVIDIA Corporation TU116 High Definition Audio Controller [10de:1aeb] (rev a1)
06:00.0 Audio device [0403]: Creative Labs Sound Core3D [Sound Blaster Recon3D / Z-Series] [1102:0012] (rev 01)

因为我想从我的 GPU 中删除“音频卡”,所以需要的 ID 是“10de:1aeb”。然后将其放入pci_stub ids=10de:1aeb文件中/etc/initramfs-tools/modules

在自动模块加载之前,该文件中列出的模块将被加载,此时设备通常会获得正确的模块/驱动程序。ids=10de:1aeb 或您的情况下需要其他字符串,以便选择正确的 PCI 卡(我认为没有它甚至无法工作),然后通过 pci_stub 模块阻止“自动加载”正确的“snd-*”模块。因此不会创建 /dev/snd/hwXYZ 设备,alsa 不会将其识别为声卡。

lspci -s 01:00.01 -v
01:00.1 Audio device: NVIDIA Corporation TU116 High Definition Audio Controller (rev a1)
    Subsystem: Gigabyte Technology Co., Ltd TU116 High Definition Audio Controller
    Flags: bus master, fast devsel, latency 0, IRQ 10, IOMMU group 1
    Memory at df080000 (32-bit, non-prefetchable) [size=16K]
    Capabilities: [60] Power Management version 3
    Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [78] Express Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Kernel driver in use: pci-stub
    Kernel modules: snd_hda_intel

在这里你可以看到‘正在使用的内核驱动程序’

由于阻塞NVIDIA-CARD 我只识别了一张卡

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Creative [HDA Creative], device 0: ALC898 Analog [ALC898 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

这虽然不是你的直接问题,但也许有帮助。:-)

就我而言,声音可以工作,但是切换 alsa 的硬件 ID 和类似的东西...*******..我的显示器甚至没有扬声器..

相关内容