# Kernel not loading wireless rtl8821ae driver FW[solved]

## tenspd1370

Hi all -

I am having trouble getting my wireless card working.

Using lspci, I have found it is:

02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8821AE 802.11ac PCIe Wireless Network Adapter

I have the following set in my kernel config:

```

# CONFIG_USB_RTL8150 is not set

# CONFIG_USB_RTL8152 is not set

CONFIG_RTL8180=y

CONFIG_RTL8187=y

CONFIG_RTL8187_LEDS=y

CONFIG_RTL_CARDS=y

# CONFIG_RTL8192CE is not set

# CONFIG_RTL8192SE is not set

# CONFIG_RTL8192DE is not set

# CONFIG_RTL8723AE is not set

# CONFIG_RTL8723BE is not set

# CONFIG_RTL8188EE is not set

# CONFIG_RTL8192EE is not set

CONFIG_RTL8821AE=y

# CONFIG_RTL8192CU is not set

CONFIG_RTLWIFI=y

CONFIG_RTLWIFI_PCI=y

CONFIG_RTLWIFI_DEBUG=y

CONFIG_RTLBTCOEXIST=y

CONFIG_RTL8XXXU=y

# CONFIG_RTL8XXXU_UNTESTED is not set

# CONFIG_SERIAL_UARTLITE is not set

# CONFIG_IBM_RTL is not set

```

and have compiled in the FW:

```

CONFIG_FIRMWARE_IN_KERNEL=y

CONFIG_EXTRA_FIRMWARE="amdgpu/carrizo_ce.bin amdgpu/carrizo_me.bin amdgpu/carrizo_mec2.bin amdgpu/carrizo_mec.bin amdgpu/carrizo_pfp.bin amdgpu/carrizo_rlc.bin amdgpu/carrizo_sdma1.bin amdgpu/carrizo_sdma.bin amdgpu/carrizo_uvd.bin amdgpu/carrizo_vce.bin rtlwifi/rtl8821aefw_29.bin rtlwifi/rtl8821aefw.bin rtlwifi/rtl8821aefw_wowlan.bin"

CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"

```

but when I run dmesg | grep rtl:

```

└┌(%:~)┌- dmesg | grep rtl

[    1.854189] rtl8821ae 0000:02:00.0: enabling device (0000 -> 0003)

[    1.867146] rtl8821ae: Using firmware rtlwifi/rtl8821aefw_29.bin

[    1.867163] rtl8821ae: Using firmware rtlwifi/rtl8821aefw_wowlan.bin

[    1.867192] rtl8821ae 0000:02:00.0: Direct firmware load for rtlwifi/rtl8821aefw_29.bin failed with error -2

[    1.867223] rtl8821ae 0000:02:00.0: Direct firmware load for rtlwifi/rtl8821aefw.bin failed with error -2

[    1.867246] rtlwifi: Loading alternative firmware rtlwifi/rtl8821aefw.bin

[    1.867263] rtlwifi: Selected firm ware is not available

[    1.867445] rtl8821ae 0000:02:00.0: Direct firmware load for rtlwifi/rtl8821aefw_wowlan.bin failed with error -2

[    1.867475] rtl8821ae 0000:02:00.0: Direct firmware load for rtlwifi/rtl8821aefw.bin failed with error -2

[    1.867498] rtlwifi: Loading alternative firmware rtlwifi/rtl8821aefw.bin

[    1.867515] rtlwifi: Selected firmware is not available

[    1.868153] ieee80211 phy0: Selected rate control algorithm 'rtl_rc'

[    1.868278] rtlwifi: rtlwifi: wireless switch is on

[    8.088791] rtl8821ae 0000:02:00.0 wlp2s0: renamed from wlan0

[   13.133643] rtl8821ae: Polling FW ready fail!! REG_MCUFWDL:0x80000306 .

```

I am using kernel linux-4.14.13-gentoo

and am really stuck on this one.  I figure that getting the FW right is the first step - I can then worry about the wpa_supplicant configuration and bluetooth further out than that.

Thanks!Last edited by tenspd1370 on Sat Jan 20, 2018 5:12 am; edited 1 time in total

----------

## Jaglover

It seems you are doing everything right, yet you are getting error -2, which means not found. The only conclusion I can reach is you are not running the kernel you think you are. Does uname -a show correct date and time for running kernel build?

----------

## tenspd1370

That is what I thought - and I did a make && make modules_install; make install; and genkernel --install initramfs - but uname -a reports:

Linux cthulu 4.14.13-gentoo #4 SMP Fri Jan 12 17:17:00 MST 2018 x86_64 AMD A12-9800 RADEON R7, 12 COMPUTE CORES 4C+8G AuthenticAMD GNU/Linux

which is definitely not today.  Did I miss a step?  I could try to copy my .config, do a make clean; make mrproper; and then put the config file back and try again after wiping out /boot.

I would just have to make sure there are no power outages.....  :Smile: 

----------

## Jaglover

Is there noauto option in your fstab for /boot?

----------

## tenspd1370

Yes - that is where the problem probably is.  Quick question - I can still ls /boot - but mount | grep boot shows nothing?  I missed something - how does that work?  In the past, it would tell me boot isn't mounted, or at least that is what I remember....

Ohh - wait, it puts stuff in the mount point and then (at boot) hides it - DOH!

In my defense - I did go drinking a bit tonight after I initially wrote this......

----------

## Jaglover

man fstab

```
       The fourth field (fs_mntops).

              This field describes the mount options associated with the filesystem.

              It is formatted as a comma-separated list of options.  It contains at least the type of mount

              (ro or rw), plus any additional options appropriate to the filesystem type (including perfor‐

              mance-tuning options).  For details, see mount(8) or swapon(8).

              Basic filesystem-independent options are:

              defaults

                     use default options: rw, suid, dev, exec, auto, nouser, and async.

              noauto do not mount when "mount -a" is given (e.g., at boot time)

              user   allow a user to mount

              owner  allow device owner to mount

              comment

                     or x-<name> for use by fstab-maintaining programs

              nofail do not report errors for this device if it does not exist.

```

----------

## tenspd1370

Yes - I did that on purpose, but forgot to mount before building a new kernel.  I just copied everything out of /boot (mountpoint), mounted /dev/sda2 as boot, and copied everything back in.

uname -a:

```
Linux cthulu 4.14.13-gentoo #6 SMP Fri Jan 19 18:47:19 MST 2018 x86_64 AMD A12-9800 RADEON R7, 12 COMPUTE CORES 4C+8G AuthenticAMD GNU/Linux
```

```
└┌(%:~)┌- dmesg | grep rtl

[    1.839177] usbcore: registered new interface driver rtl8187

[    1.839218] rtl8821ae 0000:02:00.0: enabling device (0000 -> 0003)

[    1.852182] rtl8821ae: Using firmware rtlwifi/rtl8821aefw_29.bin

[    1.852203] rtl8821ae: Using firmware rtlwifi/rtl8821aefw_wowlan.bin

[    1.852967] ieee80211 phy0: Selected rate control algorithm 'rtl_rc'

[    1.853107] rtlwifi: rtlwifi: wireless switch is on

[    1.853220] usbcore: registered new interface driver rtl8xxxu

[    8.006224] rtl8821ae 0000:02:00.0 wlp2s0: renamed from wlan0

```

Thank you for pointing that out to me - I just completely forgot about that - I used to always just mount boot, thought I would try something different (new system here) - very stupid mistake, but your help is MUCH appreciated  :Smile: 

[Moderator edit: added [code] tags to preserve output layout. -Hu]

----------

