Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hang / Freeze at logo apple (without loading bar) #6

Closed
andreszerocross opened this Issue Jan 10, 2019 · 23 comments

Comments

Projects
None yet
4 participants
@andreszerocross
Copy link

commented Jan 10, 2019

  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?

@Goldfish64

This comment has been minimized.

Copy link
Owner

commented Jan 10, 2019

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

@D-an-W

This comment has been minimized.

Copy link

commented Jan 10, 2019

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

@andreszerocross

This comment has been minimized.

Copy link
Author

commented Jan 10, 2019

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++

@andreszerocross

This comment has been minimized.

Copy link
Author

commented Jan 10, 2019

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)
@andreszerocross

This comment has been minimized.

Copy link
Author

commented Jan 10, 2019

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

@Goldfish64

This comment has been minimized.

Copy link
Owner

commented Jan 10, 2019

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

@andreszerocross

This comment has been minimized.

Copy link
Author

commented Jan 10, 2019

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.

@Goldfish64

This comment has been minimized.

Copy link
Owner

commented Jan 10, 2019

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.

@andreszerocross

This comment has been minimized.

Copy link
Author

commented Jan 10, 2019

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

@andreszerocross

This comment has been minimized.

Copy link
Author

commented Jan 10, 2019

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

@Goldfish64

This comment has been minimized.

Copy link
Owner

commented Jan 10, 2019

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

@cecekpawon

This comment has been minimized.

Copy link

commented Jan 10, 2019

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.

🍻

@andreszerocross

This comment has been minimized.

Copy link
Author

commented Jan 10, 2019

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 :))

@andreszerocross

This comment has been minimized.

Copy link
Author

commented Jan 10, 2019

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 👯‍♂️

@Goldfish64

This comment has been minimized.

Copy link
Owner

commented Jan 10, 2019

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

@cecekpawon

This comment has been minimized.

Copy link

commented Jan 10, 2019

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.

@Goldfish64

This comment has been minimized.

Copy link
Owner

commented Jan 10, 2019

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.

@andreszerocross

This comment has been minimized.

Copy link
Author

commented Jan 10, 2019

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

@cecekpawon

This comment has been minimized.

Copy link

commented Jan 13, 2019

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

@andreszerocross

This comment has been minimized.

Copy link
Author

commented Jan 13, 2019

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

@cecekpawon

This comment has been minimized.

Copy link

commented Jan 13, 2019

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

@cecekpawon

This comment has been minimized.

Copy link

commented Jan 14, 2019

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.