Jump to content

ghost82

Members
  • Posts

    2,726
  • Joined

  • Last visited

  • Days Won

    19

Everything posted by ghost82

  1. Yes, just to point out that my xml config was wrong. I checked some weeks ago and it seemed to me that it was ok, maybe I was tired, because it wasn't set at all according to your instructions.
  2. People, we have a genius here, seriously. It works! Moving the built-in audio to bus 0x00 and slot 0x02 finally makes AppleALC work. So, resuming: - AppleALC+Lilu kexts in CLOVER kexts Other folder - built-in audio bus 0x00 and slot 0x0y (where y is a number different from 0) - In clover config.plist: Devices --> Audio: Inject=No - In clover config.plist: Devices --> Audio: check ResetHDA - In clover config.plist: Devices --> Properties --> Devices: fill in with the proper address (use gfxutil with command gfxutil-1.79b-RELEASE/gfxutil -f HDEF) - In clover config.plist: Devices --> Properties --> Add property key: layout-id, Property value: x (where x is a number reflecting the audio layout, see here for layouts for supported codecs: https://github.com/acidanthera/applealc/wiki/supported-codecs ) (my working layout is 7), Value type: NUMBER - (Optional) In clover config.plist: Boot --> add boot arguments -liludbg and -alcdbg: this will work if you use the DEBUG kexts; when your system boots you can give this command in terminal to check for Lilu/AppleALC: log show --predicate 'process == "kernel" AND (eventMessage CONTAINS "AppleALC" OR eventMessage CONTAINS "Lilu")' --style syslog --source Unfortunately I cannot check for HDMI audio of my GPU as I don't have a hdmi cable, but from the attached log it seems ok (HDAU). Relevant parts of the xml for the vm: Passed through GPU and audio of the GPU: <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x83' slot='0x00' function='0x0'/> </source> <alias name='hostdev0'/> <rom file='/mnt/user/GTXTitanBlack.dump'/> <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0' multifunction='on'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x83' slot='0x00' function='0x1'/> </source> <alias name='hostdev1'/> <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x1'/> </hostdev> As pointed out by Leoyzen, gpu and gpu audio must be in same bus (in this case 0x03) and different function (0x0 for gpu, 0x1 for gpu audio). Built-in audio (passed through): <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/> </source> <alias name='hostdev2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </hostdev> Built-in audio in bus 0x00. Siri is working ok. Clover settings for built-in audio I'm saving the VoodooHDA as a second option for the audio and use AppleALC. @Leoyzen May I ask you, what was the input to make me change the bus of the built-in audio? lilu-AppleALC-log.txt
  3. If I look at the Lilu/AppleALC log I can see this: 2019-10-17 18:02:38.411160+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found GFX0 on pci bridge 2019-10-17 18:02:38.411164+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData vendor-id has 10DE value 2019-10-17 18:02:38.411169+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData class-code has 30000 value 2019-10-17 18:02:38.411173+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found GFX0 device GFX0 at pci-bridge by 10DE 2019-10-17 18:02:38.411178+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData vendor-id has 1B36 value 2019-10-17 18:02:38.411181+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData class-code has 60400 value 2019-10-17 18:02:38.411185+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found pci device pci-bridge 0x1b36 0x60400 2019-10-17 18:02:38.411188+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found pci bridge pci-bridge 2019-10-17 18:02:38.411193+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found IOPP on pci bridge 2019-10-17 18:02:38.411196+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData vendor-id was not found 2019-10-17 18:02:38.411200+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found HDEF on pci bridge 2019-10-17 18:02:38.411203+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData vendor-id has 10DE value 2019-10-17 18:02:38.411207+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData class-code has 40300 value 2019-10-17 18:02:38.411210+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found audio device HDEF at pci-bridge by 10DE 2019-10-17 18:02:38.411215+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) marking audio device as HDEF at HDEF 2019-10-17 18:02:38.411218+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData vendor-id has 1B36 value 2019-10-17 18:02:38.411222+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData class-code has 60400 value 2019-10-17 18:02:38.411226+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found pci device pci-bridge 0x1b36 0x60400 2019-10-17 18:02:38.411229+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found pci bridge pci-bridge 2019-10-17 18:02:38.411233+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found IOPP on pci bridge 2019-10-17 18:02:38.411236+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData vendor-id was not found 2019-10-17 18:02:38.411240+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found pci8086,1d20 on pci bridge 2019-10-17 18:02:38.411243+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData vendor-id has 8086 value 2019-10-17 18:02:38.411247+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData class-code has 40300 value 2019-10-17 18:02:38.411250+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found audio device pci8086,1d20 at pci-bridge by 8086 2019-10-17 18:02:38.411255+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData vendor-id has 1B36 value 2019-10-17 18:02:38.411258+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData class-code has 60400 value 2019-10-17 18:02:38.411262+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found pci device pci-bridge 0x1b36 0x60400 2019-10-17 18:02:38.411266+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found pci bridge pci-bridge 2019-10-17 18:02:38.411270+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found IOPP on pci bridge For what I'm understanding GFX0 (the Nvidia card with audio I'm passing through) is detected by Lilu and the audio is detected as HDEF and marked. (found audio device HDEF at pci-bridge by 10DE, marking audio device as HDEF at HDEF). The onboard audio is detected by Lilu (found audio device pci8086,1d20 at pci-bridge by 8086) but it is not marked as audio device. Relevant Lilu code is in Sources/kern_devinfo.cpp: void DeviceInfo::grabDevicesFromPciRoot(IORegistryEntry *pciRoot) { auto iterator = pciRoot->getChildIterator(gIODTPlane); if (iterator) { IORegistryEntry *obj = nullptr; while ((obj = OSDynamicCast(IORegistryEntry, iterator->getNextObject())) != nullptr) { uint32_t vendor = 0, code = 0; bool gotVendor = WIOKit::getOSDataValue(obj, "vendor-id", vendor); bool gotClass = WIOKit::getOSDataValue(obj, "class-code", code); auto name = obj->getName(); DBGLOG("dev", "found pci device %s 0x%x 0x%x", safeString(name), vendor, code); // Strip interface, as we only care about class and subclass code &= WIOKit::ClassCode::PCISubclassMask; if (!gotVendor || !gotClass || (vendor != WIOKit::VendorID::Intel && vendor != WIOKit::VendorID::ATIAMD && vendor != WIOKit::VendorID::AMDZEN && vendor != WIOKit::VendorID::VMware && vendor != WIOKit::VendorID::QEMU)) continue; if (vendor == WIOKit::VendorID::Intel && (code == WIOKit::ClassCode::DisplayController || code == WIOKit::ClassCode::VGAController)) { DBGLOG("dev", "found IGPU device %s", safeString(name)); videoBuiltin = obj; requestedExternalSwitchOff |= videoBuiltin->getProperty(RequestedExternalSwitchOffName) != nullptr; } else if (code == WIOKit::ClassCode::HDADevice || code == WIOKit::ClassCode::HDAMmDevice) { if (vendor == WIOKit::VendorID::Intel && name && (!strcmp(name, "HDAU") || !strcmp(name, "B0D3"))) { DBGLOG("dev", "found HDAU device %s", safeString(name)); audioBuiltinDigital = obj; } else { DBGLOG("dev", "found HDEF device %s", safeString(name)); audioBuiltinAnalog = obj; } } else if (vendor == WIOKit::VendorID::Intel && (code == WIOKit::ClassCode::IMEI || (name && (!strcmp(name, "IMEI") || !strcmp(name, "HECI") || !strcmp(name, "MEI"))))) { // Fortunately IMEI is always made by Intel DBGLOG("dev", "found IMEI device %s", safeString(name)); managementEngine = obj; } else if (code == WIOKit::ClassCode::PCIBridge) { DBGLOG("dev", "found pci bridge %s", safeString(name)); auto pciiterator = IORegistryIterator::iterateOver(obj, gIOServicePlane, kIORegistryIterateRecursively); if (pciiterator) { ExternalVideo v {}; IORegistryEntry *pciobj = nullptr; while ((pciobj = OSDynamicCast(IORegistryEntry, pciiterator->getNextObject())) != nullptr) { uint32_t pcivendor = 0, pcicode = 0; DBGLOG("dev", "found %s on pci bridge", safeString(pciobj->getName())); if (WIOKit::getOSDataValue(pciobj, "vendor-id", pcivendor) && WIOKit::getOSDataValue(pciobj, "class-code", pcicode)) { pcicode &= WIOKit::ClassCode::PCISubclassMask; if (pcicode == WIOKit::ClassCode::DisplayController || pcicode == WIOKit::ClassCode::VGAController || pcicode == WIOKit::ClassCode::Ex3DController || pcicode == WIOKit::ClassCode::XGAController) { DBGLOG("dev", "found GFX0 device %s at %s by %04X", safeString(pciobj->getName()), safeString(name), pcivendor); v.video = pciobj; v.vendor = pcivendor; } else if (pcicode == WIOKit::ClassCode::HDADevice || pcicode == WIOKit::ClassCode::HDAMmDevice) { DBGLOG("dev", "found audio device %s at %s by %04X", safeString(pciobj->getName()), safeString(name), pcivendor); v.audio = pciobj; } } } pciiterator->release(); if (v.video) { DBGLOG_COND(v.audio, "dev", "marking audio device as HDAU at %s", safeString(v.audio->getName())); if (!videoExternal.push_back(v)) SYSLOG("dev", "failed to push video gpu"); } else if (v.audio && !audioBuiltinAnalog) { // On modern AMD platforms or VMware built-in audio devices sits on a PCI bridge just any other device. // On AMD it has a distinct Ryzen device-id for the time being, yet on VMware it is just Intel. // To distinguish the devices we use audio card presence as a marker. DBGLOG("dev", "marking audio device as HDEF at %s", safeString(v.audio->getName())); audioBuiltinAnalog = v.audio; } } } } iterator->release(); } else { SYSLOG("dev", "failed to obtain PCI devices iterator from %s", safeString(pciRoot->getName())); } } Trying to understand why the onboard audio is not marked...
  4. I tried all the layouts for ALC898: 1, 2, 3, 5, 7, 11, 13, 28, 65, 66, 78, 99, 101: no luck.. When you say that AppleALC correctly found a device are you refering to this? 2019-10-17 18:02:38.411510+0200 localhost kernel[0]: (Lilu) AppleALC: iokit @ (DBG) getOSData vendor-id has 10DE value 2019-10-17 18:02:38.411514+0200 localhost kernel[0]: (Lilu) AppleALC: iokit @ (DBG) getOSData device-id has E1A value 2019-10-17 18:02:38.411518+0200 localhost kernel[0]: (Lilu) AppleALC: iokit @ (DBG) getOSData revision-id has A1 value 2019-10-17 18:02:38.411522+0200 localhost kernel[0]: (Lilu) AppleALC: iokit @ (DBG) getOSData alc-layout-id has 1 value 2019-10-17 18:02:38.411529+0200 localhost kernel[0]: (Lilu) AppleALC: alc @ (DBG) found 1 audio controllers Because this is the Nvidia audio, which I'm not interested in at this time. Lilu is able to find the other audio device: 2019-10-17 18:02:38.411240+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found pci8086,1d20 on pci bridge 2019-10-17 18:02:38.411243+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData vendor-id has 8086 value 2019-10-17 18:02:38.411247+0200 localhost kernel[0]: (Lilu) Lilu: iokit @ (DBG) getOSData class-code has 40300 value 2019-10-17 18:02:38.411250+0200 localhost kernel[0]: (Lilu) Lilu: dev @ (DBG) found audio device pci8086,1d20 at pci-bridge by 8086 But no traces of AppleALC doing something with it. Also strange that DPCIManager doesn't list any codec name for 0x80861D20..? And more strange, after all these tests I put again my VoodooHDA.kext and Siri now works...mmmm Codec name now ok with VoodooHDA:
  5. You mean trying all these layouts for Realtek alc898? https://github.com/acidanthera/AppleALC/tree/master/Resources/ALC898
  6. Thanks, here it is. Here also my clover configuration (set accordingly to instructions on https://github.com/acidanthera/AppleALC/wiki/Installation-and-usage) AppleALC-log.txt
  7. Anyone had success with AppleALC? I'm currently using VoodooHDA for the audio: it works quite ok, I have sound from the speakers, external microphone and webcam microphone recognized, however Siri is not working (it keeps repeating sorry, can you repeat?). Microphone is working with other apps, such as quicktime and skype. With Mojave I was able to make Siri to work with VoodooHDA, then after uninstalling it to try AppleALC Siri doesn't work anymore; I don't know how VoodooHDA worked with Siri, I just noticed that the list on the preference panel -> audio was changed a bit (listing the same audio ports but with different names if I remember well) and Siri worked; then, the names in the list changed again, but it continued to work with Siri. I'd want to try with AppleALC but I'm stuck: I have the audio passthrough (0x80861D20): I tried AppleALC injection with clover with different layout id injected from devices -> properties or with boot argument alcid=numberOfTheLayout without success. One thing I noticed is that in ioreg the VoodooHDA is not listed under HDEF: maybe a problem similar to Lilu before adding the proper vendor id to the code, or is it ok? Edit: from insanelymac: "These are what they appear to be the currently Intel pci-ids supported by AppleHDAController: 8086:1D20 Name: C600/X79 series chipset High Definition Audio Controller (Patsburg)" Shouldn't just work out of the box?
  8. I found that the difference is due to the "depth-of-field" test which returns a value of zero for the opencl test: searching on the web I didn't understand if it is a probelm of geekbench or if it is related to the lack of nvidia webdrivers, I think the latter.
  9. Just to add to your findings that I also have problems with Catalina and icloud login with e1000-82545em (only in the preference panel, it works ok with the web browser). I cannot track what apple checks, since sometimes it works sometimes it doesn't work, and it fails with very generic errors. iCloud was working with e1000-82545em and Catalina, iMessage didn't work, so I logout from all, reset icloud, removed the mac os vm from the list of "find my phone" and "my devices". I also enabled the 2 factor authentication, the code is delivered than a message is displayed ("cannot verify your identity") than it hangs (preference panel). I have to try the ethernet passthrough and wait for the mac pro 2019 to be on the market as my last chance.
  10. Probably I was wrong, as lilu/WEG were loaded with clover injection but I always had a kernel panic because MCEReporterDisabler was not able to kill AppleIntelMCEReporter, and so I thougth that clover was not able to inject the kext. As I wrote swapping MCEReporterDisabler with AppleMCEReporterDisabler solved all my problems. I moved the kexts to "Other" folder in clover efi as you.
  11. I found the solution! Apparently the problem was with the MCEReporterDisabler.kext found also in this thread: I don't know why but it doesn't work anymore, at least with my catalina 19A602. Solution is to replace MCEReporterDisabler.kext with AppleMCEReporterDisabler.kext (attached to this post). This kext is very similar to MCEReporterDisabler.kext and it was released 8 days ago by naveenkrdy on github: see here for reference: https://github.com/acidanthera/bugtracker/issues/424 I can now inject all kexts with clover, boot into recovery with primary display ok AppleMCEReporterDisabler.kext.zip
  12. Yes, I always rebuild the cache with kext utility before a restart. I tried deleting lilu and whatevergreen from /Library/Extensions and leaving them on clover efi kexts 10.15 folder. So now I have: In /EFI/CLOVER/kexts/10.15 --> Whatevergreen.kext Lilu.kext In /Library/Extensions --> MCEReporterDisabler.kext ...and it works, no black screen, and if I run kextstat I can see both kexts loaded. Does MCEReporterDisabler.kext must be in only one folder or it can be in both folders? If I move the MCEReporterDisabler.kext to Clover EFI and delete the kext in /L/E and it doesn't work I will not able to boot..but I can save a clover image with smbios imac18,2 to recover..I will try. EDIT: it works if I boot to Macintosh-HD: I deleted MCEReporterDisabler.kext, Whatevergreen.kext and Lilu.kext from /L/E and placed only in /EFI/CLOVER/kexts/10.15 It doesn't work to access the recovery: I think that MCEReporterDisabler.kext is not loaded since I have a kernel panic related to mp_kdp_enter() can't get x86_topo_lock! Debugging anyway! #YOLO, Kernel Extensions in backtrace: com.apple.driver.AppleIntelMCEReporter(115.0)[AAF2300A-7F8A-38EE-B484-05A9F55D7DB4]@0xffffff7f9edba000->0xffffff7f9edccfff MCEReporterDisabler.kext is not loaded at all in kextstat (running Catalina 19A602)
  13. Here it is. This is a log booting to Macintosh-HD without panic. It seems the kexts are seen and injected (?), but not working...mmmm bootlog.txt
  14. It seems my clover is not injecting kexts at startup...Actually I think it never worked the kext injection in my case... Proof is that MCEReporterDisabler.kext (which is in EFI/CLOVER/kexts/Other) is not loaded once a reboot is required after an os update and I have a kernel panic since I'm using MacPro7,1; so everytime I have to change my SMBIOS settings to Imac18,2 to be able to complete the update; moreover, since Lilu/WEG are not injected and since I have GPU passthrough I cannot see nothing on my display, so all the update process is in the dark as I cannot check if it stucks or if it proceeds ok. My clover version is the latest (5096), my vm load first clover.qcow2, then disk3.img, where there is the mac os: so clover is not on the same partition of the mac os (Edit: also tried on the same partition, vm with only disk3.img, same unsuccesful result). What I tried, without success: - I copied also the kexts in EFI/CLOVER/kexts (clover.qcow2 disk) - I copied also the kexts in EFI/CLOVER/kexts/10.15 (clover.qcow2 disk) - I copied also the kexts in EFI/CLOVER/kexts (EFI partition of disk3.img disk) - I copied also the kexts in EFI/CLOVER/kexts/Other (EFI partition of disk3.img disk) - I copied also the kexts in EFI/CLOVER/kexts/10.15 (EFI partition of disk3.img disk) Here is the structure of the EFI folders: Here is the clover configurator (Inject kexts=yes) Obviously, Lilu/WEG and MCEReporterDisabler work in /Library/Extensions. Now that I can use Lilu/WEG and since Lilu/WEG should work also for recovery/installation I'd want to be able to inject these kexts through clover. What am I missing and what can I try?
  15. Yes, it looks ok. Unfortunately, I don't know what is causing your issues.
  16. Yes, but it works I think that the 4 slots x 8 Gb is possible (I need to find out what is the logic of those exclamation marks popping out beside the slots...), but I tried few arrangements without success. However it's sure that to avoid memory misconfiguration the mapping of the ram is a must.
  17. Memory misconfiguration problem solved! Finally I mapped al the 12 slots and populated all of them with 2 Gb module each. No more warnings and memory tab is ok. PS: remember to assign the same amount of ram both in clover and unraid vm (xml) (the sum of modules set in Clover should reflect the amount of ram assigned to the vm). Memory tab: System profiler: Clover memory configuration:
  18. Just a quick question to people running Catalina with macpro7,1: I noticed that in "About this mac" I don't have the memory tab. Do you have it? EDIT: I found that it depends on SMBIOS setting "Platform Feature": default setting 0x22 for MacPro7,1 prevents the memory tab from showing; changing it to 0x18 lets the memory tab appear (memory tab should appear since MacPro7,1 will not have inaccessible/soldered RAM..): I cannot understand the warning, that keeps the "memory misconfiguration" popup appear at every start of the VM. This is the translation: Mac contains 12 memory slots; 4 memory slots are populated by a DDR3 1333 MHz memory module. Warning: On this Mac the installed memory exceeds the maximum supported limit. The Mac will use only a single module until less than 768 Gb of RAM will be installed. However, the MAC is using all the 32 Gb installed (tested with diglloyd tools) --> A nonsense for me....
  19. I found out that it is possible to map the ram slots in clover: simply modify the Memory section under SMBIOS. For my system I chose 12 slots, according to the macPro7,1 mainboard. However catalina still reporting memory misconfiguration. MacPro7,1 ram slots: Clover configurator: System information:
  20. I deleted both lilu and WEG, my gpu is working as before, to avoid black screen (no-signal) I only have a kextToPatch to not check the board-id. Same as you, never had proof or noticed anything useful for these kexts.
  21. Sorry for my intrusion: are you passing through the usb controller or is it emulated? I tried several times to passthrough the usb controller and make it work on osx with some degree of success, but not satisfactory. My mainboard is an asus z9pe-d8 ws with 2 ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller: best result I was able to obtain was by installing the GenericUSBXHCI.kext, however it never showed up as a usb 3.0 controller and usb devices did not show at first time, I had to attach, detach and reattach again to make them show.
  22. I noticed that this change should fix errors for apple developer id login, appstore and icloud login. With vmxnet3 I couldn't login in icloud from preference panel (different errors), sometimes working, on reboot sometimes not working. I couldn't login from the browser (tried my main browser firefox, but also apple safari) in icloud and with my developer id (sometimes giving me error related to ssl...). Changing to e1000-82545em solved (at least at the time of writing) these problems: logins successfull both from web browser and preference panel.
  23. So, I'm not alone Activity monitor reports the correct installed memory (16 Gb), if I click on "learn more" on the notification about memory misconfiguration nothing happens (ps: there are a lot of broken links in Catalina).
×
×
  • Create New...