bitgapp / eqMac

macOS System-wide Audio Equalizer & Volume Mixer 🎧
https://eqmac.app
Apache License 2.0
5.71k stars 334 forks source link

Support for macOS Catalina 10.15 #172

Closed glekner closed 4 years ago

glekner commented 5 years ago

Driver installation Fails on Catalina. Any News on this?

hlk-trkn commented 5 years ago

Driver installation still fails MacOS Catalina Stable Version.

man-jai commented 5 years ago

Seems to be an issue with the new Gatekeeper that makes system drives read only

Found a work around by temporarily disabling the gatekeeper, installing the drivers and re-enabling it after.

to disable:

sudo spctl --master-disable

and enable:

sudo spctl --master-enable

nodeful commented 5 years ago

@man-jai solution should work, but you need to restart your Mac each time you change the gatekeeper! The new version of eqMac I will release soon will work out of the box without a problem

DEGoodmanWilson commented 5 years ago

Sadly, for some reason @man-jai 's workaround didn't work for me. Just an FYI for others out there. Looking forward to seeing what the new release brings!

vkarampinis commented 5 years ago

@man-jai solution should work, but you need to restart your Mac each time you change the gatekeeper! The new version of eqMac I will release soon will work out of the box without a problem

Thanks for this app. Any ETA for the next release?

permidon commented 5 years ago

Catalina has read-only system volume. So, to install eqMac2, you will need to manually extract eqMac2Driver.kext, copy it to the MacOS installer usb stick (for example), boot from the stick, open terminal, go to the stick directory and copy eqMac2Driver.kext to the Extensions directory (cp -R eqMac2Driver.kext /System/Library/Extensions/)

Fed03 commented 5 years ago

waiting for this so much!

logansam commented 5 years ago

@man-jai that didn't work for me, even after a restart

ahmeti commented 5 years ago

@permidon Catalina has read-only system volume. So, to install eqMac2, you will need to manually extract eqMac2Driver.kext, copy it to the MacOS installer usb stick (for example), boot from the stick, open terminal, go to the stick directory and copy eqMac2Driver.kext to the Extensions directory (cp -R eqMac2Driver.kext /System/Library/Extensions/)

it works this way and there's no other way :(

hlk-trkn commented 5 years ago

So how will be handled this problem(Catalina's read-only System Volume) on next update?. Any idea?

nodeful commented 5 years ago

In the next update the audio driver is installed in user space, rather than kernel space. No ETA because I have missed every other promised eta :) So don't want to disappoint anyone. I'm working on it as much as I can, physically and mentally.

dontcrash commented 5 years ago

Catalina has read-only system volume. So, to install eqMac2, you will need to manually extract eqMac2Driver.kext, copy it to the MacOS installer usb stick (for example), boot from the stick, open terminal, go to the stick directory and copy eqMac2Driver.kext to the Extensions directory (cp -R eqMac2Driver.kext /System/Library/Extensions/)

Incorrect, it's so simple, just extract the kext then sudo cp -r eqMac2Driver.kext /Library/Extensions/ Then it's just a matter of running kextload... :)

TDWilkinson99 commented 5 years ago

Catalina has read-only system volume. So, to install eqMac2, you will need to manually extract eqMac2Driver.kext, copy it to the MacOS installer usb stick (for example), boot from the stick, open terminal, go to the stick directory and copy eqMac2Driver.kext to the Extensions directory (cp -R eqMac2Driver.kext /System/Library/Extensions/)

Incorrect, it's so simple, just extract the kext then sudo cp -r eqMac2Driver.kext /Library/Extensions/ Then it's just a matter of running kextload... :)

Thank you so much! This worked for me :^)

chw1997 commented 5 years ago

Catalina has read-only system volume. So, to install eqMac2, you will need to manually extract eqMac2Driver.kext, copy it to the MacOS installer usb stick (for example), boot from the stick, open terminal, go to the stick directory and copy eqMac2Driver.kext to the Extensions directory (cp -R eqMac2Driver.kext /System/Library/Extensions/)

