pje / WavTap

globally capture whatever your mac is playing—as simply as a screenshot
MIT License
749 stars 85 forks source link

"Kernel extension not loaded" - El Capitan #60

Open OYMYO opened 8 years ago

OYMYO commented 8 years ago

when launching WavTap in El Capitan 10.11 Beta (15A234d) I am getting an error saying "Kernel extension not loaded"

dnichols commented 8 years ago

+1

OYMYO commented 8 years ago

just a quick update on this issue: i have solved my original problem (broadcasting system audio in live streams / recording system audio) by using soundflowerbed & making sure the kext file is stored in library/extensions & also in system/library/extensions

(previously soundflowerbed was having similar problems to wavtap)

there was a lot more steps than that to get it to work but it took days & i unfortunately I didn't keep a record of the whole process

El Capitan 10.11 Beta (15A243d)

dcunited001 commented 8 years ago

i'm having the same problems with El Capitan beta. i set nvram boot-args, but no luck

dcunited001 commented 8 years ago

I'm running OSX 10.11 beta6

### boot-args are set
$ sudo nvram boot-args

boot-args   kext-dev-mode=1

### after restart, manually loading kernel extensions also fails
$ sudo kextload /System/Library/Extensions/WavTap.kext

/System/Library/Extensions/WavTap.kext failed to load - (libkern/kext) not loadable (reason unspecified); check the system/kernel logs for errors or try kextutil(8).

### but still, kextutil is not allowed to load unsigned kernel extensions
$ sudo kextutil /System/Library/Extensions/Wavtap.kext

Diagnostics for /System/Library/Extensions/Wavtap.kext:
Code Signing Failure: not code signed
Untrusted kexts are not allowed
ERROR: invalid signature for com.wavtap.driver.WavTap, will not load
ghost commented 8 years ago

I'm having the same issue running the El Capitan GM, I have tried setting the boot-args but no luck, I also tried stealing the ktext from Soundflower and adding it in as the WavTap one, no luck.

siuying commented 8 years ago

@pje have you tried to request developer ID certificate for kext from Apple? https://developer.apple.com/contact/kext/

yordis commented 8 years ago

+1 the same issue.

El Capitan: Official Release

guilhermegustavo commented 8 years ago

+1 Same problem.

temporarily using Sounflower, but without audio return equals Wavtap.

dcunited001 commented 8 years ago

Yeh I've been using soundflower too.

On Saturday, October 3, 2015, guilhermegustavo notifications@github.com wrote:

+1 Same problem.

temporarily using Sounflower, but without audio return equals Wavtap.

— Reply to this email directly or view it on GitHub https://github.com/pje/WavTap/issues/60#issuecomment-145255475.

