Goldfish64 / AudioPkg

Audio stack for UEFI. Currently supports HD audio controllers/codecs. WIP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hang / Freeze at logo apple (without loading bar)

andreszerocross opened this issue · comments

  1. I use latest Clover r4842
  2. I use Built-in AudioDxe-64.efi from CLOVER Package Installer
  3. I use Built-in BootChimeCfg.efi from CLOVER package Installer
  4. I use BootChimeDxe.efi from your AudioPkg

Result :

  1. Audio from CLOVER Theme is working fine (Before GUI CLOVER)
  2. Audio when i press enter in macOS Partition is fine

Problem :
After sound finish (when i press enter in macOS Partition), system is freeze. No loading bar, just apple logo. If i deleted bootchimedxe.efi. Then it will be fine. Can you check it?

Possibly an issue with the callback in BootChimeDxe. Can you test again using all binaries compiled from this repo and not from Clover?

I had the same problem, it seems you can only have one or the other working at once.

Possibly an issue with the callback in BootChimeDxe. Can you test again using all binaries compiled from this repo and not from Clover?

Yes, it can go. But sound before GUI Theme of CLOVER is gone.

I check the log is about "No AudioIo found" if i use all AudioDxe.efi, BootChimeDxe.efi and BootChimeCfg.efi from your repo.

It's look i need to ask you to check Clover Code :D

i don't understand about C++

Update :

Use all your 2 binary (BootChimeCfg.efi, and AudioDxe.efi").

  1. I try reset NVRAM (F11 in CLOVER GUI)
  2. Boot into Mac, then reboot
  3. I can hear audio before CLOVER GUI (Strange, without need to set bootchimecfg.efi in shell first),, and not sound after press enter in macOS Partition (ofcourse, there is no BootChimeDxe.efi here)
  4. Get into desktop and put your BootChimeDxe.efi
  5. Reboot,, get audio before CLOVER GUI,, then i can hear audio when press enter in macOS partition but FREEZE (No loading bar / progress)

Update : I rebuild your AudioPkg 1 minute ago

Result :

  1. Audio From Clover is working
  2. Audio from BootChimeDxe Working too
  3. no Freeze.

Did you change file recently,, it's look you made change 17 hours ago. And my report before is from your repository 17 hours ago

I just tested on mine and with Clover's build of AudioDxe it does indeed freeze after playback of the startup sound.

I just tested on mine and with Clover's build of AudioDxe it does indeed freeze after playback of the startup sound.

Yes i experienced it before.

My step is

  1. Reset Nvram (F11 in clover)
  2. Boot into mac
  3. Use your AudioDxe.efi + bootchimecfg.efi latest from repo (i built it recently)
  4. Don't use BootChimeDxe.efi
  5. Reboot,, (no need to set nvram for Audio, but strange i can still hear sound before CLOVER GUI)
  6. in desktop, i put your BootChimeDxe.efi in drivers64UEFI.
  7. All working good (But same step is fail before, i don't understand)

i just put "Sound.wav and sound_night.wav" in my Theme Folder.

I'm assuming "sound before CLOVER GUI" refers to the startup sound that Clover makes when it loads? How is that configured? I am not up to speed with the various changes as I only found out recently that Clover had incorporated my driver.

I'm assuming "sound before CLOVER GUI" refers to the startup sound that Clover makes when it loads? How is that configured? I am not up to speed with the various changes as I only found out recently that Clover had incorporated my driver.

We just need to put "sound.wav" and "sound_night.wav" in theme folder name. Eg, my theme folder is "BGM_SVG" so i put both of wav files into it :D

And this my video for the success, use all your binary. But i don't set bootchimecfg.efi yet. It's work normally without set it first. Is this normal????
https://youtu.be/WfaFOyFxf44

Yes BootChimeDxe will try to use a default device and max volume if the NVRAM variables do not exist.

Hello @andreszerocross sorry for hijacking your ticket here ;))

@Goldfish64 Thanks for your great driver! I have made a driver days ago to work with your AudioDxe which also experiencing boot freezes. Already share it on IM Ozmosis thread. For me, my StartPlaybackAsync callback will never get called. Something like unfinished progress (or broken timer?). Freeze on: "Block 3 of 8 filled! ..." on ExitBS.

