Jump to content

OpenCore not detecting correct audio device in picker


11 posts in this topic

Recommended Posts

Posted (edited)

Hello, still a relative newbie so the answer may be stupid obvious or just not exist but I also want to check before I throw in the towel.

Long story short, I'm almost done with my hackintosh after following the Dortania guide and was hoping to try and enable the boot chime:
The steps the guide suggested didn't work.
A short bit of research on google and I have found no similar cases.
I asked about in a discord, no cigar.
I gave up for a moment before deciding to come here to try and get some serious help on this issue.

The problem:
No sound whatsoever works in the boot picker of OpenCore. It works perfectly fine after booting & getting into macOS, however.

Basic info:
Bootloader: Opencore 0.6.9
macOS: Catalina 10.15.7
Laptop: Lenovo X1 Extreme Gen 3 20TK001JUS
Boot disk: 32GB SanDisk USB 3.2 with Type-A connector

What I've tried:
Removing all files related to the graphical boot picker. (OpenCanopy)
ChipTune.efi, Accessibility Voiceover, and the boot chime for sound sources.
NVRAM -> 7C436110-AB2A-4BBB-A880-FE41995C9F82:
    SystemAudioVolume 0x46, 0x50
UEFI -> Audio:
    AudioDevice set to PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x1) and PciRoot(0x0)/Pci(0x1F,0x3) (More on these later)
    SetupDelay at 0 and 500,000
    AudioCodec 0

    MinimumVolume at 0, 20, and 60
    AudioOut 0, 1, 2
    PlayChime Auto, Enabled

    VolumeAmplifier at 100 and 143
Misc -> Boot:
    PickerAudioAssist False, True
UEFI -> ProtocolOverrides:
    AppleAudio False, True

What I know:
PciRoot(0x0)/Pci(0x1F,0x3) is assumed to be the address of the "System Speaker" device on the motherboard, under the Intel LPC Controller at PciRoot(0x0)/Pci(0x1F,0x0).
PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x1) is the address of the "High Definition Audio Controller" which apparently controls an NVIDIA High Definition Audio device over "Internal High Definition Audio Bus" 0.


gfxutil and IORegistryExplorer both report my HDEF PCI address as being PciRoot(0x0)/Pci(0x1F,0x3).
The only audio device OpenCore can detect and use according to the logs, however, is at PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x1).

Every attempt to make sound from OpenCore that has returned 'successful' does not actually make noise. ChipTune.efi is not so clear-cut but the results are in the Drive folder anyways.

What I think is going on:
OpenCore is not detecting the correct audio device for some reason, and the one it does detect does not have the capacity for a boot chime or anything else OC may use it for. This would mean either OpenCore has a bug, or my hardware/firmware never had the capacity for an OpenCore boot chime in the first place.

Drive link with screenshots, shell photos, OC log & EFI folder:
https://drive.google.com/drive/folders/1-k29SMOAdNiBwyDAHl3-RjI8jFt6bRkF?usp=sharing

Let me know what you think! If you have a possible solution or anything you think might be helpful, I would appreciate hearing it.

Edited by xefyr0
  • xefyr0 changed the title to OpenCore not detecting correct audio device in picker
Posted (edited)

@xefyr0 I'm not a bootchime expert, but I'll offer to help.  A couple of questions/observations:

  1. You've read this?
  2. What made you stop at 2 (0,1,2) for AudioOut?
  3. I don't think you need to assume anything about your "System Speaker" - I think it should be the same device path you're using for sound in macOS.

If you still need help, please post your sanitized EFI (remove PlatformInfo>Generic>MLB,ROM,SystemSerialNumber,SystemUUID) before you post.  If not the entire EFI, post your config.plist and Drivers and Resources Folder at minimum.

Edited by tonyx86
Posted (edited)
1 hour ago, tonyx86 said:

@xefyr0 I'm not a bootchime expert, but I'll offer to help.  A couple of questions/observations:

  1. You've read this?
  2. What made you stop at 2 (0,1,2) for AudioOut?
  3. I don't think you need to assume anything about your "System Speaker" - I think it should be the same device path you're using for sound in macOS.

