我有一台新的 Dell XPS 17 9730,并全新安装了 Ubuntu 23.04。
$ sudo lshw
xps-17-9730
description: Notebook
product: XPS 17 9730 (0BDA)
vendor: Dell Inc.
$ sudo lshw -C sound
*-usb:1
description: Video
product: Integrated_Webcam_HD: Integrate
vendor: CKFME19T05344001DB70
physical id: 6
bus info: usb@3:6
logical name: input11
logical name: /dev/input/event7
logical name: input12
logical name: /dev/input/event8
version: 24.41
serial: SN0001
capabilities: usb-2.01 usb
configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s
*-multimedia
description: Multimedia audio controller
product: Intel Corporation
vendor: Intel Corporation
physical id: 1f.3
bus info: pci@0000:00:1f.3
logical name: card0
logical name: /dev/snd/controlC0
logical name: /dev/snd/hwC0D2
logical name: /dev/snd/pcmC0D1p
logical name: /dev/snd/pcmC0D2p
logical name: /dev/snd/pcmC0D3p
version: 01
width: 64 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list
configuration: driver=sof-audio-pci-intel-tgl latency=64
resources: iomemory:620-61f iomemory:620-61f irq:224 memory:628f2e0000-628f2e3fff memory:628f000000-628f0fffff
请注意下面正在使用的内核驱动程序(sof-audio-pci-intel-tgl
):
$ lspci -v | grep -A7 -i "audio"
0000:00:1f.3 Multimedia audio controller: Intel Corporation Device 51ca (rev 01)
Subsystem: Dell Device 0bda
Flags: bus master, fast devsel, latency 64, IRQ 224, IOMMU group 19
Memory at 628f2e0000 (64-bit, non-prefetchable) [size=16K]
Memory at 628f000000 (64-bit, non-prefetchable) [size=1M]
Capabilities: <access denied>
Kernel driver in use: sof-audio-pci-intel-tgl
Kernel modules: snd_hda_intel, snd_sof_pci_intel_tgl
0000:00:1f.4 SMBus: Intel Corporation Alder Lake PCH-P SMBus Host Controller (rev 01)
Subsystem: Dell Alder Lake PCH-P SMBus Host Controller
Flags: medium devsel, IRQ 16, IOMMU group 19
Memory at 628f2ec000 (64-bit, non-prefetchable) [size=256]
I/O ports at efa0 [size=32]
$ modprobe --show-depends snd_hda_intel
insmod /lib/modules/6.2.0-27-generic/kernel/sound/soundcore.ko
install /sbin/modprobe --ignore-install snd $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-ioctl32 ; /sbin/modprobe --quiet --use-blacklist snd-seq ; }
insmod /lib/modules/6.2.0-27-generic/kernel/sound/core/snd-timer.ko
install /sbin/modprobe --ignore-install snd-pcm $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-pcm-oss ; : ; }
insmod /lib/modules/6.2.0-27-generic/kernel/sound/core/snd-hwdep.ko
insmod /lib/modules/6.2.0-27-generic/kernel/sound/hda/snd-hda-core.ko
insmod /lib/modules/6.2.0-27-generic/kernel/sound/pci/hda/snd-hda-codec.ko
insmod /lib/modules/6.2.0-27-generic/kernel/sound/hda/snd-intel-sdw-acpi.ko
insmod /lib/modules/6.2.0-27-generic/kernel/sound/hda/snd-intel-dspcfg.ko
insmod /lib/modules/6.2.0-27-generic/kernel/sound/pci/hda/snd-hda-intel.ko model=generic
$ sudo more /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-blackli
st 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 --us
e-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
# Added by John Manko 2023.08.13
# Fix now audio on Dell XPS
# https://askubuntu.com/questions/1384538/no-sound-dell-xps-17-9700-ubuntu-21-10
#options snd-hda-intel model=headset-multi
#options snd-hda-intel model=dell-headset-multi
options snd-hda-intel model=generic
$ dpkg --get-selections | grep pipewire
gstreamer1.0-pipewire:amd64 install
libpipewire-0.3-0:amd64 install
libpipewire-0.3-common install
libpipewire-0.3-modules:amd64 install
pipewire:amd64 install
pipewire-alsa:amd64 install
pipewire-audio install
pipewire-bin install
pipewire-libcamera:amd64 install
pipewire-pulse install
$ dpkg --get-selections | grep alsa
alsa-base install
alsa-topology-conf install
alsa-ucm-conf install
alsa-utils install
gstreamer1.0-alsa:amd64 install
pipewire-alsa:amd64 install
$ sudo apt purge timidity-daemon
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package 'timidity-daemon' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ find /lib/modules/$(uname -r)/kernel/sound -name snd-hda-intel.ko
/lib/modules/6.2.0-27-generic/kernel/sound/pci/hda/snd-hda-intel.ko
$ dpkg --get-selections | grep linux
binutils-x86-64-linux-gnu install
console-setup-linux install
libselinux1:amd64 install
linux-base install
linux-firmware install
linux-generic-hwe-22.04 install
linux-headers-6.2.0-20 install
linux-headers-6.2.0-20-generic install
linux-headers-6.2.0-27 install
linux-headers-6.2.0-27-generic install
linux-headers-generic-hwe-22.04 install
linux-image-6.2.0-20-generic install
linux-image-6.2.0-27-generic install
linux-image-generic-hwe-22.04 install
linux-libc-dev:amd64 install
linux-modules-6.2.0-20-generic install
linux-modules-6.2.0-27-generic install
linux-modules-extra-6.2.0-20-generic install
linux-modules-extra-6.2.0-27-generic install
linux-modules-nvidia-535-6.2.0-27-generic install
linux-modules-nvidia-535-generic-hwe-22.04 install
linux-objects-nvidia-535-6.2.0-27-generic install
linux-signatures-nvidia-6.2.0-27-generic install
linux-sound-base install
pptp-linux install
util-linux install
util-linux-extra install
$ dpkg --get-selections | grep plumber
libwireplumber-0.4-0:amd64 install
wireplumber install
$ sudo aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sofhdadsp [sof-hda-dsp], device 1: HDMI1 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 2: HDMI2 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 3: HDMI3 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
$ cat /proc/asound/cards
0 [sofhdadsp ]: sof-hda-dsp - sof-hda-dsp
DellInc.-XPS179730--0358MX
$ sudo dmesg | grep -e 'audio\|snd\|intel'
[ 64.067987] intel_pstate: Intel P-state driver initializing
[ 64.069994] intel_pstate: HWP enabled
[ 64.074430] intel_pmc_core INT33A1:00: initialized
[ 64.494478] intel-lpss 0000:00:15.0: enabling device (0000 -> 0002)
[ 64.610425] intel-lpss 0000:00:15.1: enabling device (0000 -> 0002)
[ 66.339416] intel-hid INTC1078:00: platform supports 5 button array
[ 66.380235] intel_rapl_msr: PL4 support detected.
[ 66.380419] intel_rapl_common: Found RAPL domain package
[ 66.380439] intel_rapl_common: Found RAPL domain core
[ 66.380440] intel_rapl_common: Found RAPL domain uncore
[ 66.380441] intel_rapl_common: Found RAPL domain psys
[ 66.417916] intel_rapl_common: Found RAPL domain package
[ 66.421314] Bluetooth: hci0: Found device firmware: intel/ibt-0040-0041.sfi
[ 67.024444] snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[ 67.028333] snd_hda_intel 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
[ 67.088181] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[ 67.088239] sof-audio-pci-intel-tgl 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
[ 67.088252] sof-audio-pci-intel-tgl 0000:00:1f.3: enabling device (0000 -> 0002)
[ 67.088469] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[ 67.155152] intel_tcc_cooling: TCC Offset locked
[ 68.047189] Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-0040-0041.ddc
[ 68.335533] sof-audio-pci-intel-tgl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[ 68.394397] sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode
[ 68.409091] sof-audio-pci-intel-tgl 0000:00:1f.3: No SoundWire machine driver found
[ 68.409095] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 4
[ 68.409097] sof-audio-pci-intel-tgl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[ 68.409100] sof-audio-pci-intel-tgl 0000:00:1f.3: DMICs detected in NHLT tables: 0
[ 68.410587] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[ 68.410591] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
[ 68.410597] sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
[ 68.523247] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[ 68.523254] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
[ 68.529789] sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0
[ 217.037508] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[ 217.037528] sof-audio-pci-intel-tgl 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
[ 217.037738] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[ 217.037806] sof-audio-pci-intel-tgl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[ 217.044733] sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode
[ 217.056326] sof-audio-pci-intel-tgl 0000:00:1f.3: No SoundWire machine driver found
[ 217.056328] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 4
[ 217.056329] sof-audio-pci-intel-tgl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[ 217.056331] sof-audio-pci-intel-tgl 0000:00:1f.3: DMICs detected in NHLT tables: 0
[ 217.056432] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[ 217.056433] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
[ 217.056437] sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
[ 217.171450] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[ 217.171465] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
[ 217.172058] sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0
一切似乎都正常。我就是无法识别设备!真令人沮丧。
更新:
遵循建议这里和这里,我安装了固件thesofproject/sof-bin。
sudo mv /lib/firmware/intel/sof* some_backup_location/
sudo mv /usr/local/bin/sof-* some_backup_location/ # optional
sudo ./install.sh v2.2.x/v2.2
更新内容/etc/modprobe.d/alsa-base.conf
:
options snd-intel-dspcfg dsp_driver=1
还是没有变化。