david279 Posted May 3, 2020 Share Posted May 3, 2020 5 hours ago, Max said: did it work oob or u used some special kext or ssdt of some kind to make it work. Worked out the box. asmedia 3.0 controller on the motherboard. No kext needed. Its a type A and type C set of ports on my botherboard. Quote Link to comment
Max Posted May 3, 2020 Share Posted May 3, 2020 1 minute ago, david279 said: Worked out the box. asmedia 3.0 controller on the motherboard. No kext needed. Its a type A and type C set of ports on my botherboard. oyieee that's weird, as far as i have read asmedia controller need some extra work to be done even on bare metal hackintosh. even @ghost82 have said that he ended up getting inateck usb card as wasn't able to make his asmedia controller work. as far as i have read controllers that connected directly to chipset are easier to work with compared to asmedia ones, and my z97d3h's usb ports are all connected to chipset only still they dont work (they work but at such a low speed which, they might as well not work at all). Quote Link to comment
ghost82 Posted May 3, 2020 Share Posted May 3, 2020 (edited) 13 minutes ago, Max said: even @ghost82 have said that he ended up getting inateck usb card as wasn't able to make his asmedia controller work. There are different asmedia controllers. Mine didn't work well: panic if I boot with something connected to usb and needed to attach, detach and attach again to get recognized. All depends on the chipset type. Edited May 3, 2020 by ghost82 Quote Link to comment
david279 Posted May 4, 2020 Share Posted May 4, 2020 Updated Opencore to 0.5.8. Added the new apfs changes and made new changes from the difference.pdf and it all booted up OK. Happy updating. Quote Link to comment
Max Posted May 4, 2020 Share Posted May 4, 2020 are the new versions of opencore (0.5.7 onwards) compatible with nvidia web drivers, i think i have read somewhere that nvdadrv wasn't needed anymore or it doesn't work or its deprecated or something like that. Quote Link to comment
ghost82 Posted May 5, 2020 Share Posted May 5, 2020 13 hours ago, Max said: are the new versions of opencore (0.5.7 onwards) compatible with nvidia web drivers Yes, just enable the nvda_drv in NVRAM section in the config plist. Quote Link to comment
chrisjenx Posted May 9, 2020 Share Posted May 9, 2020 (edited) Thanks for your insight on the topic of improving performance, my vm is racing right now, the only thing I can't seem to get to work is nested virtualization, but I think I'm resigning to the fact that's because I have a AMD cpu so OSx only looks for Intel VT-x not AMD-VT? I've added svm cpu flags, but doesn't seem to help. Anyone got nested virtualization working at all? Let alone with an AMD CPU? Edit: Normally wouldn't care, you know unraid having VM support, but for Android Emulators they only support VirtualBox and Haxm, I can use a usb device of course in the mean time. Edited May 9, 2020 by chrisjenx Quote Link to comment
x3sphere Posted May 9, 2020 Share Posted May 9, 2020 1 hour ago, chrisjenx said: Thanks for your insight on the topic of improving performance, my vm is racing right now, the only thing I can't seem to get to work is nested virtualization, but I think I'm resigning to the fact that's because I have a AMD cpu so OSx only looks for Intel VT-x not AMD-VT? I've added svm cpu flags, but doesn't seem to help. Anyone got nested virtualization working at all? Let alone with an AMD CPU? Edit: Normally wouldn't care, you know unraid having VM support, but for Android Emulators they only support VirtualBox and Haxm, I can use a usb device of course in the mean time. Nested virtualization works here. Adding +hypervisor and +vmx flags got it working on an Intel CPU for me. Also using host-passthrough for CPU model, which I guess won't work with AMD CPU unless you apply patches. Without host-passthrough, the Android emulator was very slow. Even with this configuration it still is slow compared to native, but is usable. Quote Link to comment
chrisjenx Posted May 10, 2020 Share Posted May 10, 2020 6 hours ago, x3sphere said: Nested virtualization works here. Adding +hypervisor and +vmx flags got it working on an Intel CPU for me. Also using host-passthrough for CPU model, which I guess won't work with AMD CPU unless you apply patches. Without host-passthrough, the Android emulator was very slow. Even with this configuration it still is slow compared to native, but is usable. Are you able to post your config? I don't think VMX is supported by AMD? Only SVM - so yeah would require some sort of emulation I'm guessing? Would be happy to use VirtualBox and Genymotion thats less picky, but couldn't get that working either even with SVM passthrough... Quote Link to comment
chalboly Posted May 13, 2020 Share Posted May 13, 2020 Is it possible to expose system temperatures (CPU, NVMe, etc) to macOS? My main concern is the NVMe temp readings, as I'm passing through the entire device and can't see temp info in Unraid. 1 Quote Link to comment
x3sphere Posted May 13, 2020 Share Posted May 13, 2020 On 5/9/2020 at 8:18 PM, chrisjenx said: Are you able to post your config? I don't think VMX is supported by AMD? Only SVM - so yeah would require some sort of emulation I'm guessing? Would be happy to use VirtualBox and Genymotion thats less picky, but couldn't get that working either even with SVM passthrough... Here's my config: https://pastebin.com/ptt15R7K 1 Quote Link to comment
chrisjenx Posted May 14, 2020 Share Posted May 14, 2020 17 hours ago, x3sphere said: Here's my config: https://pastebin.com/ptt15R7K Yeah deffo an osx-amd incompatability, as I basically had that minus one flag. Guessing HAXM and Virtual box only look for vxm inside OSx and not SVM. Wondering if it would be possible to mod OSx to accept AMD cpu and pass through the AMD cpu: https://amd-osx.com/2019/10/10/macos-catalina-is-on-amd/ Wonder if that would at least let VirtualBox see the AMD VT flags? Quote Link to comment
ilf Posted May 15, 2020 Share Posted May 15, 2020 I installed HS with OpenCore, because I have an ATI 5450, and HS is the latest that supports that hardware. Previously I used clover and managed to make the video work with HS. I don't use the VM a lot, just to convert some negatives in Lightroom that later I process mostly in Darktable under Linux, so my needs are pretty modest. However with OpenCore I cannot make the ATI work. Previously I used Inject ATI, FakeID and Eulemur as framebuffer name, however I do not know how to achieve that with OpenCore. I tried adding a dictionary for my card under Root -> DeviceProperties -> PciRoot(0x1)/Pci(0x2,0x2)/Pci(0x0,0x0) -> by setting the device-id and vendor-id to 68e0 & 1002 (this is the 0x68e01002 Fake ATI id), however this did not work for me. Does anyone know how to achieve what clover did, under OpenCore. I am starting to regret reinstalling the vm, but I just wanted to make HDMI Audio work and wasn't able to do it under clover, so I though why not give OpenCore a try. Btw, I like opencore, it's cleaner and far more logical, however documentation is scarce and even the source code doesn't give me enough pointers how to fix certain problems. Btw, I would just drop my 2 cents here on the proposed libvirt xml file. Instead of passing qemu arguments, I usually declare policies i.e. <cpu mode="custom" match="exact" check="full"> <model fallback="forbid">Penryn</model> <vendor>GenuineIntel</vendor> <feature policy="require" name="vme"/> <feature policy="require" name="x2apic"/> <feature policy="require" name="xsave"/> <feature policy="require" name="xsaveopt"/> <feature policy="require" name="pcid"/> <feature policy="require" name="rdrand"/> <feature policy="require" name="f16c"/> <feature policy="require" name="fma"/> <feature policy="require" name="hypervisor"/> <feature policy="require" name="invtsc"/> <feature policy="require" name="avx"/> <feature policy="require" name="avx2"/> <feature policy="require" name="aes"/> <feature policy="require" name="ssse3"/> <feature policy="require" name="sse4.2"/> <feature policy="require" name="popcnt"/> <feature policy="require" name="bmi1"/> <feature policy="require" name="bmi2"/> </cpu> Which I think is the 'official' libvirt way, however I would like to know if there is any advantage to passing qemu arguments through <qemu:commandline> in libvirt, but that is secondary and more of an academic question ? Quote Link to comment
ghost82 Posted May 16, 2020 Share Posted May 16, 2020 9 hours ago, ilf said: However with OpenCore I cannot make the ATI work In opencore config you should add the device-id key in the device properties add section: <key>PciRoot(0x1)/Pci(0x2,0x2)/Pci(0x0,0x0)</key> <dict> <key>device-id</key> <data>sGc=</data> </dict> sGc= is Base64 data for hex b067. For framebuffer I think you have a clover patch?Just convert to be used with opencore: take the following as an example for Orinoco framebuffer patch: <key>Patch</key> <array> <dict> <key>Base</key> <string></string> <key>Comment</key> <string>Orinoco Patch for RX 580</string> <key>Count</key> <integer>1</integer> <key>Enabled</key> <true/> <key>Find</key> <data> AAQAAAQDAAAAAQEBAAAAABIEBgEAAAAAAAQAAAQDAAAA AQIBAAAAACIFBAMAAAAAAAgAAAQCAAAAAQMAAAAAABEC AQIAAAAAAAgAAAQCAAAAAQQAAAAAACEDBQQAAAAABAAA AAQAAAAAAQUAAAAAAAAAAwYAAAAA </data> <key>Identifier</key> <string>com.apple.kext.AMD9500Controller</string> <key>Limit</key> <integer>0</integer> <key>Mask</key> <data> </data> <key>MatchKernel</key> <string></string> <key>Replace</key> <data> AAQAAAQDAAAAAQEAAAAAABIEBgEAAAAAAAQAAAQDAAAA AQIAAAAAACIFBAMAAAAAAAgAAAQCAAAAAQMAAAAAABEC AQIAAAAAAAgAAAQCAAAAAQQAAAAAACEDBQQAAAAABAAA ABQCAAAAAQUAAAAAABAAAwYAAAAA </data> <key>ReplaceMask</key> <data> </data> <key>Skip</key> <integer>0</integer> </dict> You can use Hackintool to convert hex from clover to Base64 for opencore: And use lilu+whatevergreen. 1 Quote Link to comment
ilf Posted May 16, 2020 Share Posted May 16, 2020 Hi, quick reply. I tried with device-id, but it did not work. Since my post, I went a bit mad, and reinstalled the machine back with clover (just to realize how convoluted it is and how bad it is), so now it works, however my plan is to install another one with HS and opencore and play around till I make it work, this way I would still be able to have a functioning MacOS while trying to work out OpenCore. Anyway, back to the device-id, what I did was put under the PCI device path: device-id = 68e0 & vendor-id = 1002 also added the ATY,device-id = 68f9 & ATY,vendor-id = 1002. My assumption is that device-id is the desired one, while the ATY,device-id is the real one that I want changed (btw, I tried it vice-a-versa, too, to no avail). Those were all base64 encoded values of course (i.e. data). However when I look at your proposal, you seem to flip the value 67b0 (which is the ID of R290, not my card, but I get what you mean) to b067, so did I mess up the endianness ? If I understood correctly I should set device-id = b64(e068) and ATY,device-id = b64(f968)? I can skip the vendor-id, I think, as it is not changing anyway. There is another key that I don't know what it is and if it is critical. According to this Clover conversion readme of OpenCore in the FakeAti section there is also "@0,compatible" key, that I have no idea what it should be, what type it is, or is it mandatory. I couldn't figure it out from the source code. If I'm not successful with doing it through the config.plist I'm also thinking about the SSSD GPU SPOOF from opencore, which would be pain, as I don't know how to easily find the ACPI path of the video card under a VM. As to the frame-buffer, my config.plist (the clover one) says this: <key>Graphics</key> <dict> <key>DualLink</key> <integer>0</integer> <key>FBName</key> <string>Eulemur</string> <key>Inject</key> <dict> <key>ATI</key> <true/> </dict> <key>VideoPorts</key> <integer>3</integer> </dict> Again, I'm not very well versed in the hackintosh ways, I'm a linux guy by trade, who happens to shoot film in his spare time :). Sidenote to libvirt.xml: My proposal of setting cpu features as policies works with opencore flawlessly, when I attempted using it with Clover it did not work as expected so I had to revert to qemu arguments in the libvirt.xml. You live, you learn, I guess. Quote Link to comment
ghost82 Posted May 18, 2020 Share Posted May 18, 2020 On 5/16/2020 at 7:52 PM, ilf said: Anyway, back to the device-id, what I did was put under the PCI device path: device-id = 68e0 & vendor-id = 1002 also added the ATY,device-id = 68f9 & ATY,vendor-id = 1002 Sorry, not an expert because my gpu works out of the box, but reading here and there I would try this: <key>DeviceProperties</key> <dict> <key>Add</key> <dict> <key>PciRoot---HERE-GPU-ADDRESS</key> <dict> <key>ATY,DeviceID</key> <data>4Gg=</data> </dict> <dict> <key>@0,compatible</key> <data>QVRZLEV1bGVtdXI=</data> </dict> <dict> <key>ATY,vendor-id</key> <data>AhA=</data> </dict> </dict> I think values for device-id and vendor id should be "swapped". If it doesn't work try to add also device-id and vendor-id: <key>DeviceProperties</key> <dict> <key>Add</key> <dict> <key>PciRoot---HERE-GPU-ADDRESS</key> <dict> <key>device-id</key> <data>4Gg=</data> </dict> <dict> <key>ATY,DeviceID</key> <data>4Gg=</data> </dict> <dict> <key>@0,compatible</key> <data>QVRZLEV1bGVtdXI=</data> </dict> <dict> <key>vendor-id</key> <data>AhA=</data> </dict> <dict> <key>ATY,vendor-id</key> <data>AhA=</data> </dict> </dict> Here: https://github.com/dortania/OpenCore-Desktop-Guide/blob/master/clover-conversion/Clover-config.md you can see all the properties which should be added to opencore for FakeAti. If both doesn't work try to put "not swapped" values. Values should be not the real ones but the spoofed ones. @0,compatible should inject the Eulemur framebuffer. Quote Link to comment
david279 Posted May 26, 2020 Share Posted May 26, 2020 10.15.5 is out make your backup and be safe out there. 1 Quote Link to comment
chrisjenx Posted May 26, 2020 Share Posted May 26, 2020 4 minutes ago, david279 said: 10.15.5 is out make your backup and be safe out there. If y'all haven't already I would setup TimeMachine to a different box. I've had to restore twice already! Quote Link to comment
david279 Posted May 26, 2020 Share Posted May 26, 2020 I've had that setup for since forever but making a backup a vdisk is dead easy. Quote Link to comment
chalboly Posted May 26, 2020 Share Posted May 26, 2020 Any successful update to 10.15.5 yet? Making a backup now but I'm still on Opencore 0.5.7, I was waiting on next Monday's release. Quote Link to comment
david279 Posted May 26, 2020 Share Posted May 26, 2020 Updated all good over here. I'm on opencore 0.5.8. Quote Link to comment
ghost82 Posted May 27, 2020 Share Posted May 27, 2020 Smooth update here too, opencore 0.5.9 (master branch). Thanks david279, faster than apple notifier Quote Link to comment
Mason736 Posted May 27, 2020 Share Posted May 27, 2020 First I want to thank everyone here for their work and contributions. I was FINALLY able to get my Catalina up and running stable. Everything works, including passed through GPU, except the audio. I have Lilu and WhateverGreen kexts installed, which helped with passing through the GPU. I have also set the code correctly, i think to allow multifuction to work, and changed the bus for the GPU/Audio to be on the same bus: <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </source> <alias name='hostdev0'/> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0' multifunction='on'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x04' slot='0x00' function='0x1'/> </source> <alias name='hostdev1'/> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x1'/> </hostdev> I also installed the AppleALC kext, but it seemed to have no effect. I am seeing the HDMI audio out in the sound preferences, but I am not getting any sound coming through the VM via NoMachine. The server running the VM is headless, so there is no monitor or HDMI hookup directly. I'm using a headless ghost HDMI device to initiate the graphics adapter to work. The GPU I'm using is an AMD WX 4100 4 GB, and is correctly seen by the system. No matter which audio output choice I select, HDMI2K, or NoMachine Audio, I do not get any audio. 1 Quote Link to comment
david279 Posted May 27, 2020 Share Posted May 27, 2020 You have it working but you are not going to get audio out thru nomachine, the hdmi2k has to be selected. Also the audio is going to come directly from the HDMI so a monitor or sound out from that monitor is where the sound is going to come from. Is the hdmi2k a dummy plug or something? Quote Link to comment
david279 Posted May 27, 2020 Share Posted May 27, 2020 Headless will not get any sound without using some kinda fancy audio software to route the sound. So you have a little hill to climb. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.