For your new interactive BootChimeCfg, i got immediately "EFI_DEVICE_ERROR" msg on program start right after showing the menu. I comment out "WaitForEvent" return check as below as temporary workaround.

diff --git a/Application/BootChimeCfg/BootChimeCfg.c b/Application/BootChimeCfg/BootChimeCfg.c
index 0138cdf..8983c70 100644
--- a/Application/BootChimeCfg/BootChimeCfg.c
+++ b/Application/BootChimeCfg/BootChimeCfg.c
@@ -66,9 +66,9 @@ WaitForKey(
         return EFI_INVALID_PARAMETER;
 
     // Wait for key.
-    Status = gBS->WaitForEvent(1, &(SimpleTextIn->WaitForKey), &EventIndex);
-    if (EFI_ERROR(Status))
-        return EFI_DEVICE_ERROR;
+    /*Status =*/ gBS->WaitForEvent(1, &(SimpleTextIn->WaitForKey), &EventIndex);
+    //if (EFI_ERROR(Status))
+    //    return EFI_DEVICE_ERROR;
 
     // Get key value.
     Status = SimpleTextIn->ReadKeyStroke(SimpleTextIn, &InputKey);

Also found duplicate guid here.

🍻

Nice,, if someone like om Cecekpawon wes turun gunung. I think it will be easier to found the solution if both of Cecekpawon and GoldFish64 make a discussion :))

But just for the information,, my sound is working now. Before and after GUI CLover is work perfectly.

  1. Use official release Clover r4842
  2. Use "sound.wav" and "sound_night.wav" ini themes folder
  3. Use 3 binary from GoldFish64 (BootchimeDxe.efi, BootChimeCfg.efi and AudioDxe.efi'

if you need another log or info, please ask me free. It's really amazing can hear sound before and after CLOVER GUI 👯‍♂️

@cecekpawon Did you compile AudioDxe.efi yourself? The same exact issue affects BootChimeDxe when used with AudioDxe from Clover: the callback is never called.

Yes @Goldfish64, compiled by my self. I dont use Clover + have not test any Clovers AudioPkg binaries, so I cant compare it for you, sorry. BootChimeDxe will resulting boot freeze + ExitBootServices error msg (I will take a photo for you later sir).

Quick looking into Clover sources, their StartPlaybackAsync callback is NULL >>>

Attached when it run with mine.

x

EDIT: Forgot to mentioned, due callback is never called, the sound keep looping until before reaching the desktop.

Sounds like something is interrupting the driver during playback. Does sync playback work fine?

If the driver doesn't refill the HDA controller's buffer with new data, the controller will continue to loop the same data over and over.

Just for update :
image

I set this to my config.plist.. if PlayAsync=Yes then audio will laggy in GUI CLOVER.
I don't know if this is useful information

Does sync playback work fine?

Yes it does.

Attached BootChimeDxe ExitBS error with Aptiofix2 and AMF.

  • What the strange is, its only happened on verbose boot on my machine. While @andreszerocross stuck on Apple logo without progress bar 🤣
  • Callback appear to be called on BootChimeDxe, while mine is (still) never. Already tried to override LoadImage and StartImage. Will keep trying ...

10 50 12
10 48 53

Does sync playback work fine?

Yes it does.

Attached BootChimeDxe ExitBS error with Aptiofix2 and AMF.

  • What the strange is, its only happened on verbose boot on my machine. While @andreszerocross stuck on Apple logo without progress bar 🤣
  • Callback appear to be called on BootChimeDxe, while mine is (still) never. Already tried to override LoadImage and StartImage. Will keep trying ...

10 50 12
10 48 53

But now, it's working without problem. Use AudioDxe.efi, BootChimeDxe.efi and BootChimecfg.efi from GoldFish64 Repository, Clover r4844, and sound.wav + sound_night.wav ini Theme folder

Argh @andreszerocross please close this issue then. I will reopen this issue If the problem still persist 🍻

I finally managed to make it work by overriding ExitBS like BootChimeDxe did. Is there any other way besides those to catch our callback?

Also, is it true ControllerInfo->GetVendorId (>>>) is not implemented yet? Accidentally calling those prop for debugging resulting boot hang.

Thanks.