Incorrect, it's so simple, just extract the kext then sudo cp -r eqMac2Driver.kext /Library/Extensions/ Then it's just a matter of running kextload... :)

This work for me too. Thank you!

dontcrash commented 5 years ago

Glad it helped! I have noticed a few crashes on Catalina however, specifically when disconnecting or reconnecting Bluetooth audio devices

ahmeti commented 5 years ago

Catalina has read-only system volume. So, to install eqMac2, you will need to manually extract eqMac2Driver.kext, copy it to the MacOS installer usb stick (for example), boot from the stick, open terminal, go to the stick directory and copy eqMac2Driver.kext to the Extensions directory (cp -R eqMac2Driver.kext /System/Library/Extensions/)

Incorrect, it's so simple, just extract the kext then sudo cp -r eqMac2Driver.kext /Library/Extensions/ Then it's just a matter of running kextload... :)

Great! Thank you @dontcrash

hlk-trkn commented 5 years ago

Thanks!

dontcrash commented 5 years ago

Thanks!

No problem at all! Catalina has changed some things but mostly for the best, read only system partition is to help make macOS “idiot proof” and also more secure. So it should be a relatively easy fix, I might submit a PR if I have time

scofano commented 5 years ago

@dontcrash I've managed to copy the kext into the dir but would you please explain what "Then it's just a matter of running kextload... :)" it means? (total noob here)

TDWilkinson99 commented 5 years ago

@dontcrash I've managed to copy the kext into the dir but would you please explain what "Then it's just a matter of running kextload... :)" it means? (total noob here)

@scofano Type this into your terminal: sudo kextload /Library/Extensions/eqMac2Driver.kext

scofano commented 5 years ago

Type this into your terminal: sudo kextload /Library/Extensions/eqMac2Driver.kext

Got this: failed to load - (libkern/kext) system policy prevents loading; check the system/kernel logs for errors or try kextutil(8).

Edit: Thanks a lot! I went to the system settings and allowed it to run. It is working now. :-D

tgroutars commented 5 years ago

@scofano I'm having the same issue, what do you mean by "allowed it to run"?

scofano commented 5 years ago

@scofano I'm having the same issue, what do you mean by "allowed it to run"?

When I used @TDWilkinson99 code, it opened the "security & privacy" window, then I pressed "open anyway". Please note that I've already allowed gatekeeper settings to be set as "anywhere". - http://osxdaily.com/2016/09/27/allow-apps-from-anywhere-macos-gatekeeper/

032mix commented 5 years ago

I managed to get the app running following your instructions so thank you all who contributed.

I have a different issue, which I presume is again because of Catalina since I didnt have it in Mojave - after about 15-30 min(average) the sound starts popping terribly especially on low frequencies like bass and kicks. The app needs to be quit and reopened to fix it, but the issue again reappears in about 15-30 minutes. Anyone else having this problem? Im on a macbook pro 15 2019 and it does it no matter if Im using the speakers or connect wired headphones.

Edit: Nevermind, I see this is an ongoing issue for some users since Mojave. Its weird I didnt have it before updating to Catalina but I guess the dev is aware of it.

Edit 2: Looks like giving permission to the app in Accessibility fixed doubled the time to get the popping/cracking for me

jvco98 commented 5 years ago

Can someone help me figure out how to get this working on Catalina? I don't have a usb-c flash drive or dongle so I don't think I can do the method posted above. I have the .kext file but can't get it into the right folder because it seems to be read-only. Thanks, in advance!

dontcrash commented 5 years ago

Can someone help me figure out how to get this working on Catalina? I don't have a usb-c flash drive or dongle so I don't think I can do the method posted above. I have the .kext file but can't get it into the right folder because it seems to be read-only. Thanks, in advance!

