zearp / OptiHack

Dell OptiPlex 7020/9020 Hackintosh Stuff
https://zearp.github.io/OptiHack/
155 stars 53 forks source link

USB fixes break USB functionality #53

Closed arminolat closed 3 years ago

arminolat commented 3 years ago

Hello!

I am using your guide to boot up MacOS Big sur on my Optiplex 7020.

I have an issue with the USB fixes applied in grub (setup_var).

Once I apply all of them and reboot not a single USB device works. Only way to go back is CMOS reset.

I can't proceed.

Any advice?

zearp commented 3 years ago

Make sure you enter the correct offsets. I do find it curious a cmos reset clears those. On mine it needs some more to get rid of all the UEfI edits.

If there was an issue with the offsets everybody would be reporting this. No working usb is quite severe. Either your bios version is not correct or you made a typo somewhere when entering the offsets.

arminolat commented 3 years ago

Hello! Thanks for replying!

I did enter the correct offsets. I tried 7 times and every time I typed in one letter at a time. I got all the expected confirmations for all of them.

Every time the same thing happens.

I have updated to the latest bios version before entering the commands and have followed the instructions to the letter.

arminolat commented 3 years ago

These are the commands I used:

setup_var 0xDA2 0x0 setup_var 0x263 0x2

setup_var 0x2 0x1 setup_var 0x144 0x1 setup_var 0x15A 0x2 setup_var 0x146 0x0 setup_var 0x147 0x0

The first two cause no issues, but the USB related ones always break my USB when I type reboot.

Am I using something that I should not be?

Thanks!

zearp commented 3 years ago

It is very odd, the only reason these offsets do not work for you is your bios not being on the latest version. But that's also rare cuz Dell doesn't change these offsets often. They usually remain the same between bios versions. Check your bios version is the latest.

Where does it break usb exactly? Everywhere? With the offsets set do usb keyboard/mouse work in the bios? If it only breaks usb inside macOS it might be a config/usb map issue. But if you use the default EFI and only edited serials/etc that shouldn't be an issue.

The only way I can think of to try and reproduce this is to do exactly what you're trying to do but I need to be sure you're not making any changes other than serials/etc. Use the latest release as is with nothing else changed then I can do the same. I'd clear all the UEFI edits and reset the bios and do a clean install.

I don't know what you could be doing wrong, I follow my own guide to test and make sure its all good and those offsets are solid. I will wait for answers to my questions, with those I can do some tests.

What version of macOS are you installing?

zearp commented 3 years ago

I will make a new release so we can be on the exact same latest versions. It should be online in 10-15 mins.

arminolat commented 3 years ago

Hi!

I downloaded and installed the latest bios last night. I got this PC yesterday, purchased it since I found your guide and took the same one so I can easily boot macOS.

The EFI version I'm using is the latest one and everything is new since I followed the tutorial yesterday for the first time.

My BIOS version is listed below: BIOS Version/Date Dell Inc. A03, 1/8/2015

All of my USB ports stop working, so the mouse, keyboard, even the USB sticks stop working. Since this happens, I have no way of entering BIOS at all, since the keyboard is also USB and the only thing that worked is clearing the CMOS manually by pulling out the battery and holding the power button for 30 seconds.

The only changes I made to your EFI are the Platform Info pieces, so the serial, ROM etc. (the 4 things I got from SMBIOS).

Also, this is not the first time I'm using opencore and I have been able to get this working on my main PC, but I purchased the 7020 just so I can use it for macOS.

Thanks for making a new release! I'll wait for it and download again.

EDIT: I'm trying to install Big Sur 11.2.3, but I also have Monterey Beta 3 downloaded in my macOS Virtual Machine, so let me know if it makes any difference.

zearp commented 3 years ago

That bios is very old. The latest bios for 7020 is A18.

I'm impressed how old it is really lol. I bought a "job lot" of 7020s and the oldest I saw was A08 or something. The lastest bios is from 2019, yours 2015. Pretty sure all your problems will melt away once you update to the latest version: https://dl.dell.com/FOLDER05650653M/1/O7020A18.exe

Let me know how that goes! I'm pretty sure being on a bios that old is the issue, they might have changed offsets between such old versions and later ones. I didn't check back as far as yours but I did check back a few versions and I think A15 - A18 all have same offsets.

