I don’t currently have ethernet lines running to my new office space.  The NUC does have builtin wireless, but doesn’t appear functional in the linux 3.10 kernel that is installed by default on RHEL7

[sourcecode language=”bash”]

# lspci -nn | grep -n net
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection I219-V [8086:1570] (rev 21)

01:00.0 Network controller [0280]: Intel Corporation Wireless 8260 [8086:24f3] (rev 3a)

# grep -i 8086.*24f3 /lib/modules/*/modules.alias

alias pci:v00008086d000024F3sv*sd00000010bc*sc*i* iwlwifi

# lsmod | grep wifi
# [nothing]
[/sourcecode]

I can load it explicitly by doing:

[sourcecode language=”bash”]
# modprobe iwlwifi

iwlwifi 112501 0

cfg80211 514740 1 iwlwifi
[/sourcecode]

but the NetworkManager doesn’t see the interface. Running ‘systemctl restart NetworkManager’ doesn’t help.

If I switch to the 4.5 kernel and install the latest iwlwifi firmware I’m able to get things up and running:

[sourcecode language=”bash”]
rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum -y install yum-plugin-fastestmirror
yum –enablerepo=elrepo-kernel install kernel-ml

git clone http://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
cp linux-firmware/iwlwifi*.ucode /lib/firmware/
[/sourcecode]

After boot, I get dmesg errors from the iwlwifi driver:

[sourcecode language=”bash”]
# dmesg | grep wifi

[ 2.612790] iwlwifi 0000:01:00.0: enabling device (0000 -> 0002)

[ 2.618136] iwlwifi 0000:01:00.0: Unsupported splx structure

[ 2.619632] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-20.ucode failed with error -2

[ 2.619635] iwlwifi 0000:01:00.0: Falling back to user helper

[ 63.005134] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-19.ucode failed with error -2

[ 63.005137] iwlwifi 0000:01:00.0: Falling back to user helper

[ 122.981747] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-18.ucode failed with error -2

[ 122.981751] iwlwifi 0000:01:00.0: Falling back to user helper

[ 182.977468] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-17.ucode failed with error -2

[ 182.977472] iwlwifi 0000:01:00.0: Falling back to user helper
[/sourcecode]

The firmware copied from linux-firmware had version: iwlwifi-8000C-21.ucode which is newer than the any of the ones in the failed to load messages. I wonder if that splx structure error is from attempting to load 8000C-21?

It turns out that the user mode driver works, but you have to be really patient. A number of minutes after boot it kicks in, which can be seen by the mac80211 driver now running:

[sourcecode language=”bash”]
# lsmod | grep wifi

iwlwifi 139264 1 iwlmvm

cfg80211 577536 3 iwlwifi,mac80211,iwlmvm
[/sourcecode]

I then also see the following additional dmesg log points from the wifi driver:

[sourcecode language=”bash”]

# dmesg | grep iwlwifi

[ 122.544157] iwlwifi 0000:01:00.0: Falling back to user helper

[ 182.549189] iwlwifi 0000:01:00.0: loaded firmware version 17.254495.0 op_mode iwlmvm

[ 182.557558] iwlwifi 0000:01:00.0: Detected Intel(R) Dual Band Wireless AC 8260, REV=0x208

[ 182.557910] iwlwifi 0000:01:00.0: L1 Enabled – LTR Enabled

[ 182.558824] iwlwifi 0000:01:00.0: L1 Enabled – LTR Enabled

[ 182.559866] iwlwifi 0000:01:00.0: can’t access the RSA semaphore it is write protected

[ 182.707622] iwlwifi 0000:01:00.0 wlp1s0: renamed from wlan0

[ 182.719296] iwlwifi 0000:01:00.0: L1 Enabled – LTR Enabled

[ 182.719562] iwlwifi 0000:01:00.0: L1 Enabled – LTR Enabled

[ 182.720422] iwlwifi 0000:01:00.0: can’t access the RSA semaphore it is write protected

[ 182.855388] iwlwifi 0000:01:00.0: L1 Enabled – LTR Enabled

[ 182.855958] iwlwifi 0000:01:00.0: L1 Enabled – LTR Enabled

[ 182.857102] iwlwifi 0000:01:00.0: can’t access the RSA semaphore it is write protected
[/sourcecode]

At this point the wifi connection shows up in the NetworkManager, and I’m able to configure the WPA password, giving me a wlp1s0 interface configured and available for use.