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 support for Intel Centrino Wireless-N wireless network devices #399

Merged
merged 6 commits into from
Nov 18, 2020

Conversation

pigworlds
Copy link
Contributor

Port over iwn driver from OpenBSD project.

The iwn driver provides support for Intel Wireless WiFi Link 4965/5000/1000 and Centrino Wireless-N 1000/2000/6000 Series PCIe Mini Card network adapters. *Untested

@pigworlds
Copy link
Contributor Author

@zxystd Thank you create this great project.
As inspired, this work adds iwn driver ported from OpenBSD project. This adds to support more down-level devices.

@williambj1 williambj1 requested a review from zxystd November 17, 2020 07:47
@williambj1 williambj1 added the enhancement New feature or request label Nov 17, 2020
@pigworlds
Copy link
Contributor Author

pigworlds commented Nov 17, 2020

I've tested on Intel Centrino Advanced-N 6205 ONLY. For anyone is interested testing this driver before merge, you can try it here.

AirportItlwm-Big Sur.zip
AirportItlwm-Catalina.zip
itlwm.zip with HeliPort

@zxystd
Copy link
Collaborator

zxystd commented Nov 17, 2020

@pigworlds Thanks for your work. Have you ever do benchmark Speedtest on this iwn driver? TBH, we don't have plan to support it, because we don't have these devices and don't have too much effort to maintain it...

@pigworlds
Copy link
Contributor Author

The speed of this iwn driver is about 55mbps down, and 20mbps up when measured using iperf3 in my environment. This is consistent with Speedtest on the download speed, and upload speed is limited by my internet provider. This isn't bad either compare to the speed listed in FAQ.

I fortunately and have a laptop with this Intel Centrino Advanced-N 6205. Unfortunately the wireless card on the laptop is unreplaceable. I have no other option to use wireless on the laptop other than use it with iwn driver. Most likely I'm able to support this iwn driver until the the laptop stop working.

@zxystd
Copy link
Collaborator

zxystd commented Nov 18, 2020

Ok. I see.

@@ -886,10 +912,34 @@
F8A68DDB2482242E007EB376 /* iwlwifi-cc-a0-48.ucode */,
F8A68DD72482224F007EB376 /* iwlwifi-Qu-b0-hr-b0-48.ucode */,
F8A68DD92482241E007EB376 /* iwlwifi-QuZ-a0-hr-b0-48.ucode */,
17FD7F43255E4EB300611406 /* iwn-100 */,
17FD7F3E255E4EB300611406 /* iwn-105 */,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

iwn-100 is not in use, maybe should delete it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed. This iwn-100 file come from the firmware package, and apparently it is not being used.

getTxNSS()
{
// return !com.sc_nvm.sku_cap_mimo_disable ? (iwn_mimo_enabled(&com) ? 2 : 1) : 1;
return 1;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should not hard coded to 1, some devices may support MIMO, should return the value of sc->ntxchains

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot to point out. I understand incorrectly the MIMO was introduced only to 802.11ac, and it was actually in the N standard. I can find the logs indicate 2T2R, so the TxNSS should be 2.
I also noticed the upload speed increased to 30mbps while test using iperf3 after this change.

itlwm/hal_iwn/ItlIwn.cpp Outdated Show resolved Hide resolved
itlwm/hal_iwn/ItlIwn.cpp Outdated Show resolved Hide resolved
@zxystd
Copy link
Collaborator

zxystd commented Nov 18, 2020

Ok. I don't have device to test it, no more suggestions now, if you find some issues when you are using it, please let me know. Thank you for the contribution again.

@zxystd zxystd merged commit 66f82e8 into OpenIntelWireless:master Nov 18, 2020
@codic12
Copy link

codic12 commented Nov 21, 2020

I'm using the alpha that has this PR merged and I see all my networks. However when I select one and key it in, it connects me, but shows an exclamation mark on the wifi sign and does not let me use Safari. This is all on the recovery USB, btw.

Forgot to mention, this is with AlphaITLWM

@pigworlds
Copy link
Contributor Author

@codic12 Thanks try this out and share the information. Which wifi card are you using? What method of loading the kext? Through OC injection, Clover injection or kextload? Will you able to grab the logs? dmesg | grep -i itlwm should be ok to get last few lines of logs if it is difficulty get full logs in the recovery mode.

During my testing I do see similar issue mostly in the recovery mode. A cycle of turn off wifi and turn on fix this most of time.

@codic12
Copy link

codic12 commented Nov 22, 2020

@pigworlds Hi, same wifi card as you: Intel Centrino Advanced-N 6205.
I'm loading the kext through OpenCore (copying to EFI/OC/Kexts) and adding to Config.plist.
I'll try grabbing logs with dmesg (do that often on my Linux setup, did not know macos had it!).

And I'll try turning it off and on too.

@codic12
Copy link

codic12 commented Nov 22, 2020

Ok, so there was some messages about not recieveing something. However I turned it off and on, and wow it works! I am on the live usb right now, thank you so much!

@pigworlds
Copy link
Contributor Author

@codic12 Glad it works for you. :-) Once you have the full system setup, please report back how it works.