If you still need help, please post your sanitized EFI (remove PlatformInfo>Generic>MLB,ROM,SystemSerialNumber,SystemUUID) before you post.  If not the entire EFI, post your config.plist and Drivers and Resources Folder at minimum.

First off, thank you for the response. It's always appreciated.

1. Yes.
2. My opencore log says the device that it discovers has 3 outputs. 0,1,2 is how the three outputs are enumerated according to that guide.
3. That's the whole issue-The device path I'm using for sound in macOS isn't showing up in OpenCore's logs whatsoever. Trying to use its PCI path always results in an error. The "System Speaker" is the only one showing up in the logs, and doesn't throw an error when I use its PCI path, so I've been trying and failing to use it instead.

The sanitized EFI along with opencore logs and a couple of other resources should be in the google drive link towards the bottom of the original post since my EFI is too big to be attached directly. 

Edited by xefyr0
Clarity

Since I'm not going to be much help with the advanced diagnosis, I'll share what works for me with my rig that is different from your posted config.plist:

  • AudioDevice: PciRoot(0x0)/Pci(0x1F,0x3)
  • AudioOut: 1
  • MinimumVolume: 20
  • PlayChime: Auto
  • SetupDelay: 0
  • VolumeAmplifier: 70

 

 

13 hours ago, tonyx86 said:

Since I'm not going to be much help with the advanced diagnosis, I'll share what works for me with my rig that is different from your posted config.plist:

  • AudioDevice: PciRoot(0x0)/Pci(0x1F,0x3)
  • AudioOut: 1
  • MinimumVolume: 20
  • PlayChime: Auto
  • SetupDelay: 0
  • VolumeAmplifier: 70

 

 

Thank you for the suggestion, but it didn't work. OpenCore log attached. It just says "Cannot find specified audio device - Not Found" even though my HDEF device works perfectly fine after booting at the same PCI address as the one you provided. I'm beginning to suspect that this may be a bona-fide OpenCore bug but acidanthera strongly discourages posting on the bugtracker unless the post includes a solution or workaround, which is something I lack the technical know-how to find.

opencore-2021-05-11-155812.txt

@xefyr0 I think you might be on to something with your guess about one of the Audio Controllers being NVidia.

02:275 00:003 OCAU: Matching PciRoot(0x0)/Pci(0x1F,0x3)/VenMsg(A9003FEB-D806-41DB-A491-5405FEEF46C3,00000000)...
02:278 00:003 OCAU: 1/1 PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x1)/VenMsg(A9003FEB-D806-41DB-A491-5405FEEF46C3,00000000) (3 outputs) - Success
02:281 00:003 OCAU: Cannot find specified audio device - Not Found

I don't have OC experience with NVidia and Intel dual-graphics.  Have you tried disabling NVidia and attempting to configure with only Intel?

7 minutes ago, tonyx86 said:

@xefyr0 I think you might be on to something with your guess about one of the Audio Controllers being NVidia.


02:275 00:003 OCAU: Matching PciRoot(0x0)/Pci(0x1F,0x3)/VenMsg(A9003FEB-D806-41DB-A491-5405FEEF46C3,00000000)...
02:278 00:003 OCAU: 1/1 PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x1)/VenMsg(A9003FEB-D806-41DB-A491-5405FEEF46C3,00000000) (3 outputs) - Success
02:281 00:003 OCAU: Cannot find specified audio device - Not Found

I don't have OC experience with NVidia and Intel dual-graphics.  Have you tried disabling NVidia and attempting to configure with only Intel?

AFAIK My NVIDIA graphics card has been disabled with SSDT patching from the start-I had followed this guide for it and the SSDT I compiled can be found in the EFI folder in the Google Drive link. The SSDT seems to be working based on the fact that System Report only has the iGPU and integrated display under the Graphics/Displays section.

4 hours ago, tonyx86 said:

Ok - that's all I got.  Sorry I couldn't help.

No worries. Thanks for the attempt anyways.
I'm beginning to doubt that a solution is even possible at this point, and if it is it would be not worth the effort.

@xefyr0 In my opinion - not worth the effort.  Bootchime just makes boot-time longer (loading AudioDxe driver).  It's not enabled on any of my own hacks.

×
×
  • Create New...