-
-
Notifications
You must be signed in to change notification settings - Fork 500
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
bug: macOS fails to start ('Haswell-v4-x86_64-cpu.ept' not found) #1214
Comments
I checked out a prior version of the quickemu file and it started the VM (although macOS never boots; it shows a black screen): git checkout 9a09bad quickemu So a commit after 9a09bad might be a problem on at least my system, when running macOS. Just to note: Windows 11 works fine with the latest code in the main branch, so this seems to be something mac-specific on my hardware? |
I did a git bisect and it suggests git commit 5e507e6 is where things broke on my system. I guess |
I was literally just looking into this 😄 Please can you test this commit and let me know if it works for you: 2d1319e |
In my case removing ept from the flags or replacing it with ept_1gb allowed the system to boot, but changing the cpu model did not. |
Yes, that works fine for me. I should add that I don't know if ept_1gb is a reasonable substitute for ept beyond the name being similar! |
That commit also works for me! Thanks! |
There were/are quite few things wrong. And there is still quite a bit more work to do. Sorry if this is short and incomplete I was working on things but have finished work for today, now. Ept never was a qemu parameter, only ever vmx-ept which is intel only. Also invtsc is an almost obsolete 486 instruction https://github.com/search?q=repo%3Aqemu%2Fqemu%20invtsc&type=code which has been replaced by rdtscp even from haswell onwards. https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/programmer-references/40332.pdf Page 422 "The TSC is a model-specific register that can also be read using one of the special read time-stamp I haven't yet tried building but I am imaging that tsc does probably account for the hangs. SSSE3 > Only the super set of 'supplementary sse3' exists. sse4.1 should also be included for backward compatibility. change invtsc to rdtscp drop non-existent vmware parameters
There are a lot of instructions yet to add, possibly. Also PDPE1GB is a skylake flag. I was looking at using skylake rather than haswell last week ... Skylake is officially Sonoma supported. Haswell isn't. @flexiondotorg you seem to be working Pacific Coast hours at present ... 🤣 |
As an update, this morning, I added in all the non intel, non VMX flags that Qemu list as available. I tried Skylake but couldn't get it to boot. No idea on that. Same as in #1114 It would only use Haswell ... The Haswell boot was more successful. On my first attempt it flew past the one minute point but then failed the rest. On my second try, with more flags enabled by that point, it only needed one reboot and install restart but then stuck at the one minute. Of further note. Penryn doesn't have either FMA or RDTSCP and is in fact very limited.
This is how my current state of play looks:
|
FMA is required for Metal. |
If the flags don't exist, wishful thinking won't make them appear. |
And closing complicated issues as 'completed' when they are clearly not will solve issues either ... |
Hi @flexiondotorg and thanks for replying back. Not closing this issue, in other words .... I sympathise with the concept of "If it's not broken, don't fix it" but it's broken for me. I would be interested to see the lspcu's of your test machines. Your 'solution' is still not working properly for me, on the Series 11 Intel that I am using. I tested again this morning using your 'macos-host' branch to see if it possessed some magic properties that perhaps circumvented an error in Qemu source code. No such. There was one other new thing I did notice though. You have an error in your FMA INVTSC test. It should be I remain unhappy with my solution but apart from your errored test that I copied over it is technically correct. I would like to get it to running. As in full install, right up to the bit where you get asked for name, location and preferences. And without restarts and hangs. I think it is only luck, not judgement, that is making your solution "work" on your machines. But I would like to know why it is working and what it is about your machines that makes that happen. The only reason that the
I am not sure why FMA is critical. Do you have a reference? If this is the case, then Penryn needs to be removed. |
SUCCESS 🥳
Tested with FULL complete installs of Sonoma, Catalina and Mojave. Full setup with login and preferences set. Shutdown and re-login as working. Much faster than previously with 4.9.2 through 4.9.4 etc. Fully working, no hangs, no stalls. Of new, now requires the installer icon to be pressed on the restarts. This now happens a couple of times. But this all flows smoothly. CAVEAT: not yet tested on Ryzen. Volunteers please ... Additionally note the Skylake version is also working. This is commented out but has been tested on Sonoma. A conf selector for skylake should be considered, or at least noted and archived in case of future problems. |
This worked for me with Sonoma |
Worked for me as well, though I'd note that I was also able to just use "-cpu host". (I saw there was a TODO about that.) |
Expected behavior
The VM should start.
Actual behavior
Error message:
Steps to reproduce the behavior
Attempt to start a macOS VM with quickemu. Windows 11 works as expected.
Additional context
This is on a Fedora 40 system. I've tried it in a Fedora distrobox, a Debian Sid distrobox, a Fedora toolbox, and by overlaying packages on my Fedora 40 Silverblue system.
Quickemu output
Run
quickemu
orquickemu
and include the output of the failure below:Quickemu output
System Information
Quickreport output (doesn't work)
(I think it looks for quickemu on the path, instead of
./quickemu
. It's similar for./quickget
— it suggests runningquickemu
instead of./quickemu
.)I ran bash (as bash isn't my default shell) and then the base command as suggested:
Bash command output, like quick report
The text was updated successfully, but these errors were encountered: