Kernel reports "no soundcard". Presumably, this is why I don't have sound. Let me dive right in with details:
cat /proc/asound/cards --- no soundcards ---
lspci: 00:0e.0 Multimedia audio controller: Intel Corporation Celeron/Pentium Silver Processor High Definition Audio (rev 06) 00:0e.0 0401: 8086:3198 (rev 06)
DeviceName: Onboard - Sound Subsystem: Device 02f3:f000 Kernel driver in use: sof-audio-pci-intel-apl Kernel modules: snd_hda_intel, snd_soc_skl, snd_sof_pci_intel_apl
dmesg |grep -iE 'snd|sof|audio'
[ 0.201569] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio) [ 4.715400] snd_hda_intel 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if info 0x040100 [ 4.938181] snd_soc_skl 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if info 0x040100 [ 5.324959] sof-audio-pci-intel-apl 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if info 0x040100 [ 5.325268] sof-audio-pci-intel-apl 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if 0x040100 [ 5.325465] sof-audio-pci-intel-apl 0000:00:0e.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915]) [ 5.357483] sof-audio-pci-intel-apl 0000:00:0e.0: use msi interrupt mode [ 5.393933] sof-audio-pci-intel-apl 0000:00:0e.0: NHLT_DEVICE_I2S detected, ssp_mask 0x5 [ 5.393945] sof-audio-pci-intel-apl 0000:00:0e.0: hda codecs found, mask 4 [ 5.399557] sof-audio-pci-intel-apl 0000:00:0e.0: Firmware info: version 2:1:1-3964a [ 5.399567] sof-audio-pci-intel-apl 0000:00:0e.0: Firmware: ABI 3:21:0 Kernel ABI 3:23:0 [ 5.399579] sof-audio-pci-intel-apl 0000:00:0e.0: unknown sof_ext_man header type 3 size 0x30 [ 5.439596] sof-audio-pci-intel-apl 0000:00:0e.0: Firmware info: version 2:1:1-3964a [ 5.439604] sof-audio-pci-intel-apl 0000:00:0e.0: Firmware: ABI 3:21:0 Kernel ABI 3:23:0
cat /proc/version Linux version 6.0.0-rc5 (root@yippie) (gcc (Debian 12.2.0-1) 12.2.0, GNU ld (GNU Binutils for Debian) 2.38.90.20220713) #3 SMP PREEMPT_DYNAMIC Thu Sep 15 04:35:50 CDT 2022
I built this a few days ago from `make oldconfig` on the current Debian testing 5.19.15 kernel.
I attempted debugging, and I found this:
sound/soc/sof/intel/pci-apl.c: { PCI_DEVICE(0x8086, 0x3198), /* GeminiLake */ .driver_data = (unsigned long)&glk_desc},
Yay! That's my pci id! Adding printk's to both int snd_card_register(struct snd_card *card) int snd_soc_register_card(struct snd_soc_card *card)
shows that neither of these are ever called. I was unable to figure out where they should have been called from. It's as if some driver is missing ??? There's nothing in sound/soc/intel/boards/* that seems to apply to my situation???
FWIW, more about this hardware: -- It's a cheap laptop, from newegg, Ipason MaxBook P1X, 4-core Intel Celeron, 12GB RAM, great price. -- lspci 00:00.0 Host bridge: Intel Corporation Gemini Lake Host Bridge (rev 06) 00:00.1 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor Dynamic Platform and Thermal Framework Processor Participant (rev 06) 00:02.0 VGA compatible controller: Intel Corporation GeminiLake [UHD Graphics 600] (rev 06) 00:0e.0 Multimedia audio controller: Intel Corporation Celeron/Pentium Silver Processor High Definition Audio (rev 06) 00:0f.0 Communication controller: Intel Corporation Celeron/Pentium Silver Processor Trusted Execution Engine Interface (rev 06) 00:12.0 SATA controller: Intel Corporation Celeron/Pentium Silver Processor SATA Controller (rev 06) 00:13.0 PCI bridge: Intel Corporation Gemini Lake PCI Express Root Port (rev f6) ... 00:15.0 USB controller: Intel Corporation Celeron/Pentium Silver Processor USB 3.0 xHCI Controller (rev 06) 00:16.0 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor I2C 0 (rev 06) ... 00:18.0 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor Serial IO UART Host Controller (rev 06) ... 00:1c.0 SD Host controller: Intel Corporation Celeron/Pentium Silver Processor SDA Standard Compliant SD Host Controller (rev 06) 00:1e.0 SD Host controller: Intel Corporation Device 31d0 (rev 06) 00:1f.0 ISA bridge: Intel Corporation Celeron/Pentium Silver Processor LPC Controller (rev 06) 00:1f.1 SMBus: Intel Corporation Celeron/Pentium Silver Processor Gaussian Mixture Model (rev 06) 01:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network Adapter
So I guess there's "no soundcard" because the thing is wired directly into the PCI bus ?? I used to know PCI intimately, but that was a decade ago. I've forgotten all of that.
Advice on how to proceed would be appreciated. I could maybe even write a device driver if someone holds my hand (I've written or worked on drivers for ethernet, scsi before)
-- Linas