The macOS version shouldn't matter it was just needed in case usb was broken down the line somewhere, I wasn't sure. Beta 3 is running very smooth for me, just make sure you set SecureBootModel to Disabled. Though maybe in beta 3 that is no longer needed, it was for beta 2 but not for beta 1.

zearp commented 3 years ago

I would suggest grabbing the release I published a few minutes ago if you go for Monterey, it will be the best match with all kexts up-to-date and all. It is not unstable but might not be suitable as daily driver just yet. I been using it on a few machines without many issues. No random panics or crashes and its faster than Big Sur for me. Boot times too.

arminolat commented 3 years ago

Oh God! Somehow the version I sent above was the newest I found on the Dell Website!

Thank you so much for the BIOS update!

I'll grab that as well as the new release you just pushed and try again.

I'll let you know if it works!

zearp commented 3 years ago

If you Google on Dell 7020 bios you do end up on the wrong pages yeah. The first hit for me in Google when I search for "dell 7020 bios" is the A15 one. The second link in Google goes to A05. They all go to older version somehow. Maybe Google doesn't like Dell.

To get the list of all drivers/bios/etc you have to search for 7020 on the Dell website and then you get on the proper support page with the latest version listed first.

https://www.dell.com/support/home/en-uk/product-support/product/optiplex-7020-desktop/drivers

zearp commented 3 years ago

Added bios versions to the new guide too, hopefully this prevents anyone else from running into the same thing; https://github.com/zearp/OptiHack/commit/c68645c169977a5787a0cea9a4f04eca6a87ca7b

arminolat commented 3 years ago

Just a quick question - I've decided to go with Monterey.

Where do I change this:

Monterey is currently in beta and will be buggy and might break, it also requires SecureBootModel to be set to Disabled.

zearp commented 3 years ago

In the config, you can use the search inside ProperTree to go there fastest. It is in the Misc -> Security section halfway the config.

securebootmodel

arminolat commented 3 years ago

Okay, I have managed to apply the commands in Grub without problems this time, and I've downloaded the latest release.

I am stuck on this screen for the past 30 minutes. Screenshot_2021-07-19-17-08-32-420_com miui gallery

Any advice on what else I can try?

EDIT: I've tried several times, and it gets stuck on a different line every time.

zearp commented 3 years ago

The screen you see is the last bit you see before it loads the graphical interface. Sounds like your screen is not connected to the mother board ports. Do you have a dGPU? Cuz thats disabled by default as not all dGPUs are compatible with macOS. Also the VGA port is disabled in macOS. Either one or both of the DP ports on the back should be used.

zearp commented 3 years ago

I highlighted the part where it loads up the graphical interface. It's usually one of the last messages you see before the login screen or installer interface.

126182860-b6880841-b39d-4504-b8ce-5b479e4ba876

arminolat commented 3 years ago

The screen you see is the last bit you see before it loads the graphical interface. Sounds like your screen is not connected to the mother board ports. Do you have a dGPU? Cuz thats disabled by default as not all dGPUs are compatible with macOS. Also the VGA port is disabled in macOS. Either one or both of the DP ports on the back should be used.

I don't have a dGpu, but I do indeed use the VGA port, not display port. I have a spare DP cable so I'll try that now.

zearp commented 3 years ago

VGA is disabled in modern versions of macOS, the only way to make it work is if you got an i3 cpu with a HD4400 where the HD4400 does the needed conversion cuz macOS can't do that anymore. It may or may not work on HD4600 but I've disabled the VGA frame buffer as it caused problems and wasn't working at all. It's on the todo list but with a very low priority. Just a fun thing to get going but not essential specially since macOS itself doesn't officially support it anymore.

arminolat commented 3 years ago

Okay! Making progress! The Apple logo appears and the loading bar as well, but only a gray screen after that. I can see the cursor and move it, but nothing to click on. Usually this is where the disk utility and install options appear.

zearp commented 3 years ago

Is that with two screens connected? If just one try swapping the DP port. Sounds like it thinks it has two screens. You can also try this by moving the mouse to the sides of the screen, if they move beyond the edge it thinks there are 2 displays.

arminolat commented 3 years ago

I'm using just one screen. Tried both DP ports... When I move my mouse cursor to any edge of the screen it remains there, so it doesn't switch to any other display it might think is connected.

