Leoyzen

Members
  • Posts

    173
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Leoyzen

  1. It seems not related to the ethernet but the ROM/board-id/Series Number/UUID. You should search for how to make a available id for you hackintosh. My icloud and applestore works well not without problem.
  2. @MortalMonkeyI don't know if Limtech update unraid module, if it is then the kernel will not work for RC3.... I'll compile a new version later.
  3. I'm made a new thread to discuss hackintosh, because SpaceInvaderOne do not have much replies in this thread and the thread is too deep for peaple to find. you are welcome:
  4. It is time to start a new thread and share my tips, and we can discuss here. For those who don't have much information, see SpaceInvaderOne's **VIDEO GUIDE** How to Install MacOS Mojave or High Sierra as a VM There is not much information about hackintosh in VM, so I will not make an installer guide but some important tips which everyone had miss. If you wanna get quick start(with opencore), I made a github repo to help people. *** if you like those tips, don't hesitate to push the button "like" below this thread, thanks *** 1. CPU 1.1 CPU Model Every Tutorial told us to use Penryn but didn't tell us why. After some digging I've found that CLOVER had some limitation when using simulated newer cpu family than Ivy-Bridge. So If u have older clover, you should use Ivy-Bridge instead of Penryn (I will explain later in performance part)(opencore do not have such problem). with lastest clover (5093) and opencore: If you have Intel Process, you can just use host-passthrough or newer cpu family like Skylake/Cascade-Lake to get most features available. If you have AMD Process, it can't be passthrough directly yet in clover, but is possible when using latest opencore (0.5.2). see this PR I've made. 1.1.1 Why Penryn is recommanded before After digging a lot of code, I have some conclusions why they recommanded Penryn as prefered CPU Model: Penryn is classic, and it missing some features compared to newer generation, which lead to a similar situation with VM. Penryn do not have a msr 0x00000198 leaf to read the perfstatus (like bus ratio, cpu frequency) which the same as a VM. Penryn do not have a msr 0x35 leaf to read topology structure, which also most hypervisors haven't implemented yet.Instead, the MacOS will try to get the topology from acpi when it detect a Penryn process, which the same as a VM. Some bootloaders do have some compatibility issues when using a newer generation in a VM, some causing dividing by zero errors(They can't get correct frequency from acpi or msr, so they may be zero). Some articles have outdated so long from now. It don't have some cpuid features like avx/avx2/bmi/fma so MacOS won't recognized those features even thought you just passed through. 1.2 CPU Topology If you are not using Penryn or a wield cpu thread count, it is safe to remove the cpu-topology line in xml to avoid problems. <cpu mode='host-passthrough' check='none'> <!-- REMOVE THE LINE <topology sockets='1' cores='3' threads='2'/> --> </cpu> I've found it is related to the lack of virtualization support in clover and opencore, also the MacOS. If you using a model newer than Penryn, they try to get the topology from a MSR which the hypervisor(QEMU/KVM) not implement yet, causes some dividing by zero error, and the system won't boot. Update: It is safe to declare the topology of your cpu without any performance reduction now. All you have to do is add one single patch to avoid a x86_validate_topology error (MacOS will compare the acpi topology and the one reading from msr 0x00000198(which most hypervisors don't have), then the error occured.) Although there will still some issues in virtualization support in clover and opencore(like TSC/FSB frequency reading and topology, many hypervisors didn't implement some important msrs like 0x35). Details can be found here(which I submit a PR to opencore to support hypervisor.I'm not familar with svn so clover may not support in near future). 1.3 CPU Performance 1.3.1 Important cpuid features If you gonna get a nearly bare metal cpu performance, you should pass some important cpu features in xml.I will list some and you may try to find which feature your cpu is supported. AVX: without this the newer MacOS will not boot FMA: it is important for metal support AVX2 INVTSC: without this the newer MacOS will not boot BMI1 BMI2 BTW, there is no more need to add "vmware-cpu-freq=on" in the xml because it is default to be on in latest QEMU. 1.3.2 Newer CPU Model is recommanded so MacOS will recognize the features correctly And also, it is important to use a more newer cpu model to make MacOS recognizing the feature correctly. IvyBridge is the bottom line(This is why Penryn is not recommend any more, when you using Penryn, MacOS won't recognize some important feature like avx2 amd fma, then some application will not using those features). 1.3.3 How to check whether the features are recognized correctly in MacOS 1.3.4 Other flags should be notice You should passthrough the "+hypervisor", "+invtsc" and "kvm=on" along with others features. MacOS/opencore will read "0x40000010" to get TSC/FSB frequency only if the hypervisor flag is exposed. QEMU only exposes "0x40000010" leaf when "kvm=on" and "invtsc" is passthroughed. 2. GPU 2.1 GPU assignment It should be noticed that unRaid did not set GPU and its audio correctly by assigning them in same bus but different function, you have to mannaully adjuct it to make it work. IT IS IMPORTANT FOR METAL AND HDMI AUDIO! AND SOMEHOW IT IS RELATED TO AMD PCI RESET BUG! <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x2d' slot='0x00' function='0x0'/> </source> <rom file='/mnt/user/domains/mojave/Sapphire.RX560.4096.170419.rom'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0' multifunction='on'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x2d' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x1'/> </hostdev> As you can see , the gfx and graphic audio should be put in same bus (0x01) but different funciton (gfx in 0x0 and audio in 0x1), otherwise the HDMI audio will not work (even with Lilu/WEG/ALC). If you misconfigured it, it will lead to some unknown issues: The HDMI Audio will not work at all If you using a AMD card, you may face the "pci reset error 127" (seems the driver will reset the grahpics in a wrong way) it also makes onboard audio recognized incorrectly. (AppleALC will confuse which audio is truely onbaord, details can be see here) 2.2 GPU Metal Support Every tutorial told us to use Lilu/WEG to make graphic work and get metal support, but I've found Lilu doesn't work in QEMU/KVM at all! I've submit an issues to Lilu, and Lilu add QEMU support after 1.3.9. You have to use this version or newer to make Lilu/WEG works. (This is unofficially released yet, so use the attachment in this thread). You do not need any patch after using the Lilu I mentioned, the Lilu and WEG do the magic tricks. 2.3 GPU DP/HDMI audio Lilu/WEG/AppleALC only works with correct bus assigned gpu and audio so see part 2.1. If you set under the instruction I've made, then check the other hackintosh audio guide to find next step. 3. Networking There is no much choice of nic in hackintosh VM: e1000-82545em, vmxnet3, virtio, passthrough 3.1 e1000-82545em Advantage: Most stable and OOB, recommanded. Disadvantage: The nic will not work in installing a MacOS(seems the installer did not have such driver).So when installing the MacOS, you'd better change it to vmxnet3 or add a second vmxnet3 nic to get network working. 3.2 vmxnet3 Advantage: Better networking throughput (3Gbs~5Gbs) sometimes Disadvantage: quite buggy ( icloud/apple store not work or lower upload speed). 3.3 virtio apple add virtio-net support after catalina, I've found a way to make it work but now, See this post. Advantage: 30Gb/s Disadvantage: it is buggy too. To use virtio net, you have to do two thing: 1. hotplug virtio ethernet instead of predefined 2. boot args with debug=0x100 and keepsyms=1 3.4 passthrough 3.4.1 ASUS XG-C100C It is known to be problemic when using this nic, but after catalina, you will get native support after update the latest firmware. 3.4.2 X540-AT2 and X550-AT2 3.5 nic xml assignment You should assign the nic in bus 0x00 and slot 0x0y(y is number ,recommand to be greater than 5 which not likely occupied by other devce) to make nic recognized by macos as builtin .This is important to make AppleStore and iCloud work. 4. onboard Audio It's important that: 1. you make the graphics audio correctly by step 2.1 2.change your onboard audio from bus 0x0y, to bus 0x00 and slot 0x0z (where x, y means integer. This will make your onboard audio built-in, so AppleALC can easily handle it. detail and discussion can be found here. <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> the snippet set the onboard audio (00:1b.0) in bus 0x00, slot 0x02, and this makes the audio built-in. 5. USB working on it now. 6. Others 6.1 SMBios When using kvm, the MacPro7,1 and iMacPro1,1 is preferred, because we don't have iGPU and these two SMBios is super match for us. Update 2019.10.29: MacPro7,1 is no longer prefered as MacOS not officially release this product so will lead to some unpredictable problems. 6.2 Exceptions Lilu-1.3.8-DEBUG.zip
  5. DP is with audio,it should work too. According to the code, Lilu will try to find audio device.There are two type of audio: 1.audio with grahpic(indentified by v.video) 2.audio builtin onboard(assigned to variable audioBuiltinAnalog) And Lilu set audio as onboard builtin (audioBuiltinAnalog) only when meet two condition: the audio is in pci-root (not pci-bridge), this is why I sugguest to set audio to bux=0 and slot=y the audio is in pci-bridge, but there is no video under the same bus. This is why I said u make the graphic audio incorrectlly because it will be marked onboard audio If you set graphics audio incorrect, Lilu will not find the video with the audio, then it assigned it to audioBuiltinAnalog; when it meet the true builtin audio, the audioBuiltinAnalog is already occupied by grahpics audio, so it will not recognize the correct onboard audio device. It's interesting. The newest clover works too.
  6. @ghost82@ghost82Try move the onboard audio from bus=x to bus=0 but slot=y.This will try to make the audio builtin. According to the code, it recognized the audio as a addon of pci-device (like graphic audio),and some device already occupied the buildin audio position, did u put your graphic audio in the same bus as gfx? Or post your xml, it maybe something wrong with the bus assignment.
  7. @tpruszinclover or opencorelif opencore it os not a news which I mentioned before. I f clover it would be interesting.
  8. FYI: I found solution here. Move my amd graphic to first pcie slot( nearest to cpu) and add pci=noaer in boot args solved my problem.
  9. Edit at 2019.10.18 Update kernel with : 1. support unRaid 6.8.0rc1 2. add AGESA reset fix patch 3. update r8125 ethernet driver 4. add zenpower to monitor zen cpu sensors. upload at main floor. @sturmstar @opera
  10. @MortalMonkey Have you read the comments below the post? The attachment at first floor is fine for downloading.
  11. @MortalMonkeyAccording to some people's feedback, the kernel should work.Just download it and put it into your usb stick.
  12. @ghost82 Yes, you can find your vendor or others who have the same board to find the specific layoutid first.
  13. @ghost82 AppleALC correctly found the audio device according to your log. You should set Audio layoutid and select "ResetHDA" and test again.
  14. @ghost82 That quite likely. Post you log witb -liludbg and -alcdbg. My board is x570 and currently can't passthrough the audio onboard. I'm not familar with audio (I'm using HDMI audio now) but maybe audio should in some specific APCI node like HDEF/HDAF (I don't know but I guess maybe related), you may should add ssdt to see.
  15. @ghost82According to the log everything works fine. You should know that kext inject to the "cache" not the origin "kext", so when you made some change it is safe to "rebuild kernel/kext cache" before reboot.
  16. I compiled a new Lilu and update QEMU vendor-id, then Lilu and WEG work now! You guys can just download this Lilu and using latest WEG from github then WEG will works now in hackintosh VM, no ssdt and no patches any more.Lilu-1.3.8-DEBUG.zip Edit: Lilu master update the code, so wait Lilu 1.3.9 will add QEMU support.
  17. Yeah, I can confirm Lilu/WEG not work at all in my hackintosh vm, I just boot direct from disk without QEMU and Lilu/WEG works. So I think it's maybe ACPI or QEMU related problem to avoid Lilu get correct graphic. Lilu/WEG is so important for those who have some problem with Grahpics, though we can use ssdt or clover patch, we lost many features of automatic works maked by WEG. Edit: I found that Lilu didn't work with QEMU/kvm by digging Lilu log and code that Lilu doesn't recognize QEMU pci-bridge vendor-id so it continues then can't get graphic device at all, WEG then not work property. It shocks me because every tutourial told us that it should use Lilu/WEG to help recogenize graphic in kvm but it doesn't work at all!! God damned. I just submit an issue to Lilu developers. Here is link.
  18. I'm not seeing any proof (via log or effects) Lilu/WEG actually works for my hackintosh(neither blackscreen fix nor acpi rename etc).So there is definately something wrong may related to AMD build or Graphic Version or qemu(most likely WEG not suit for QEMU ACPI I think). Does anyone actually seeing anything useful by using WEG?
  19. Which bug do you mean? 127 type error of GPU? I can build a custom kernel if someone really need (actually I am using custom build kernel with custom drivers of using 6.8 RC1).
  20. Nice!I compiled driver by my self for 6.8.0-rc1 for now. It is a good news for us.