Please note, there are 2 known minor when you inject through OC bootloader:

  1. After boot the system wireless already configured, you may hit a wifi glitch for a few seconds around 1 minute after logon. The logs indicates it hits the iwn_watchdog timeout. It will automatically restart the wifi card and reconnect. You don't need to take any action but just the glitch.
  2. Sometimes you may unable to connect to the wireless in Recovery mode (the issue just reported). Normally a turn off/turn-on cycle in the wifi menu works.

Also note, the iwn driver seems doesn't support MIMO (only support up to SISO MCS 7) and no support 40Mhz channel yet. Please run a speedtest to check the performance of it.

@codic12
Copy link

codic12 commented Nov 22, 2020

Hi @pigworlds,
AirportItlwm was enough to get my Hackintosh installed in under 30 minutes, and it's running very smoothly. However I cannot access wifi, there is no Airport menu in the top bar at all!

(It's been much more than a minute.)

Is there any way to fix this?

@codic12
Copy link

codic12 commented Nov 22, 2020

Oh, and a wifi card does not show in Network Preferences either. Only Ethernet&Modem.

@ErrorErrorError
Copy link
Contributor

Oh, and a wifi card does not show in Network Preferences either. Only Ethernet&Modem.

See if you can add it by pressing the "+" icon on the bottom left in Network Preferences and find interface Wireless or Wi-Fi .

@codic12
Copy link

codic12 commented Nov 22, 2020

No, no interface like that.
Dunno if itlwm is even started, since grep'ing for it in dmesg does not show it sudo dmesg | grep -i itlwm

@pigworlds
Copy link
Contributor Author

pigworlds commented Nov 22, 2020

This sounds the kext is not injected properly. Can you run this to check if it is loaded?
kextstat | grep -i itlwm

Can you manually run this to load to see if it works?
sudo chown -R 0:0 path/to/AirportItlwm.kext
sudo kextload path/to/AirportItlwm.kext

Check https://openintelwireless.github.io/itlwm/Installation.html#airportitlwm to how to load AirportItlwm.kext properly. It is not as simple as just load the kext in OpenCore. Its dependency, IO80211Family needed to be load before.

@codic12
Copy link

codic12 commented Nov 22, 2020

I will try those commands. However, I cannot figure out how to force the kernel (cannot find that part of the manual) to load IO80211Family...? I do not seem to have that kext.

Perhaps I can remove AirportItlwm, and use normal Itlwm for now, if that would work? if so I will try that tomorrow

@codic12
Copy link

codic12 commented Nov 22, 2020

It was just my own stupidity indeed, normal itlwm works perfectl! Speeds are very acceptable, slightly lower than Linux.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Development

Successfully merging this pull request may close these issues.

5 participants