zearp commented 3 years ago

Do you have a menu on top? Or just grey?

On my test machine if I connect a hdmi monitor with a dp -> hdmi cable to the top port (closest to ps2/ ports) I see the installer menu, if I use the bottom port I see nothing after verbose boot. I can not get it to show just a grey screen.

What is you cpu? If i3 or one with HD4400 instead of HD4600 you may need to adjust the config.

Do you connect with conversion too? Not all DP -> hdmi conversion cables/dongles will work. This can be quite annoying but macOS is very picky. Fail safe is to use only DP -> DP connections if possible.

arminolat commented 3 years ago

It was just gray.

BUT I remembered something similar happening on myain Ryzen PC, and the solution was to clear out the setting here NVRAM-->prev-lang:kbd.

This did not work, but when I changed the data type for this value to Data instead of String and cleared it out it worked. I did reset NVRAM as well.

Continuing with the installation now, will ce back with the results.

zearp commented 3 years ago

To make it even more interesting, I have one DP -> hdmi cable that works perfectly fine on my Samsung screen but does not work on my Philips screen depending on which port I use. On my Samsung screen both DP ports work fine with the cable, on my Philips screen only the top DP port works.

This is the main reason DP conversion sucks, it is just weird and unreliable. I've had some issues opened a while ago by a few people who ran into weird screen issues and it was solved by trying a different cable. When I use my DisplayPort enabled monitor it doesn't matter which port I use, it always works as expected.

I should add a section about this but it's kind of tricky as some cables might not work for me on any of my screens but may work fine for someone else with a different screen. It's one of those YMMV cases.

zearp commented 3 years ago

It was just gray.

BUT I remembered something similar happening on myain Ryzen PC, and the solution was to clear out the setting here NVRAM-->prev-lang:kbd.

This did not work, but when I changed the data type for this value to Data instead of String and cleared it out it worked. I did reset NVRAM as well.

Continuing with the installation now, will ce back with the results.

Wow, that is really odd. What exactly did you change to make the grey screen go away?

zearp commented 3 years ago

Also hot plugging DP might not work depending on the monitor, it shouldn't crash with the default config but it may be needed to power down before the DP works properly.

arminolat commented 3 years ago

I just loaded config.plist in ProperTree and changed the data type for NVRAM-->prev-lang:kbd to Data (it was String by default) and then left the value for that blank.

Thank you so much for your help on this! You're amazing!

How would one update to the next macOS version once it comes out? Just download trough regular update in macOS or would I need to do something like this?

zearp commented 3 years ago

I don't think we get whatever comes after Monterey. Monterey is not officially released yet, will be in a few months. But yes, updates you can just install via the software updater inside macOS. Beta 3 installed fine from it, beta 2 didn't though. Beta 4 might be fine or not, we have to see when it comes out.

I need to Google on that lang variable causeing/fixing grey screens. Thats totally new for me. Did you wipe nvram before installing? Maybe there was something in there that messed things up. It can happen.

I find it hard to comprehend how a lang variable causes/fixes grey screen and haven't run into it myself despite doing more macOS installs that is healthy lol. I did change the lang variable from US English to International ABC but that shouldn't matter. All it does is set the language the installer starts in, if the variable didn't exist yet. Really awkward.

Running Clover and then OpenCore without clearing nvram will lead to strange things but I don't think you used Clover.

zearp commented 3 years ago

Ah yeah I see others had the same issues and same fix. Too bad none of those posts have information on the cause, only the fix. Also too bad I can't reproduce this. Would be a fun one to hunt down. I'll add it to the guide though, seems to be be rare but it can happen.

I also wonder if you can reproduce this once you're settled in and have a backup it would be interesting to see if adding the data field back as it is in the default config caused a grey screen in the installer again. If it does then it wasn't nvram, if it works fine it was likely something to do with nvram being "corrupt" or messed up.

Thanks for your testing so far. I'm gonna add the info gathered by us troubleshooting to the guide.

zearp commented 3 years ago

Needed for non-latin keyboards in the format of lang-COUNTRY:keyboard, recommended to keep blank though you can specify it(Default in Sample config is Russian):

I will also keep it blank then. Change to data and keep it blank will prevent this from ever happening to anyone else.

