GalliumOS / galliumos-distro

Docs, issues, and artwork sources for GalliumOS
https://galliumos.org/
GNU General Public License v2.0
347 stars 11 forks source link

Sound on Kaby Lake #536

Open chrysophylax opened 4 years ago

chrysophylax commented 4 years ago

After the success of ticket #379 I thought I'd create one for us Kaby Lake users.

I have an Acer Chromebook Spin 13 with an i5-8250u (board: Nami) running a different distro (FC30) with a recent kernel (5.3.x) but I got sound to work. If your kernel conf doesn't include kbl_da7219_max98357 as a module, you should probs. recompile it with that as m or y.

This is what I did:

  1. blacklist snd_hda_intel in /etc/modprobe.d
  2. Copy over dsp_lib_ghw_spt_release.bin from ChromeOS recovery image to /lib/firmware
  3. Copy over all the firmware files in /lib/firmware/intel (ChrOs) to /lib/firmware/intel
  4. Copy over 9d71-GOOGLE-NAMIMAX-0-tplg.bin from ChromeOS recovery image to /lib/firmware
  5. Create a directory kblda7219max.akali360 in /usr/share/alsa/ucm/
  6. Add HiFi.conf in this directory (attached, extracted from ChromeOS and updated to new ALSA vocabulary)
  7. Add kblda7219max.akali360.conf in this directory
    
    Comment "Akali360 internal card"

SectionUseCase."HiFi" { File "HiFi.conf" Comment "Default" }


7. Reboot
8. Run `alsaucm -c kblda7219max.akali360 set _verb HiFi set _enadev Speaker ; pulseaudio -k`
9. Play something on youtube :-) speakers work!
10. Run `alsaucm -c kblda7219max.akali360 set _verb HiFi set _disdev Speaker ; alsaucm -c kblda7219max.akali360 set _verb HiFi set _enadev Headphone ; pulseaudio -k ` for headphone jack