This has been covered already, read previous replies. @jvco98

ShantanuNair commented 5 years ago

Someone mind telling me where I can extract the kext file from? The .dmg file, or the installed .app's package contents?

Edit: Wow, don't know how I missed it, but it's here: /Applications/eqMac2.app/Contents/Resources/eqMac2Driver.kext

Szkrobisz commented 5 years ago

Catalina has read-only system volume. So, to install eqMac2, you will need to manually extract eqMac2Driver.kext, copy it to the MacOS installer usb stick (for example), boot from the stick, open terminal, go to the stick directory and copy eqMac2Driver.kext to the Extensions directory (cp -R eqMac2Driver.kext /System/Library/Extensions/)

Incorrect, it's so simple, just extract the kext then sudo cp -r eqMac2Driver.kext /Library/Extensions/ Then it's just a matter of running kextload... :)

Follow your steps but have different problem:

/Library/Extensions/eqMac2Driver.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8)

jvco98 commented 5 years ago

More specifically, I'm having the same as @Szkrobisz

madeindra commented 5 years ago

Stumble into the same problem as @Szkrobisz Tried this, still no luck, can't do kextload

sudo chmod -R 755 /Library/Extensions/eqMac2Driver.kext
sudo chown -R root:wheel /Library/Extensions/eqMac2Driver.kext

Update: I found that we need to disable SIP,

Remember to copy eqMac2.kext to /System/Library/Extension not /Library/Extension. After you are done, don't forget to go back to Recovery Mode and re-enable SIP with 'csrutil enable'.

ShantanuNair commented 5 years ago

Remember to copy eqMac2.kext to /System/Library/Extension not /Library/Extension.

So I followed @dontcrash 's post which copies to /Library/Extension. Still worked for me somehow. Just putting this out there.

Szkrobisz commented 5 years ago

@indrawp

Stumble into the same problem as @Szkrobisz Tried this, still no luck, can't do kextload

sudo chmod -R 755 /Library/Extensions/eqMac2Driver.kext sudo chown -R root:wheel /Library/Extensions/eqMac2Driver.kext

Update: I found that we need to disable SIP,

  • Shutdown
  • Press Command+R and press the power button, hold it until the apple logo
  • You will enter recovery mode, click on Utilities > Terminal
  • enter 'csrutil disable' to disable SIP
  • enter 'reboot' to reboot
  • Once you logged in, enter terminal and enter 'csrutil status' to check if SIP is disabled.
  • Proceed to enter 'sudo mount -uw /'
  • then enter 'killall Finder'
  • After these step you can install the driver (I did it manually)

Remember to copy eqMac2.kext to /System/Library/Extension not /Library/Extension. After you are done, don't forget to go back to Recovery Mode and re-enable SIP with 'csrutil enable'.

Ok thanks, SIP was the problem :)

OssiPesonen commented 5 years ago

In all honestly, disabling SIP is in most cases just plain wrong. Hopefully this will get fixed soon.

joshg2k commented 4 years ago

Just commenting to show my support for this issue. Love the product, hope to get it back soon!

Techn1x commented 4 years ago

Cool, so in case anyone doesn't want to piece together all of the information in the thread;

sudo cp -r /Applications/eqMac2.app/Contents/Resources/eqMac2Driver.kext /Library/Extensions/
sudo kextload /Library/Extensions/eqMac2Driver.kext

No reboot required (at least for me), but I already had System Preferences > Security & Privacy > Allow Apps Downloaded from set to "Anywhere".

4goodapp commented 4 years ago

@Techn1x Finally something that worked for me without having to change system security or reboot...

EDIT: I gave up using this app... I was getting weird noise like hearing cracking noise etc...

waldi1992 commented 4 years ago