zearp commented 3 years ago

Done (https://github.com/zearp/OptiHack/commit/81705eb2e15f4f6b8b90505469a13b4c68f1bba9) and also removed the section from the guide 10 minutes after adding it haha. This is best fix. Though still curious if you can reproduce it again, just to rule out any nvram issue.

arminolat commented 3 years ago

Thank you so much!

I have now booted into Monterey and it seems to be working okay!

image

One thing I noticed is that when I open ProperTree it shows a black screen, can't edit the config.plist. Not a huge deal, but not sure why it happens.

As for my issue with the gray screen - I did try NVRAM reset a few times, but it did not work. As I said, I had a similar problem on my main PC and changing the prev-lang:kbd to blank fixed it. This did not work immediately on my Optiplex since I did not notice it was a String type instead of Data. Once I changed that, I restarted NVRAM for good measure and then it worked.

I do have two more questions though

  1. I have a Bluetooth dongle that I'd like to use on my machine so I can use the Magic Mouse and Magic Keyboard. When I plug it in it does not work, nothing happens. On my main PC, this dongle just works out of the box. Not a major problem, but I'd like to be able to use my Apple Peripherals.

  2. Does the LineIn port on the back work? I'm planning on using GarageBand to record my guitar.

Thanks!

zearp commented 3 years ago

To fix ProperTree you will have to manually install Python as the bundled version is (as usual) incomplete/broken. Once you downloaded and installed this Python run the buildapp-select.command script in the Scripts folder of ProperTree and select the 3rd entry. It will make a ProperTree app in the folder below it which you can move to /Applications if you want. It will run 'stand alone'.

1: Not all bluetooth dongles will work in macOS, I have linked some cheap ones that do work but currently 3rd party bluetooth is completely broken in Monterey. If you can post the device and vendor id of your dongle I can see if the chipset is supported or not.

2: Line-in on the back works but you have to manually select it, its the only compromise we had to make for our custom audio port map. You can change it in the sound settings. I'm not sure if you want to use the inputs of the Dell, they're not that good. Maybe for guitar it doesn't matter much unless its acoustic. If you want automatic sensing you can use layout 15 and plugin a line-in/mic on the front and it switches automatically, it also switches between the amazing internal speaker and headphones with that layout.

FWIW, I tried recording some stuff from a sampler and it sounded ok but recording the same using audio over usb was a lot better. Too bad electric guitars don't have digital usb outputs yet, my sampler has both analog and standard audio over usb.

GarageBand should run fine I think despite Haswell being old it is not a snail. I don't use GB myself but I do run some soft-synths on mine, mainly Moog Model 15 instances which work perfectly fine on this h/w. Very pleased Moog released it on macOS App Store too. Hope more will follow.

I'm glad the install went well after some humps in the road. I'll close this issue but feel free to update below.

zearp commented 3 years ago

Forgot to add the d/l link for Python: https://www.python.org/ftp/python/3.9.6/python-3.9.6-macosx10.9.pkg

Screen Shot 2021-07-19 at 20 04 32

3rd option should be visible after installing above package.

arminolat commented 3 years ago

I can confirm that ProperTree works after following your method! Also, LineIn works for my electric guitar in GarageBand, as you said - I just had to enable it. I'll check the information for the Bluetooth dongle on my Windows Machine and follow-up with the details.

Thanks!

arminolat commented 3 years ago

Hi!

This is the Bluetooth Dongle I own: https://www.ugreen.com/products/usb-bluetooth-4-0-receiver-adapter

zearp commented 3 years ago

It's a Cambridge Silicon chip which should work, just not in Monterey for now. All 3rd party bluetooth is broken since beta 1 and even Apple's own bluetooth cards are buggy from time to time. I don't except Apple to drop all 3rd party bluetooth support so hopefully soon it will work again.

On some chipsets people reported success with the attached kext, you can try adding it and see if that helps. If not there's not much else to do then downgrade, wait or get an Apple Airport card.

BlueToolFixup.kext.zip

arminolat commented 3 years ago

Added the kext and it works perfectly for both my Magic Mouse and Magic Keyboard!

Awesome!

Thanks once again!

arminolat commented 3 years ago

If I were now to go to Big Sur since a lot of software seems to be unstable in Monterey, could I use the same EFI and the same Serial?

zearp commented 3 years ago

Nice that it works! It doesn't work for everybody so you're lucky! Once Monterey is out of beta it should work without that kext but don't expect on any iCloud stuff to work that depends on bluetooth, that will only work with Apple's own bluetooth chips and some Broadcom (native) ones and sort of works on some Intel chips (not native). For HID devices and audio a $3 dongle is fine. With the added benefit you can wake up your machine from bluetooth. Something that doesn't work with most add-in cards.

Yes you can use the same EFI. I use the same EFI for Catalina, Big Sur and Monterey. In most cases you can just install macOS on top of the macOS you want up or downgrade without losing any settings or apps. Note that downgrading may not always work but upgrading will.

To downgrade safely and easily make a backup of the current install. Either a clone or Time Machine. Then just format your internal disk and do a clean install and once thats done you can import all your apps/settings/etc from the backup using the migration tool. You can do that manually post install but you can do it before setting up the user account during install, it will ask for it. It takes a bit longer than the previous method but its fail safe for downgrades.

You'd only need change the serials if you change the SMBIOS. Just generate a new bunch with GenSMBIOS. You can't mix and match them if you want to use iCloud and such. If you don't use Apple services none of that matters.

For most normal Mac things you can just treat your machine as a real Mac. Install software updates, macOS updates, upgrades, etc. You don't even have to keep updating the EFI unless something breaks in a new update. On my daily driver I use an older version of my EFI and that still works fine.

This also includes Bootcamp. So if you want to multi boot Windows you can use that and the stay within OpenCore, booting a non-Bootcamp install of Windows form OpenCore is not recommended. I wrote some stuff about it in the guide if you want to know why.

Which software its unstable for you on Monterey? I've not run into any issues myself, only bluetooth has been spotty from time to time. Monterey is really just Big Sur with interface and small under the hood changes. Catalina to Big Sur was a more severe upgrade with a lot of under the hood changes in the driver department, specially 3rd party drivers. It took many months for my audio interface drivers to be updated for Big Sur. But for Monterey they just work despite not being official supported.

Either way, good luck with your machine.

arminolat commented 3 years ago

Hi!

Thanks for the reply!

I plan on installing Big Sur using all the same details in my EFI as for Monterey. I was not planning on changing SMBIOS or any details at all. Apple ID works now, so I kinda expect it should work on Big Sur as well.

Are you saying I need to change anything, or is it fine to leave the EFI untouched?

As for unstable software, Microsoft Remote Desktop crashes randomly. The same thing happens with Steam Link.

Did not bump into any other pieces of software that don't work, but these two are currently not fully compatible it seems.

PS: I shared the success here as well: https://www.reddit.com/r/hackintosh/comments/onpctm/dell_optiplex_7020_running_macos_monterey_beta_3/

zearp commented 3 years ago

The crash logs may help reveal what's going on, guess they need fixes Haven't run into those ind of things with the software I use yet.

Yes you can leave the EFI untouched. Updating is not really needed unless something breaks in a macOS update or if you feel like it.

arminolat commented 3 years ago

Thanks!

I've gone back to Big Sur. I've noticed my speed has been limited to 1MBps, while it's usually around 2MBps. Not too much, I know, but wondering why this might be happening?

The same thing was noticeable on Monterey as well. I tried the same ethernet cable on my Windows machine and it works fine.

zearp commented 3 years ago

I think you're conflating internet speed with your local ethernet speed. macOS doesn't slow your internet connection down by half, unless its downloading updates in the background or the cable is bad.

You can check your link speed by running ifconfig en0 in a terminal and look for the second to last line where it lists the media type: media: autoselect (1000baseT <full-duplex,flow-control,energy-efficient-ethernet> for mine; its 1000mbit.

I hope you understand the difference between your lan link speed and internet speed. You can test both, with something like iperf3. Install it on your Optiplex and connect to a public iperf3 site on the internet and then also install it another machine on your lan where it runs a server in the background and test it there.

I'm not going into that here but you can look those things up if you want to find out. It is really outside the scope of the repo. I went above and beyond helping you and some others out recently. I can't do much more cuz my time is limited and issues are really meant for "bugs" relating to the EFI that are reproducible so we can make the EFI better.