Skip to content
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

Add AirportItlwm support for macOS 10.12 10.11 10.10 #632

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

pigworlds
Copy link
Contributor

This pull request adds AirportItlwm support on the following OS versions

  • macOS Sierra 10.12 (Tested 10.12.6)
  • OS X El Captain 10.11 (Tested 10.11.6)
  • OS X Yosemite 10.10 (Tested 10.10.5)

The main change is to add #ifdef in the airport headers on the virtual methods.

I had to change a bit on the createWorkLoop(), otherwise a kernel will panic on IO80211Controller::copyOut() method on 10.11 and 10.10. The IO80211Controller::copyOut() in the older version directly reference to the private workloop object created by the IO80211Controller::createWorkLoop() instead of calling the virtual method getWorkLoop(). The fix is to call the createWorkLoop() in the base and reuse the workloop object

Other changes are strait forward.

I haven't look into use bootloaders to inject the kext because its dependency on IO80211Family.kext. It works well for me if I copy the kext to /Library/Extensions and update the kernel cache. On 10.11 and above, SIP need to be disabled to load unsigned kext. On 10.10, the kext-dev-mode=1 boot args is also needed to load unsigned kext.

@pigworlds
Copy link
Contributor Author

pigworlds commented Jun 23, 2021

Test binaries can be downloaded from the Artifacts in the build

@zxystd
Copy link
Collaborator

zxystd commented Jun 24, 2021

Good Job! Thank you for taking the time and effort to compat various version.
As we all know, there is almost no man using 10.12 and below version of macOS(I can't find a reason why an Hackintosh user not choosing the newer version). For 10.13, we know it supports Nvdia Graphic card, for 10.14, it is the final version that support x32 apps. That's why I just only support to 10.13 and above, others can use itlwm.kext instead.

From my point of view, we don't need to support too much macOS version, it is hard to maintain and confirm working, even we need to stop the 'outdated' version support in the future.

If you don't mind, please add another target(maybe we can call it AirportItlwm-legacy?) for these new versions.

I had to change a bit on the createWorkLoop(), otherwise a kernel will panic on IO80211Controller::copyOut() method on 10.11 and 10.10

I had also noticed this problem a few days ago and make some changes in the stash. But I also noticed that there maybe a big problem about the whole task structure, maybe you had also met the AUTH timeout/ASSOC timeout problem. That's why I didn't commit the changes, hmmm, seems that it needs some time to dig deep into it.
image

@pigworlds
Copy link
Contributor Author

Thanks looking into this. I'll add the AirportItlwm-legacy. Do you think I should also add the Airportitlwm-legacy to the CI/CD?

Another reason I added this because the itlwm+heliport solution doesn't work well on Sierra 10.12 and may be lower. See OpenIntelWireless/HeliPort#221. Having native Airport support will bypass this issue.

Your change to the workloop is cleaner and I'll take it.

@pigworlds
Copy link
Contributor Author

I also noticed another issue on the AUTH timeout recently, not sure if you hit the same. I was reconfiguring the router and discover if the router accepts WPA2 Personal with SHA256, somehow Apple is trying to connect using auth_upper=1024 (APPLE80211_AUTHTYPE_SHA256_PSK). It appears the current code doesn't support this. This will result as timed-out. I turned off the config and it is back to normal.

@zxystd
Copy link
Collaborator

zxystd commented Jun 25, 2021

Thanks looking into this. I'll add the AirportItlwm-legacy. Do you think I should also add the Airportitlwm-legacy to the CI/CD?

I think we don't need to auto build and release as alpha version because we don't plan for mainline maintain of them.
But maybe we can build and upload them as artifacts?

Another reason I added this because the itlwm+heliport solution doesn't work well on Sierra 10.12 and may be lower. See OpenIntelWireless/HeliPort#221. Having native Airport support will bypass this issue.

Yes, I see. And I was happened to plan porting the userspace ifconfig tool from openbsd a few days ago..

Your change to the workloop is cleaner and I'll take it.

Notice, please don't free the workloop when driver cleanup, the instance is maintained by super class.

@pigworlds
Copy link
Contributor Author

pigworlds commented Jun 25, 2021

I updated the pull request and adding AirportItlwm-legacy for macOS 10.12 10.11 and 10.10. The build would be available in the artifacts.

For the getWorkLoop() part, I saw you also changed the getCommandGate() and the new one no longer use the tsleepHandler. I do see all places are using the _fCommandGate->runAction, so it would be safe to remove the references tsleepHandler, correct? May be this can be done in a separated change.

@pigworlds pigworlds force-pushed the airport-10.10-10.11-10.12 branch from 59ed0dc to e07c168 Compare August 2, 2021 06:48
@Pwn17
Copy link

Pwn17 commented Nov 17, 2021

Test binaries can be downloaded from the Artifacts in the build

ehh late but , the airportitlwm legacy thing still exists ? if yes how i can download because would like to test on el capitan 10.11

@pigworlds
Copy link
Contributor Author

Test binaries can be downloaded from the Artifacts in the build

ehh late but , the airportitlwm legacy thing still exists ? if yes how i can download because would like to test on el capitan 10.11

It seems the old artifacts expired. I've kicked another one with the latest code here. I haven't verified and hope it works for you.

@yusufklncc
Copy link

Hi. The airportitlwm legacy thing still exist? If yes how i can download because would like to test on Sierra

@ghost
Copy link

ghost commented Aug 24, 2022

Hi. The airportitlwm legacy thing still exist? If yes how i can download because would like to test on Sierra

https://github.com/kristenlc/itlwm/actions/runs/2922928309
scroll down and click on AirportItlwm-legacy and it will download the zip file
pls can someone mirror this before it expires yet a third time so we developers dont have to keep doing this lol

@Ahmad-B
Copy link

Ahmad-B commented Nov 3, 2022

Hi. The airportitlwm legacy thing still exist? If yes how i can download because would like to test on Sierra

https://github.com/kristenlc/itlwm/actions/runs/2922928309 scroll down and click on AirportItlwm-legacy and it will download the zip file pls can someone mirror this before it expires yet a third time so we developers dont have to keep doing this lol

Did anyone manage to mirror this?

@yusufklncc
Copy link

Hi. The airportitlwm legacy thing still exist? If yes how i can download because would like to test on Sierra

https://github.com/kristenlc/itlwm/actions/runs/2922928309 scroll down and click on AirportItlwm-legacy and it will download the zip file pls can someone mirror this before it expires yet a third time so we developers dont have to keep doing this lol

Did anyone manage to mirror this?

Yeah you can find it on my telegram channel. https://t.me/Hackintosh_TR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

5 participants