note that since github doesn't let me upload .conf, I uploaded the file with the extension .conf.txt
rename that before you drop it in /usr/share/alsa/ucm/
[HiFi.conf.txt](https://github.com/GalliumOS/galliumos-distro/files/3783723/HiFi.conf.txt)

I hope someone with more moxy in automation can set-up something similar to the skylake-firmware package that extracts sound stuff & all for GalliumOS on Kaby Lake .
artemislena commented 4 years ago

I have an Acer Chromebook Spin 13 with i5-8250u as well, but isn't that AKALI360 board? Furthermore I tried to follow your instructions, however I couldn't mount the root partition (I suppose that's partition 3 or ROOT-A) in my OS, it always returned an error (something with bad fs or bad superblock, Gparted said it was improperly formatted, but couldn't fix it). I used the shell script for creating the image, is there any difference to the Chrome extension?

JulesArcher commented 4 years ago

Thanks for your effort to resolve this issue!

First question: at step #1 I don't find a modprobe.d file in the etc folder. Should I create one?

Thanks!

artemislena commented 4 years ago

Thanks for your effort to resolve this issue!

First question: at step #1 I don't find a modprobe.d file in the etc folder. Should I create one?

Thanks!

https://askubuntu.com/questions/110341/how-to-blacklist-kernel-modules modprobe.d is a directory. Just write blacklist snd_hda_intel into a file inside it. Did you succeed getting the firmware out of the recovery image? If yes, how? Apparently the root partition uses EXT4 “features” only supported by ChromeOS, or at least not by mainstream e2fsprogs therefore it is not mountable.

JulesArcher commented 4 years ago

Thanks @FantasyCookie17 for the clarification.

I created a recovery image in via the chrome app and then was able to mount the USB drive in GalliumOS. In the disk volume, there's a single folder named un-encrypted, and a single file named vmlinuz_hd.vblock. The folder has some sub-folders, with the final folder /unencrypted/import_extenstions/extensions having a bunch of .crx files. This doesn't seem right.

@chrysophylax , I think we could really use your help at this point to clarify this procedure in more detail. I'm willing to help test and troubleshoot (and even write up a detailed procedure), but we need your help!

Thanks!

JulesArcher commented 4 years ago

A quick follow-up: I also found the ROOT-A volume on the recovery image, but it also fails to mount, with the following error:

Error mounting /dev/sda3 at /media/chrx/ROOT-A: wrong fs type, bad option, bad superblock on /dev/sda3, missing codepage or helper program, or other error.

artemislena commented 4 years ago

@JulesArcher I think I was able to mount some partition, maybe the one you mentioned was one them. And I got exactly the same error with the ROOT-A partition. As I said above, some other program ((GNOME?) disks or Gparted, I think) said it had “unsupported features”.

JulesArcher commented 4 years ago

I've done some googling on the above error and found a thread that suggests that a filesystem still needs to be created:

https://unix.stackexchange.com/questions/315063/mount-wrong-fs-type-bad-option-bad-superblock

@FantasyCookie17, Can you make any sense of this?

Thanks!

AngryEngineer commented 4 years ago

@JulesArcher I think I was able to mount some partition, maybe the one you mentioned was one them. And I got exactly the same error with the ROOT-A partition. As I said above, some other program ((GNOME?) disks or Gparted, I think) said it had “unsupported features”.

I took a look and there are at least 2 issues with mounting that partition. It does have unsupported features enabled on the file system that appear to be related to ChromeOS. Using tune2fs you normally can disabled those features, but when you run that it complains about not finding a valid superblock.

I can see super blocks in the by using dumpe2fs so there must be extra data in those superblocks that our tools don't understand.

I think we're going to need an adult.

artemislena commented 4 years ago

@JulesArcher Making a new file system on a partition will make the data that was previously on it inaccessible afaik (data that wasn’t completely wiped with 0s or random bits can be recovered however, but that’s a rather difficult procedure, and is not affected by FS anyway afaik). It’s basically what I said about unsupported features, and apparently also what @AngryEngineer mentioned - thank you for that, I didn’t know about these tools.

Weird there’s no one else looking into this issue and writing something. I hoped that at least the GalliumOS devs knew more... And @chrysophylax seems to have disappeared, both here and on Reddit.

AngryEngineer commented 4 years ago

@FantasyCookie17 I've been looking at this issue as a whole and although @chrysophylax was able to get this working using the binaries form ChromeOS, it might not be the end all solution here. According to MrChromeBox the driver firmware doesn't seems to be an issue (I can confirm the default kernel seems to have no issues with drivers.) Seems like the missing piece here is the encoder information and the ALSA topology. If we can figure that out without using binaries from ChromeOS then we might get some more traction.

chrysophylax commented 4 years ago

Heyo, I've been off radar abroad and from illness. Back now!

I have successfully followed these steps earlier https://dev.chromium.org/chromium-os/developer-information-for-chrome-os-devices/workaround-for-battery-discharge-in-dev-mode#TOC-Modify-the-recovery-image-so-we-can-mount-it to modify a recovery image back when it discharged. It should work for you guys who cannot mount the recovery image's root partition.

artemislena commented 4 years ago

@chrysophylax Thank you, orobably should have simply used a search engine myself. I tried your instructions on my own AKALI360 running Void Linux, and since step 7, the following error started appearing periodically on the virtual, non-graphical terminals: DMAR: DRHD: handling fault status reg 3 DMAR [DMA READ] Request device [00:1f.3] fault addr 0 [fault reason 06] PTE Read access is not set Trying step 8 or 10, I got something like this: ALSA lib parser.c:1508:(get_card_long_name) no soundcards found... ALSA lib parser.c:1306:(parse_master_section) unknown field ``��ҧ in master section ALSA lib parser.c:1306:(parse_master_section) unknown field ``��ҧ in master section ALSA lib parser.c:1313:(parse_master_section) error: use case missing file ALSA lib main.c:957:(snd_use_case_mgr_open) error: failed to import kblda7219max.akali360 use case configuration -22 alsaucm: error failed to open sound card kblda7219max.akali360: Invalid argument E: [pulseaudio] main.c: Failed to kill daemon: No such process (I just wrote a double ` at some places here as there was originally a single one interrupting the code block and not being shown) I installed alsa-utils, alsa-plugins-pulseaudio, alsa-firmware and alsa-lib after step 7. Perhaps there are more dependencies needed? I already had pulseaudio before. I also used some chmod on some of the config and firmware files/directories as I wasn’t able to read/access them as a normal user. I made none of them executable, except for the directories (as that is needed for cding into them). Last but certainly not least, after following your instructions, the fan was always spinning rather loudly and when I tried shutting it down through a command or the power button, the OS did stop to run, but neither the fan nor the power LED turned off, and I had to force shutdown by pressing the power button for a longer time.

artemislena commented 4 years ago

I also get something like the following error at boot: kblda7219max: ASoc: failed to init-link ssp1-soc: -512 The fan doesn't turn up abnormally much anymore, however it still doesn't shutdown properly. Btw, I have the Intel ME disabled.

artemislena commented 4 years ago

So apparently I needed to add intel_iommu=off to the GRUB default command line arguments in /etc/default/grub and then update-grub. Now I don't have my fan turning up that much anymore, and it shuts down like it normally would as well. However when doing step 8 or 10, I still get the same errors, and I still get that failed to init-link error above at boot. I now also get another error sometimes: Kbl Audio Port: ASoc: no backend DAIs enabled for Kbl Audio Port. When I call pulseaudio, the following is returned several times: E: [pulseaudio] module-alsa-card.c: Failed to find a working profile. E: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="0" name="platform-kbl_da7219_max98357a" card_name="alsa_card.platform-kbl_da7219_max98357a" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1""): initialization failed. E: [pulseaudio] bluez5-util.c: GetManagedObjects() failed: org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not provided by any .service files After that a message that an error occured more than 5 times in 10s or something. Calling pulseaudio --start returns nothing, entering pulseaudio then will give me E: [pulseaudio] pid.c: Daemon already running. E: [pulseaudio] main.c: pa_pid_file_create() failed. (I suppose that's normal behavior.) Trying to play some sound with aplay, e.g. sudo cat /dev/input/mouse0 | aplay will return Playing raw data 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono aplay: set_params:1405: Unable to install hw params: ACCESS: RW_INTERLEAVED FORMAT: U8 SUBFORMAT: STD SAMPLE_BITS: 8 FRAME_BITS: 8 CHANNELS: 1 RATE: 8000 PERIOD_TIME: (85312 85313) PERIOD_SIZE: (682 683) PERIOD_BYTES: (682 683) PERIODS: (3 5) BUFFER_TIME: 341250 BUFFER_SIZE: 2730 BUFFER_BYTES: 2730 TICK_TIME: 0 I have both the alsa and pulseaudio services enabled on my Void Linux installation. I'd be happy to provide more information in case anyone needs to know more. Is the output of dmesg needed/appreciated? (Edit: probably it isn't, just contains normal wifi information and that no DAIs enabled error)

Seems to be related to https://askubuntu.com/questions/886512/baytrail-audio-port-asoc-no-backend-dais-enabled-for-baytrail-audio-port/978059, but the "solution" provided there didn't help, and apparently it didn't help the one who replied either.

Maybe there 's another package I need to install or some service I should run? Any specific permissions I need to set for the firmware? Some special ALSA config apart from what was provided needed?

chrysophylax commented 4 years ago

Hi,

I have unfortunately no idea what could be messing up your installation. As mentioned, it seems to run fine on all the recent kernels (5.3.x) on Fedora Linux for me. I haven't had it break since I got it working despite several updates.

I have not disabled Intel ME although I doubt that could be affecting the audio bits.

artemislena commented 4 years ago

I even asked on Reddit (r/linuxquestions) and Unix Stackexchange. no answer on either so far...

@chrysophylax How did you fix the screen rotated 180° issue on Fedora though? I once tried it and that was a problem I had (in GNOME), had to do something with systemd’s iio-sensor-proxy, which has some kind of 2d matrix for config, but no documentation on what the parameters do.

I guess I’m going to try OpenBSD soon, as this is an ALSA issue probably (ALSA being specific to Linux), maybe that’ll fix it (if I load the same firmware). I have at least read that OpenBSD works better on laptops than FreeBSD in terms of hardware support, so at least there’s a small chance (although ChromeOS is based on Gentoo).

chrysophylax commented 4 years ago

@FantasyCookie17 , I just uninstalled iio-sensor-proxy. I have no use for a rotated screen.

babuloseo commented 4 years ago

Anyone got this working on Ubuntu based distros?

artemislena commented 4 years ago

OpenBSD doesn't even boot properly, and the ALSA configuration wouldn't work there either of course. So I'll try QubesOS soon... It's based on Fedora, so maybe I'll have more luck there.

artemislena commented 4 years ago

After trying various distributions with various issues (even during install or with booting post-install, including Fedora), I now tried Manjaro. At least it boots, however I didn't get the sound either. I get other errors there as well and I'm not sure how to fix. First it said the syntax field was not defined, which (I think) was fixed by adding Syntax 2 to the top of the file. At least that's what some other configs contained. The directory was ucm2 and not ucm there. And then I got some hardware not found error. The kernel modules were called differently, and I didn't think this would be a problem as maybe they were called different anyway due to newer kernel (5.4)... I guess I'll try to install Fedora again... I don't appreciate that I first have to install it to external media because of missing F2FS support in installer however (even with Blivet). It'd be nice if this could somehow be adopted into standard alsaucm configuration somehow. Maybe do a PR/issue so the config, which apparently doesn't work on some distros, can be fixed by their devs (or by the distributors)? And apart from the sound, we need to get that Raydium TS firmware somehow to get the touchscreen working. The one in the ChromeOS image is just a (sym/hard)link which is broken. Note that the sound is much more important to me and probably most users other users as well than the touchscreen.

artemislena commented 4 years ago

I now tried Fedora as well (31). It doesn’t even have an alsaucm command, and afaict no way to install it (the alsa-ucm package doesn’t contain it). Also there are only generic and Skylake DA7219 modules in the default kernel, not the one OP mentioned. So basically, if anyone has a working fix on any distro, or managed to apply what @chrysophylax did on any distro, please share. Maybe Gallium devs could port and package this somehow?

artemislena commented 4 years ago

Doesn't work on CentOS 8 with default kernel either. But again, the kernel module you mentioned is not included by default. And I currently don't have the time for Gentoo or anything like that.

EDIT: Probably I just needed to load the module via modprobe - i t actually was there in most kernels, but I somehow totally forgot about that command. However, that doesn't change it still doesn't work for some reason. I tried it again on CentOS, as it was still installed. It still uses 4.18 kernel, but that probably doesn't matter as ChromeOS is still on 4.4 AFAIK.

chrysophylax commented 4 years ago

Well, that's unfortunate. It stopped working on F31 at some point during the updates.

chrysophylax commented 4 years ago

I think I fugred out why it probably stopped working. The default kernel builds by Fedora & friends now include the sof-kernel driver enabled and removes the kblda7219max driver which unfortunately leaves us Kaby Lake people without any soundcards recognised by the kernel.

$ cat /proc/asound/cards --- no soundcards ---

Add to that that alsaucm for many has migrated to using the ucm2 format, we need to migrate the configuration file as well. My next go-to will be to consider switching from Fedora to a distro that lets you rebuild your kernel in a more friendly way...

empathicqubit commented 4 years ago

@chrysophylax Would you be able to share the bin files you mentioned above? I made the mistake of not making a recovery image for my system so I don't have access to them.

Edit: I found it at https://cros-updates-serving.appspot.com/

empathicqubit commented 4 years ago

@chrysophylax I've followed your instructions but ALSA seems to be having problems finding the device. I've also tried doing modprobe snd-soc-kbl_da7219_max98357a and that didn't seem to help. alsa force-reload also. What is the exact name of the kernel config option for the driver? It seems that it's already enabled, but I've also only seen the A variant and not the plain one.

These are the only options I could find that weren't enabled, but they didn't have the KBL in them:

SND_SOC_MT8183_DA7219_MAX98357A SND_SOC_MT8183_MT6358_TS3A227E_MAX98357A

uname -r

5.5.6-050506-generic

MrChromebox commented 4 years ago

These are the only options I could find that weren't enabled, but they didn't have the KBL in them:

SND_SOC_MT8183_DA7219_MAX98357A SND_SOC_MT8183_MT6358_TS3A227E_MAX98357A

as indicated in the name, those drivers are for the Mediatek MT8183/6358 SoCs

snd-soc-kbl_da7219_max98357a = Kabylake SoC, DA7219 codec, Maxim 98357a amplifier. Not all Kabylake Chromebooks use that combination; some use the Maxim 98927 or 98373

empathicqubit commented 4 years ago

@MrChromebox Thank you. Should I try those other drivers? I had assumed since my computer model and CPU model was exactly the same as theirs that it would have the same audio hardware but I know that manufacturers will sometimes change parts around midlife.

MrChromebox commented 4 years ago

@empathicqubit no, I'm saying that the MT8183 drivers are completely not applicable. Your Kabylake device has one of the 3 setups I listed, and is likely all 3 drivers are included together in all recent kernels

chrysophylax commented 4 years ago

@empathicqubit I've taken a break on patching the alsa configuration files to the new ucm2 format as I've not much free time and there doesn't seem to be much documentation available on how to port old->new. I know the SOF team does have proper Kaby Lake support on its to-do list. You can follow the feature request on https://github.com/thesofproject/sof/issues/1899

chrysophylax commented 4 years ago

@empathicqubit you should disable the linux sof-driver from your Kconfig as it is an exclusive or with the old kblda7219 driver.

ghost commented 4 years ago

@chrysophylax What'd you do to HiFi.conf? I have a VAYNE and the ChromeOS HiFi.conf differs from AKALI360

ghost commented 4 years ago

watch my ridiculous YouTube video https://youtu.be/K8YSk4xzYvE

In all seriousness, yeah, I managed to get it working. I'll try to get this packaged up for you all before the next release of GalliumOS :wink:

ghost commented 4 years ago

Just a heads up, I don't know exactly what caused it but I destroyed the speakers on our VAYNE while continuing to mess with the ALSA configuration, so while it is very much possible to get it working, be very aware that you are doing so at your own risk and be very careful.

chrysophylax commented 4 years ago

That's awful! I'm sorry. Was there a reason you kept changing the configuration after your video?

ghost commented 4 years ago

Yeah, because it sucked. We need something that works at boot and has working jack detection without having to kill off PulseAudio.

ghost commented 4 years ago

Hi, @chrysophylax I have the same chromebook as you (Acer Chromebook Spin 13). I am having trouble extracting files from the ChromeOS Recovery Image. I was hoping that since we have the same machine, you would be able to send me copies of the "9d71-GOOGLE-NAMIMAX-0-tplg.bin" and the "9d71-GOOGLE-NAMIMAX-0-tplg.bin", files that you talked about in your first post.

ghost commented 4 years ago

Hi, ignore my last post; I was able to mount the chromeos recovery .bin file in Pop! OS. When running the command to enable speakers, I get this error: ALSA lib main.c:438:(execute_sequence) unable to execute cset 'name='media0_out mo codec0_in mi Switch' off'

ALSA lib main.c:1698:(set_verb_user) error: failed to initialize new use case: HiFi

If anyone can advise, I would be grateful.

pendigging commented 4 years ago

Might it be possible, as a temp workaround, to chromecast the audio to an external speaker? ... Or is it the case that the nature of this issue is such that there's simply no valid audio stream to cast?

artemislena commented 4 years ago

Might it be possible, as a temp workaround, to chromecast the audio to an external speaker? ... Or is it the case that the nature of this issue is such that there's simply no valid audio stream to cast?

Idk what you mean by "chromecast". Anything that uses the integrated DSP (Digital Sound Processor) won't work, that is, headphone jack and internal speakers, anything that doesn't due to using its own, such as USB or Bluetooth audio devices, will.

colpanek commented 4 years ago

I have a Pixel that I had to install a different mixer in and manually set the sound to switch between internal speakers vs. headphones. Qmixer I think it was.

Since then I installed Kubuntu 20.04 and the headphones don't work. When I plug them in, the volume changes to the "headphone" setting, but the sound still comes out of the speakers instead. Scratching my head over that.

Jim

Jim & Mary Margaret Van Damme Couple to Couple League-Central New York http://nfp.freehostia.com/ <=Natural Family Planning info Sent from my Linux PC

artemislena commented 4 years ago

So, after https://github.com/thesofproject/sof/issues/1899 was closed, it seems like someone from GalliumOS or similar would need to pick up this again…

crystalcommunication commented 4 years ago

All we can do is copy the firmware files from Chrome OS and adjust the ucm topology accordingly due to the ABI mismatch between the version of ALSA in GalliumOS compared to Chrome OS. I'll try to get a pull request for this in. I think the solution will be very similar to the Skylake solution, which means that solution should be broadly portable to other platforms as well, but the GalliumOS project would have to distribute the audio firmware files from Chrome OS for all models Skylake or newer.

jmontleon commented 4 years ago

I haven't been able to get Fedora 32 working on my Pixelbook (Eve).

I put the firmware files in place to start.

Running pulseaudio -v with kernel 5.8.10 I was able to see what looked like the driver locking up. That seemed to be confirmed by not being able to properly reboot the laptop. I tried a Fedora 34/Rawhide 5.9.0 rc6 kernel and that at least wasn't happening anymore.

The HiFi.conf (there's a copy on this gist) didn't work too well with Fedora which seems to have a version of alsa-ucm using a newer syntax. https://gist.github.com/daemonp/ecead946317b175e3b54731a513efe94

These lines in particular seemed problematic:

        cset "name='Pin 5 Mux' 1"
        cset "name='Pin 6 Mux' 2"
        cset "name='Pin 7 Mux' 3"

Removing those I could at least run alsaucm -c kbl_r5514_5663_max successfully.

The next problem was that I named the folder/conf file /usr/share/alsa/ucm2/kbl_r5514_5663_max/kbl_r5514_5663_max.conf which worked with the alsaucm command alsaucm -c kbl_r5514_5663_max, but pulseaudio was complaining no ucm was available for the kbl-r5514-5663-max card. Tried renaming it /usr/share/alsa/ucm2/kbl-r5514-5663-max/kbl-r5514-5663-max.conf but that didn't work. Running `strace alsaucm -c kbl-r5514-5663-max I saw it wanted kbl-r5514-5663-/kbl-r5514-5663-.conf (among a few other options).

So another rename and now pulseaudio was finding it but complaining about nonexistent PCMs for most SectionDevice besides Headphones and Speakers so I removed them.

Even after that still no sound.

I did see a bunch of -110/-22 errors in dmesg coming from snd_soc_skl. Googling around didn't yield much exciting.

jmontleon commented 4 years ago

I did also notice Fedora has an empty /usr/share/alsa/ucm directory with a readme file saying the new ucm2 folder should be used. I did see when running alsaucm with strace it was still looking with some folder/file name combinations in the old ucm directory. I don't know if the behavior would be any different, but next go around I think I'll try placing it there instead.

One of the issues I dug up based on the dmesg errors indicated that a sof 1.6 fix might address it (sorry I didn't keep good notes on these errors). I see they're starting on tags for 1.6 rc's here https://github.com/thesofproject/sof/tags so once there's a sof-bin branch for 1.6 I'll probably give it another go with the latest 5.9 kernel package available.

I did try building a 1.5.1 package (F32 is currently at 1.5), but that had no effect

jmontleon commented 4 years ago

These are the errors I'm seeing with 5.9.0 rc6, firmware, and ucm files in place:

Sep 25 21:27:07 pixelbook kernel: i801_smbus 0000:00:1f.4: Transaction timeout
Sep 25 21:27:07 pixelbook kernel: i801_smbus 0000:00:1f.4: Failed terminating the transaction
Sep 25 21:27:07 pixelbook kernel: i801_smbus 0000:00:1f.4: SMBus is busy, can't use it!
Sep 25 21:27:08 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ASoC: no sink widget found for AEC Capture
Sep 25 21:27:08 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ASoC: Failed to add route echo_ref_out cpr 7 -> direct -> AEC Capture
Sep 25 21:27:08 pixelbook kernel: rt5663 i2c-10EC5663:00: sysclk < 384 x fs, disable i2s asrc
Sep 25 21:27:08 pixelbook kernel: HDMI HDA Codec ehdaudio0D2: hdac_hdmi_present_sense: disconnect for pin:port 5:0
Sep 25 21:27:08 pixelbook kernel: HDMI HDA Codec ehdaudio0D2: hdac_hdmi_present_sense: disconnect for pin:port 6:0
Sep 25 21:27:08 pixelbook kernel: HDMI HDA Codec ehdaudio0D2: hdac_hdmi_present_sense: disconnect for pin:port 7:0
Sep 25 21:27:13 pixelbook kernel: snd_soc_skl 0000:00:1f.3: Module list is empty
Sep 25 21:27:13 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc FW reply: 109 FW Error Code: 0
Sep 25 21:27:13 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc: set large config fail, err: -22
Sep 25 21:27:13 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ASoC: PRE_PMU: spk_pb_in cpr 0 event failed: -22
Sep 25 21:27:13 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc: Unhandled error msg=9b0a0000
Sep 25 21:27:13 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc: set pipeline state failed, err: -110
Sep 25 21:27:13 pixelbook kernel: snd_soc_skl 0000:00:1f.3: Failed to reset pipe ret=-110
Sep 25 21:27:13 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc: set dx failed, err -110
Sep 25 21:27:13 pixelbook kernel: snd_soc_skl 0000:00:1f.3: set Dx core 0 fail: -110
Sep 25 21:27:13 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ASoC: error at snd_soc_pcm_dai_trigger on HDMI2 Pin: -32
Sep 25 21:27:13 pixelbook kernel:  Kbl HDMI Port2: ASoC: trigger FE cmd: 1 failed: -32
Sep 25 21:27:14 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ASoC: error at snd_soc_pcm_dai_trigger on HDMI1 Pin: -32
Sep 25 21:27:14 pixelbook kernel:  Kbl HDMI Port1: ASoC: trigger FE cmd: 1 failed: -32
Sep 25 21:27:14 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc FW reply: 109 FW Error Code: 0
Sep 25 21:27:14 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc: set large config fail, err: -22
Sep 25 21:27:14 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ASoC: PRE_PMU: spk_pb_in cpr 0 event failed: -22
Sep 25 21:27:14 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc: set pipeline state failed, err: -110
Sep 25 21:27:14 pixelbook kernel: snd_soc_skl 0000:00:1f.3: Failed to pause pipe
Sep 25 21:27:14 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ASoC: error at snd_soc_pcm_dai_trigger on System Pin: -110
Sep 25 21:27:14 pixelbook kernel:  Kbl Audio Port: ASoC: trigger FE cmd: 1 failed: -110
Sep 25 21:27:14 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc: set large config fail, err: -110
Sep 25 21:27:14 pixelbook kernel: kbl_r5514_5663_max kbl_r5514_5663_max: Can't enable mclk, err: -110
Sep 25 21:27:14 pixelbook kernel: kbl_r5514_5663_max kbl_r5514_5663_max: ASoC: PRE_PMU: Platform Clock event failed: -110
Sep 25 21:27:14 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc: create pipeline fail, err: -110
Sep 25 21:27:14 pixelbook kernel: snd_soc_skl 0000:00:1f.3: Failed to create pipeline
Sep 25 21:27:14 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ASoC: PRE_PMU: hs_cap_out cpr 4 event failed: -110
Sep 25 21:27:15 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ASoC: error at snd_soc_pcm_dai_trigger on System Pin: -32
Sep 25 21:27:15 pixelbook kernel:  Kbl Audio Capture Port: ASoC: trigger FE cmd: 1 failed: -32
Sep 25 21:27:20 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ASoC: POST_PMD: hs_cap_out cpr 4 event failed: -22
Sep 25 21:27:20 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc: set pipeline state failed, err: -110
Sep 25 21:27:20 pixelbook kernel: snd_soc_skl 0000:00:1f.3: Failed to reset pipe ret=-110
Sep 25 21:39:25 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc FW reply: 109 FW Error Code: 0
Sep 25 21:39:25 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc: set large config fail, err: -22
Sep 25 21:39:25 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ASoC: PRE_PMU: spk_pb_in cpr 0 event failed: -22
Sep 25 21:39:25 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc: Unhandled error msg=9b0a0000
Sep 25 21:39:25 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc: set pipeline state failed, err: -110
Sep 25 21:39:25 pixelbook kernel: snd_soc_skl 0000:00:1f.3: Failed to pause pipe
Sep 25 21:39:25 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ASoC: error at snd_soc_pcm_dai_trigger on System Pin: -110
Sep 25 21:39:25 pixelbook kernel:  Kbl Audio Port: ASoC: trigger FE cmd: 1 failed: -110
Sep 25 21:39:37 pixelbook kernel: snd_soc_skl 0000:00:1f.3: ipc: set pipeline state failed, err: -110
Sep 25 21:39:37 pixelbook kernel: snd_soc_skl 0000:00:1f.3: Failed to reset pipe ret=-110
Sep 25 21:40:26 pixelbook kernel: i2c_hid i2c-ACPI0C50:00: i2c_hid_get_input: incomplete report (74/60490)
jmontleon commented 4 years ago

This error is mentioned and seems to be the cuplrit: ipc: Unhandled error msg=9b0a0000

Reading over at: https://bugs.chromium.org/p/chromium/issues/detail?id=961916, the first comment states:

"That looks like an Intel legacy firmware IPC error. I would hope we would ditch that firmware and use SOF if we upreved to 4.19+. Since the firmware is closed source (and legacy/soon to be deprecated entirely) I'm tempted to label this as won't fix". One of the last few comments shows output that looks very similar to mine above with that same firmware error from 5.4.

It looks like SKL/KBL via SOF isn't happening now: https://github.com/thesofproject/sof/issues/1899

artemislena commented 4 years ago

@CrystalCommunication That would indeed be quite helpful, thanks.

123sahit commented 3 years ago

I'm not sure the audio will work AT ALL because mrchromebox mentioned that audio will not work on dual-boot

MrChromebox commented 3 years ago

I'm not sure the audio will work AT ALL because mrchromebox mentioned that audio will not work on dual-boot

I never said such a thing