apple@mac ~ % sudo cp -r /Applications/eqMac2.app/Contents/Resources/eqMac2Driver.kext /Library/Extensions/ apple@mac ~ % sudo kextload /Library/Extensions/eqMac2Driver.kext /Library/Extensions/eqMac2Driver.kext failed to load - (libkern/kext) system policy prevents loading; check the system/kernel logs for errors or try kextutil(8).

any ideas, to fix this? thanx

gknepper commented 4 years ago

Tested and Working! : Catalina , version 10.15.1 (19B88)

1- Go to the System Preferences -> Security & Privacy: Open the padlock and enable Allow apps downloaded from: Anywhere KEEP THE "Security & Privacy:" OPENED !!!

2- Install the eqMac2.dmg

3- Run on command line: sudo cp -r /Applications/eqMac2.app/Contents/Resources/eqMac2Driver.kext /Library/Extensions/ sudo kextload /Library/Extensions/eqMac2Driver.kext Now you'll see a message on the "Security & Privacy:" to allow the load the eqMac2 driver. Open the padlock if it's closed and allow

4- Now you can open the eqMac2 app!!

If it's not working, close the app and try to run this command: sudo kextutil -l -v /Library/Extensions/eqMac2Driver.kext Check if you see a message on the "Security & Privacy:" to allow the load the eqMac2 driver. Open the padlock if it's closed and allow

If the driver is properly loaded the message will be like this:

$  sudo kextutil -l -v /Library/Extensions/eqMac2Driver.kext
Password:
Defaulting to kernel file '/System/Library/Kernels/kernel'
/Library/Extensions/eqMac2Driver.kext appears to be loadable (not including linkage for on-disk libraries).
Loading /Library/Extensions/eqMac2Driver.kext.
/Library/Extensions/eqMac2Driver.kext successfully loaded (or already loaded).

If not the message is:

$ sudo kextload /Library/Extensions/eqMac2Driver.kext
/Library/Extensions/eqMac2Driver.kext failed to load - (libkern/kext) system policy prevents loading; check the system/kernel logs for errors or try kextutil(8).

or

$ sudo kextutil -l -v /Library/Extensions/eqMac2Driver.kext
Defaulting to kernel file '/System/Library/Kernels/kernel'
Kext rejected due to system policy: <OSKext 0x7fb7b7507bf0 [0x7fff90dbcd10]> { URL = "file:///Library/StagedExtensions/Library/Extensions/eqMac2Driver.kext/", ID = "com.bitgapp.eqMac2Driver" }
Kext rejected due to system policy: <OSKext 0x7fb7b7507bf0 [0x7fff90dbcd10]> { URL = "file:///Library/StagedExtensions/Library/Extensions/eqMac2Driver.kext/", ID = "com.bitgapp.eqMac2Driver" }
Diagnostics for /Library/Extensions/eqMac2Driver.kext:
stewx commented 4 years ago

@gknepper So if it fails, is it time to give up? I got the "system policy prevents..." message

waldi1992 commented 4 years ago

