系统安装没有声音有好多帖子了,但是还是没有解决问题,扬声器和耳机没有声音输出
电脑具体配置和固件版本
- 电脑型号:Asus Chromebook C200
- 处理器: Intel(R) Celeron(R) CPU N2840 @ 2.16GHz (Intel BayTrail-M N2830)
- 显卡: Intel® HD Graphics for Intel Atom® Processor Z3700 Series
- 运行内存与储存内存 :4G 和 16G
- FydeOS 版本: 15183.77.16.21 (Release Build v16.0) stable-channel amd64-fydeos
C200 对应的 Chromeos 已经停止更新了。在安装的 chromeos_12239.92.0_squawks_recovery_stable-channel 上的得到的信息
$ uname -a
Linux localhost 4.4.180-16566-g51163f4278d1 #1 SMP PREEMPT Tue Aug 27 16:48:07 PDT 2019 x86_64 Intel(R) Celeron(R) CPU N2840 @ 2.16GHz GenuineIntel GNU/Linux
$ lsmod | grep snd
snd_soc_sst_baytrail_pcm 20480 2
snd_soc_sst_ipc 16384 1 snd_soc_sst_baytrail_pcm
snd_soc_sst_dsp 32768 1 snd_soc_sst_baytrail_pcm
snd_soc_sst_byt_max98090_mach 16384 3
snd_hda_codec_hdmi 40960 1
snd_hda_intel 32768 2
snd_hda_codec 94208 2 snd_hda_codec_hdmi,snd_hda_intel
snd_hwdep 16384 1 snd_hda_codec
snd_hda_core 57344 3 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
snd_intel_sst_acpi 16384 0
snd_intel_sst_core 53248 1 snd_intel_sst_acpi
snd_soc_sst_mfld_platform 65536 1 snd_intel_sst_core
snd_soc_max98090 81920 1
snd_soc_sst_acpi 16384 0
snd_soc_sst_match 16384 2 snd_soc_sst_acpi,snd_intel_sst_acpi
$ dmesg | grep -P audio\|sound\|snd
[ 0.583210] No soundcards found.
[ 12.235022] snd_hda_intel 0000:00:1b.0: bound 0000:00:02.0 (ops 0xffffffff9d471110)
[ 12.307864] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input6
[ 12.308192] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input7
[ 12.458745] byt-max98090 byt-max98090: ASoC: CPU DAI baytrail-pcm-audio not registered
[ 12.458769] byt-max98090 byt-max98090: snd_soc_register_card failed -517
[ 12.542171] baytrail-pcm-audio baytrail-pcm-audio: FW version: 04.05.12.02
[ 12.542182] baytrail-pcm-audio baytrail-pcm-audio: Build type: 2
[ 12.542186] baytrail-pcm-audio baytrail-pcm-audio: Build date: Mar 13 2014 14:17:31
[ 12.581657] byt-max98090 byt-max98090: HiFi <-> baytrail-pcm-audio mapping ok
[ 12.582857] input: byt-max98090 Headset as /devices/platform/80860F28:00/byt-max98090/sound/card1/input8
$ 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 1: bytmax98090 [byt-max98090], device 0: Audio HiFi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
$ ls /usr/share/alsa/ucm
'Chat 150 C' PAZ00 broxton-rt298
DB410c PandaBoard byt-max98090
Dell-WD15-Dock PandaBoardES bytcr-rt5651
GoogleNyan 'Plankton Captured HDMI Audio' chtrt5645-mono-speaker-analog-mic
'HD Pro Webcam C920' SDP4430 gpd-win-pocket-rt5645
HDAudio-Gigabyte-ALC1220DualCodecs TECLAST-X80Pro-Defaultstring-CherryTrailCR skylake-rt286
HDAudio-Lenovo-DualCodecs 'WD15 Dock' tegraalc5632
'Hangouts Meet speakermic' 'WD19 Dock'
'Jabra SPEAK 810' broadwell-rt286
$ find /lib/firmware -name '*sst*'
lib/firmware/intel/fw_sst_0f28.bin
lib/firmware/intel/fw_sst_0f28.bin-48kHz_i2s_master
lib/firmware/intel/fw_sst_0f28.bin-i2s_master
lib/firmware/intel/fw_sst_0f28.bin-i2s_slave
lib/firmware/intel/fw_sst_0f28.bin-tdm_master
lib/firmware/intel/fw_sst_0f28.bin-tdm_slave
lib/firmware/intel/fw_sst_22a8.bin
在全新安装的 fydeos 上
$ uname -a
Linux localhost 5.4.217-15-0+ #1 SMP PREEMPT Sat Jan 14 10:16:03 CST 2023 x86_64 Intel(R) Celeron(R) CPU N2840 @ 2.16GHz GenuineIntel GNU/Linux
$ lsmod | grep snd
snd_soc_sst_cht_bsw_max98090_ti 24576 2
snd_soc_ts3a227e 16384 1 snd_soc_sst_cht_bsw_max98090_ti
snd_hda_codec_hdmi 49152 1
snd_hda_intel 32768 2
snd_intel_dspcfg 16384 1 snd_hda_intel
snd_hda_codec 94208 2 snd_hda_codec_hdmi,snd_hda_intel
snd_hda_core 57344 3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_hwdep 16384 1 snd_hda_codec
snd_intel_sst_acpi 16384 1
snd_intel_sst_core 53248 1 snd_intel_sst_acpi
snd_soc_sst_atom_hifi2_platform 77824 2 snd_intel_sst_core
snd_soc_max98090 90112 1
snd_soc_acpi_intel_match 40960 1 snd_intel_sst_acpi
snd_soc_acpi 16384 2 snd_soc_acpi_intel_match,snd_intel_sst_acpi
snd_soc_core 167936 4 snd_soc_sst_cht_bsw_max98090_ti,snd_soc_ts3a227e,snd_soc_sst_atom_hifi2_platform,snd_soc_max98090
snd_compress 20480 1 snd_soc_core
snd_pcm 81920 9 snd_soc_sst_cht_bsw_max98090_ti,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_compress,snd_soc_sst_atom_hifi2_platform,snd_soc_max98090,snd_soc_core,snd_hda_core
ac97_bus 16384 1 snd_soc_core
snd_timer 28672 1 snd_pcm
$ 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 1: chtmax98090 [chtmax98090], device 0: Audio (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: chtmax98090 [chtmax98090], device 1: Deep-Buffer Audio (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
$ dmesg | grep -P audio\|sound\|snd
[ 0.278315] No soundcards found.
[ 19.244086] pci 0000:00:1b.0: attach allowed to drvr snd_hda_intel [trusted device]
[ 19.244706] snd_hda_intel 0000:00:1b.0: bound 0000:00:02.0 (ops i915_gem_object_put [i915])
[ 19.291709] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input11
[ 19.291860] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input12
[ 21.316323] input: chtmax98090 Headset Jack as /devices/pci0000:00/80860F28:00/cht-bsw-max98090/sound/card1/input14
$ ls /usr/share/alsa/ucm
'Audioengine HD3' 'EPOS IMPACT 260' 'HyperX SoloCast' 'Scarlett Solo USB' bdw-rt5650
'C505 HD Webcam' 'EPOS IMPACT 30' ICUSBAUDIO7D 'Sennheise PC 8' bdw-rt5677
'Chat 150 C' 'EPOS IMPACT 60' 'Jabra SPEAK 810' 'Sennheiser PC 8.2 USB' byt-max98090
'Corsair VOID ELITE USB Gaming H' 'EPOS IMPACT 630' 'Logitech BRIO' 'Sennheiser SC 660 ANC USB' chtrt5650
'DELL PROFESSIONAL SOUND BAR AE5' 'EPOS IMPACT 660' 'Logitech Webcam C930e' 'Sennheiser SC230 USB' cnlmax98373
'Dell AC511 USB SoundBar' 'EPOS IMPACT 660 ANC' Loopback 'Sennheiser SC230 USB MS II' kbl_r5514_5663_max
Dell-WD15-Dock 'EPOS IMPACT 6x5' 'Mi Dual Driver Earphones Type-C' 'Sennheiser SC260 USB' kblda7219max
'EDIFIER W820NB' 'EPOS IMPACT X5' PCP-USB 'Sennheiser SC260 USB MS II' kblrt5663
'EPOS ADAPT 130' 'HD-Audio Generic' 'Pixel USB-C earbuds' 'Sennheiser USB headset' kblrt5663max
'EPOS ADAPT 160' 'HDA ATI HDMI' 'Plantronics DA70' 'Shure MV7' sklnau8825adi
'EPOS ADAPT 160 ANC' 'HDA Intel' 'Plantronics EncorePro 525 USB' 'USB 2.0 Camera' sklnau8825max
'EPOS ADAPT 165 USB II' 'HDA Intel PCH' 'Poly Blackwire 8225 Series' 'WD15 Dock' sof-hda-dsp
'EPOS ADAPT 1x5' 'HUAWEI USB-C HEADSET' 'Scarlett 2i2 USB' 'WD19 Dock'
'EPOS IMPACT 230' 'Hangouts Meet speakermic' 'Scarlett 2i4 USB' 'XtremPro X1 USB DAC'
$ cat /proc/asound/cards
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0x90714000 irq 91
1 [chtmax98090 ]: chtmax98090 - chtmax98090
GOOGLE-Squawks-1.0
$ cat /proc/asound/devices
2: [ 0- 3]: digital audio playback
3: [ 0- 7]: digital audio playback
4: [ 0- 2]: hardware dependent
5: [ 0] : control
6: [ 1- 0]: digital audio playback
7: [ 1- 0]: digital audio capture
8: [ 1- 1]: digital audio playback
9: [ 1] : control
33: : timer
$ cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version k5.4.217-15-0+.
安装 fydeos 后声卡设备好像从 byt-max98090 变为 chtmax98090 了,但是 alsa 下的 ucm 中存在 byt-max98090 却没有 chtmax98090
而且 dmesg 的输出中会出现
[ 61.466261] Audio Port: ASoC: no backend DAIs enabled for Audio Port
先是按照社区里提供的解决方法。
把原本 chromeos 中的 ucm 文件夹复制到fydeos中去,没有发生什么变化。
然后是 firmware 中的文件。最后试着把全部替换掉。
在 /etc/modprobe.d/alsa-base.conf 文件末尾添加 options snd-hda-intel dmic_detect=0 都没有作用。
又尝试按照这里https://www.reddit.com/r/chromeos/comments/swzxsy/chrome_os_flex_internal_audio_not_working_on_asus/
评论里的设备 ASUS C202,安装的系统是 chrome os flex。
从 chromeos 中使用 /usr/sbin/alsactl store -f /var/lib/alsa/asound.state
备份 asound.state 文件
然后在 fydeos 中恢复 /usr/sbin/alsactl init
sudo /usr/sbin/alsactl store --file /var/lib/alsa/asound.state
没有什么效果
然后跟着网友在 brunch 下的讨论操作
他的设备是 Asus C300 Quawks,和 C200 是同年的设备,相同的处理器。
在 https://github.com/GalliumOS/galliumos-baytrail 的 usr/share/alsa/ucm 下载了 chtmax98090 文件夹到本机
在 grub.cfg 的 cros_debug 后添加了 options=disable_intel_hda
执行
sudo alsaucm -c chtmax98090 set _verb HiFi set _enadev Headphone
sudo alsaucm -c chtmax98090 set _verb HiFi set _enadev Speakers
sudo alsactl store
不知道在哪一步出现的,最后
Audio Port: ASoC: no backend DAIs enabled for Audio Port
在 dmesg 的输出中不见了,但是还是没有声音
尝试执行 sudo alsaucm -c byt-max98090 set _verb HiFi set _enadev Speakers
时发生和
中一样的错误
ALSA lib main.c:405:(execute_sequence) unable to open ctl device 'hw:bytmax98090'
ALSA lib main.c:1733:(set_verb_user) error: failed to initialize new use case: HiFi
alsaucm: error failed to set _verb=HiFi: No such device
扬声器和耳机始终没有声音,hdmi 输出和蓝牙连接会有声音。
dmesg_chrome.txt (48.9 KB)
lsmod_chrome.txt (1.7 KB)
lsmodsndinfos_chrome.txt (14.9 KB)
chrome_asound.state (27.6 KB)