David Conner *@dcunit3d 424-244-1486* [[ Github http://www.github.com/dcunited001 - Coursera https://www.coursera.org/user/i/8671e7b4d35f3d498f22e225dbe70bd9 - Smarterer http://smarterer.com/dcunit3d - Plus http://plus.google.com/101141634039644438128/ ]]

worldsfinestdj commented 8 years ago

If anyone is still experiencing this problem and is running El Captain on their Mac OSX please go to the link provided to see how to get sound flower back with no issues at all https://youtu.be/kyS7UG3wmb0

rgbjoy commented 8 years ago

+1 @pje help!

fgimian commented 8 years ago

+1 here

luizdsilveira commented 8 years ago

After a long day trying everything, including other softwares (I almost payed $40 for one!), finally solved the problem: restart your Mac in "Restore Mode" (cmd + r), open Terminal and type:

csrutil disable

It's working perfectly now. Hope for you too.

jason-murray commented 8 years ago

@luizdsilveira worked, now the kext is loading but I can't listen to the WavTap device. Unfortunately the project seems abandoned at the moment.

For anyone else using the above instructions, after using Cmd+R just after the boot up sound, you need to select utilities in the top bar to launch the terminal.

EDIT: I should also mention that you should not perform this fix unless you know what you're getting in to. csrutil is part of the OSX security line up and disabling it could lead to your system being vulnerable to attack, or could enable you to mess with files you shouldn't and break your OSX install.

luizdsilveira commented 8 years ago

Hi, @JasonD33. In fact I had the same problem, so I opened Preferences, Sound and changed output to Headphones, than back to Wavtap. So I closed Wavtap, opened it again, changed output again to Headphones, back to Wavtap and it worked. I really don't know what I really did to make it work, but switching between them in this random way did the trick. :)

jason-murray commented 8 years ago

@luizdsilveira ok, so some random amount of swapping and opening closing WavTap later and it's working properly. Bizarre! I too cannot honestly say what the series of events were that lead to it working. I think it does have something to do with opening and closing the wav tap app:

  1. I had headphones selected, WavTap status bar app running.
  2. Changed to WavTap output in sound config panel. (no sound)
  3. Switched back to headphones and closed WavTap status bar app.
  4. Switched back to WavTap output in sound config window. (no sound)
  5. Opened the WavTap status bar app, WavTap output sound started working.
luizdsilveira commented 8 years ago

@JasonD33 Bizarre is the word. :) But if it's working is better to do not investigate the reason. :)

I had a SCSI scanner in 1994 that worked for years even without the SCSI board installed in the system (OS didn't have support for it). Weird things we have with computers.

jason-murray commented 8 years ago

@luizdsilveira Hah you're right! Thanks for the help.

rgbjoy commented 8 years ago

so why can't WavTap just get a developer ID certificate... what's holding this back? Anything we can do? I don't want to do some weird hacky terminal code in 'restore mode'...

yordis commented 8 years ago

@rgbjoy yeah that's all what we need :+1:

idcmp commented 8 years ago

Is it just money, or is Apple against something like WavTap?

promyth3us commented 8 years ago

Yea let me know how to do this!

ed-george commented 8 years ago

The csrutil disable method seems like a dirty hack - If an Apple Dev ID Certificate is needed (and assuming that costs money), I'd consider crowdfunding it for sure as I am sure many people would

yordis commented 8 years ago

@ed-george indeed!

siuying commented 8 years ago

@Dorian If the author can sign this app with Apple approved cert, users will not need to run that command to install the app.

@ed-george Unfortunately you cant just register as an Apple Developer and sign the app, you need Apple approve for signing kext. It seems best for the author to request it.

rgbjoy commented 8 years ago

@Dorian Why do you think disabling system integrity protection (csrutil) is a good idea? You shouldn't run any type of command to get this to work. We just wait for the author to request it.

There's always a good reason why Apple does these things.

ed-george commented 8 years ago

@Dorian: I am in complete agreement with @rgbjoy. Even if running that command does work, it isn't a valid solution that should be recommended

@siuying: Thanks for the clarification - Fingers crossed this will be dealt with as soon as possible.

OYMYO commented 8 years ago

@rgbjoy @ed-george but thats why terminal is there :D I would suggest people learn as much as possible about their system before making changes though.

if people are still having problems with WavTap to change audio sources then they should check out Soundflowerbed, its not as simple as WavTap was, but it does work on my system...

ed-george commented 8 years ago

@OYMYO I just don't think turning off a security layer of the underlining operating system is a very sensible suggestion. It may fix the issue, but it certainly leaves your operating system more vulnerable which, for an app of this nature, is probably not worth the risk.

As you mentioned, the latest Soundflowerbed release does seem to work. Recommending users use that project for the meantime seems like a much more logical solution for now.

Carson-Shook commented 8 years ago

@ed-george @rgbjoy System integrity didn't even exist until El Capitan, and OS X has done fine since before then. I had to disable it within days of upgrading for another project that I follow. If an app requires a kernel extension, then unless they're good friends with Apple, it's pretty much a guarantee that crsutil will have to be disabled. Seeing as kext dev mode is already a prereq, disabling system integrity is hardly an imposition.

At this point WavTap is way too early in development for Apple to sign. If you want to get it to that point, contribute to the project to help it along.

pje commented 8 years ago

Hey folks!

First some background: WavTap relies on a custom kernel extension to function. Before 2013 (when WavTap was originally written), it was possible to load kernel extensions using only KEXTLOAD(8) and sudo. Over the past two years, Apple has slowly been locking down user access to kernel space. As others have already noted: with El Capitan it is now impossible to install custom kernel extensions unless that extension has been signed by an apple-approved developer ID (and even then you have to write apple to request special permission [1]). I strongly disagree with this trend, but that's the direction they've chosen to take OSX.

WavTap is a simple tool, but it's always been about giving people control over their computers. I've been thinking a lot about what Apple's recent decisions mean for the future of WavTap, and frankly I'm worried that Apple will only choose to lock down the platform further.

That said, I've requested kernel extension permissions from Apple using a new developer account. If Apple deems it worthy, the next step is simply to build a new release of WavTap signed with that certificate. I'll update this thread as soon as I get a response from Apple. Stay tuned, expect news soon.

@rgbjoy: Anything we can do? I don't want to do some weird hacky terminal code in 'restore mode'...

Yes, that's horrible user experience and I wouldn't want to recommend it in the README, but it's certainly a valid temporary workaround.

Also I've just updated the README to mention that WavTap is currently broken..

Everyone: thanks for your patience and happy new year!

ed-george commented 8 years ago

:+1: Thanks for the update @pje, fingers crossed Apple are reasonable about this.

rgbjoy commented 7 years ago

@pje Any updates? =)

devinroth commented 7 years ago

Works in Sierra. Try in El Capitan.

  1. Restart computer in recovery mode ⌘R

  2. In Terminal type

    csrutil disable

  3. Restart computer

  4. Change permissions of kext

    sudo chown -R root:wheel mykext.kext
    sudo chmod -R 755 mykext.kext
  5. Load Kext sudo kextload mykext

Birch-san commented 6 years ago

Confirmed that this works on Sierra.

Proof:

image

=====

Stupid things that you need to do to be allowed to open the .pkg:

Allow apps downloaded from identified developers

image

image

When you open the package, use Right-click > Open

image

But probably you all knew that bit already.

=====

Here's how to allow unsigned kernel extensions:

  1. Restart computer in recovery mode R
  2. Utilities > Terminal
  3. Tell System Integrity Protection to allow unsigned kernel extensions:
    csrutil enable --without kext
  4. Restart computer
  5. Download & install WavTap.0.3.0.pkg (or check for a newer release)
  6. The package will successfully install the application & kernel extension. It will also ask you to restart, so restart.
OYMYO commented 6 years ago

This is my current desktop sound recording set up, working on sierra;

AtharvaVaidya commented 6 years ago

@Birch-san thanks! That worked for High Sierra as well.