No update since august 30 report seems the "bird is dead" forever :-(

gknepper commented 4 years ago

@stewx Did you run the first 3 steps? did you allow the driver ? "Now you'll see a message on the "Security & Privacy:" to allow the load the eqMac2 driver. Open the padlock if it's closed and allow"

The message that you're facing is because the operational system don't the driver to run...

If yes try to disable the gatekeeper and repeat the process. "sudo spctl --master-disable"

gknepper commented 4 years ago

@stewx @waldi1992 Updated to macOS Catalina 10.15.2 (19C57) and still working flawlessly.

baskoroi commented 4 years ago

Hi all, I'm using macOS Catalina 10.15.2 (19C57) on a 2017-model MacBook Air.

Just tried the solution by @indrawp above there, and I confirm it has worked in my side. As stubborn as I was keeping SIP as a safeguard, temporarily disabling SIP to install the driver (and re-enabling it after installation - which Indra showed) is the only way that worked for me.

If you can't find @indrawp's solution, I'll just quote it here then... I've tried all his steps as follows (including the sudo chmod and sudo chown lines)

Stumble into the same problem as @Szkrobisz Tried this, still no luck, can't do kextload

sudo chmod -R 755 /Library/Extensions/eqMac2Driver.kext sudo chown -R root:wheel /Library/Extensions/eqMac2Driver.kext

Update: I found that we need to disable SIP,

  • Shutdown
  • Press Command+R and press the power button, hold it until the apple logo
  • You will enter recovery mode, click on Utilities > Terminal
  • enter 'csrutil disable' to disable SIP
  • enter 'reboot' to reboot
  • Once you logged in, enter terminal and enter 'csrutil status' to check if SIP is disabled.
  • Proceed to enter 'sudo mount -uw /'
  • then enter 'killall Finder'
  • After these step you can install the driver (I did it manually)

Remember to copy eqMac2.kext to /System/Library/Extension not /Library/Extension. After you are done, don't forget to go back to Recovery Mode and re-enable SIP with 'csrutil enable'.

So far it worked for me. Either bring down SIP a while, install eqMac2's driver and then re-enable SIP; or fail in stubbornness and not use it at all. Your call.

P.S. Terima kasih Mas @indrawp :)

hateradio commented 4 years ago

In addition to the steps provided by @gknepper . . .

I did sudo spctl --master-disable and sudo spctl --master-enable before and after the following steps.

In Security & Privacy > General

Unlock the settings

In Some system software was blocked from loading. > Allow... (Button)

Look for Roman Kisil (@RomanKisil ?)

Check the name and press Okay

Then try sudo kextload /Library/Extensions/eqMac2Driver.kext

Remember to disable spctl.

nodeful commented 4 years ago

Hey everyone. Excuse me for the lack of updates. I have been really busy on the new version of eqMac. I am happy to announce an open beta release. You can download it here: https://eqmac.app There are a lot of known bugs that I could not fix just yet:

So as you can see there's still some work to be done but at least it's a completely modern tech stack that I am fully willing to work on: 100% Swift, User Space driver and a Web UI, instead of C++, Kernel Drivers. As I said, should work on Catalina and should not have any pesky ear drum blasting volume bugs (at least I didn't come across any). I'm open to feedback and issue reports here: https://github.com/bitgapp/eqmac That repo will become the main repo for eqMac and this repo will be archived eventually. And yes it's called just eqMac, not eqMac3 :) And it will stay that way forever.

enaluz commented 4 years ago

In addition to the steps provided by @gknepper . . .

I did sudo spctl --master-disable and sudo spctl --master-enable before and after the following steps.

In Security & Privacy > General

Unlock the settings

In Some system software was blocked from loading. > Allow... (Button)

Look for Roman Kisil (@RomanKisil ?)

Check the name and press Okay

Then try sudo kextload /Library/Extensions/eqMac2Driver.kext

Remember to disable spctl.

You're a life-saver. This worked for me!

benjaminkohl commented 4 years ago

I've tried everything I see here and none of it works for me. Even when I get the file permissions correct the kextutil reports that they are wrong. Go figure.

I even gave the app full disk access from the MAC OS security settings.

sparatan117 commented 4 years ago

On a MBP 16" with Cat 10.15.3 with Security set to App store and Identified Developers, and the beta app @nodeful posted works flawless. It should be stressed that if ANY audio is running, it will fail.

Thanks so much!

mabboud123 commented 4 years ago

On an iMac with Cat 10.15.3 also flawless! Thank you!

Michael, Australia

benjaminkohl commented 4 years ago

I have the "Allow apps downloaded from" set to "Anywhere". I shut down audio-playing apps and tried installing the beta and I still get the error. Are there any folder permissions I should look into changing or is there a log that can tell me what went wrong?

EDIT: I should also mention that I always have that app setting set to "Anywhere" so I didn't need to change it before attempting this install again.