# [SOLVED] Wifi interface not showing up, but ethernet is.

## Cakedy

SOLVED: Turns out I didn't configure my kernel correctly (i.e. I forgot to disable the other wifi drivers that were already enabled for some reason). But thanks for the help everybody! But not entirely sure if it was from also upgrading my kernel to 4.16.2.

Sorry if this question has been asked before, but my wifi interface is not showing up. I've followed the iwlwifi article as my driver is supposed to be there, but the interface still isn't showing up. However, it did show up in Void Linux and Arch Linux.

ip link:

```
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1

    link/sit 0.0.0.0 brd 0.0.0.0

3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000

    link/ether 18:db:f2:56:39:97 brd ff:ff:ff:ff:ff:ff
```

lspci -k | grep Wireless

```
03:00.0 Network controller: Intel Corporation Wireless 3165 (rev 79)

        Subsystem: Intel Corporation Wireless 3165

```

dmesg | grep -i -E '03:00.0|wlp|iwl|80211'

```
[    0.155898] pci 0000:03:00.0: [8086:3165] type 00 class 0x028000

[    0.155929] pci 0000:03:00.0: reg 0x10: [mem 0xdf100000-0xdf101fff 64bit]

[    0.156098] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold

[    0.156188] pci 0000:03:00.0: System wakeup disabled by ACPI

[    3.876368] cfg80211: Unknown symbol wireless_nlevent_flush (err 0)

[    3.876398] cfg80211: Unknown symbol wireless_send_event (err 0)

```

Last edited by Cakedy on Mon Apr 16, 2018 2:18 pm; edited 2 times in total

----------

## Jaglover

Cakedy,

welcome to Gentoo.

The driver for 8086:3165 is in Linux kernel since version 4.5.

You say you followed the Wiki. I assume everything was done properly then. However, there is a trap for new users in the Gentoo Handbook. It is recommended to create a partition for /boot with noauto option in fstab. Meaning /boot won't be mounted automatically at boot. Meaning your new kernel won't be installed in proper location unless you take the extra step to mount /boot by hand. Not sure if this is the case here, just guessing. Although the cfg80211 module error seems to point in this direction.

----------

## Hu

Cakedy, welcome, and thank you for providing those outputs first off.  That may not be enough to solve your problem, but it gets us started, and may save a roundtrip of asking you for that later.  In particular, I appreciate your use of ip link to show that the device doesn't exist, rather than the often misreported "Device does not exist because device appear in ifconfig" which is then traced to "Device had no address, user did not use ifconfig -a, and therefore device was not listed."  The latter is common for people whose DHCP is not setup properly.  Your system isn't quite to that point yet, but your output lets us start from the right point.

It would be better not to use grep to filter the lspci output, since the line showing the kernel driver in use (if one is in use at all) may not match Wireless as a pattern.  You could try grep -A6 Wireless instead, to get some lines following where lspci prints it.  You could also pipe it to a pager (such as less), then manually identify the relevant lines and share those.

To elaborate on Jaglover's remark, check uname -a or inspect /proc/config.gz to verify that you are running the kernel you meant to run.  If none of that helps, install app-text/wgetpaste and use it to upload your kernel configuration to a pastebin so that we can inspect it.

----------

## Cakedy

 *Jaglover wrote:*   

> Cakedy,
> 
> welcome to Gentoo.
> 
> The driver for 8086:3165 is in Linux kernel since version 4.5.
> ...

 

Didn't realize I had to add the noauto option. I did that, but does that mean I have to rebuild the kernel and copy the bzImage over?

@Hu

grep -A6 Wireless

(just hangs and doesn't print anything)

Also I am running the kernel that I am supposed to run for now (4.9.76-gentoo-r1)

P.S. Am using SSH to issue commands from main comp (Void) to laptop (Gentoo) if that is relevant

EDIT:

Here is my fstab if it may help

```

# /etc/fstab: static file system information.

#

# noatime turns off atimes for increased performance (atimes normally aren't

# needed); notail increases performance of ReiserFS (at the expense of storage

# efficiency).  It's safe to drop the noatime options if you want and to

# switch between notail / tail freely.

#

# The root filesystem should have a pass number of either 0 or 1.

# All other filesystems should have a pass number of 0 or greater than 1.

#

# See the manpage fstab(5) for more information.

#

# <fs>                  <mountpoint>    <type>          <opts>          <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.

#

# NOTE: Even though we list ext4 as the type here, it will work with ext2/ext3

#       filesystems.  This just tells the kernel to use the ext4 driver.

#

# NOTE: You can use full paths to devices like /dev/sda3, but it is often

#       more reliable to use filesystem labels or UUIDs. See your filesystem

#       documentation for details on setting a label. To obtain the UUID, use

#       the blkid(8) command.

/dev/sda2       /       ext4    defaults                0 1

/dev/sda1       /boot   vfat    defaults,noauto         0 2

/dev/sda3       /home   ext4    defaults                0 2

```

EDIT2:

Here is my kernel config:

Kernel Config

----------

## Jaglover

Cakedy,

in some cases it is enough to build and install modules without replacing the kernel image. In some cases it won't work. I still tend to think your kernel image is not in sync with modules, because of 'Unknown symbol' error you are getting.

Regarding noauto option, this is Gentoo. You can use noauto for /boot if you wish, or you may not. Just remember, if there is noauto then you have to mount it manaully before installing a new kernel image.

You could also drop your full dmesg into pastebin for us to see.

----------

## Cakedy

 *Jaglover wrote:*   

> Cakedy,
> 
> in some cases it is enough to build and install modules without replacing the kernel image. In some cases it won't work. I still tend to think your kernel image is not in sync with modules, because of 'Unknown symbol' error you are getting.
> 
> Regarding noauto option, this is Gentoo. You can use noauto for /boot if you wish, or you may not. Just remember, if there is noauto then you have to mount it manaully before installing a new kernel image.
> ...

 

http://tinyurl.com/y8yh2f6z

----------

## Jaglover

There is no sign of iwlwifi in this dmesg, what have you done to make sure you are running the correct kernel image?

----------

## Cakedy

 *Jaglover wrote:*   

> There is no sign of iwlwifi in this dmesg, what have you done to make sure you are running the correct kernel image?

 

I configured the kernel manually and followed the amd64 handbook and instructions for iwlwifi, as well as NetworkManager.

----------

## Jaglover

```
uname -v
```

Do you see correct creation time? Is this the kernel you just built and installed?

----------

## Cakedy

 *Jaglover wrote:*   

> 
> 
> ```
> uname -v
> ```
> ...

 

It's the kernel I built yesterday.

uname -v

```
#1 SMP Fri Apr 13 17:02:53 EDT 2018

```

----------

## Jaglover

Cakedy,

we here do not know how many kernels you have built and when. If this is not the latest kernel you have built then please see the hint in my first post in this thread.

----------

## Hu

 *Cakedy wrote:*   

> grep -A6 Wireless
> 
> (just hangs and doesn't print anything)

 I meant you should use grep -A6 Wireless instead of the grep that you used, not as the whole command.  What you ran was grepping terminal input for Wireless, so it was stopped waiting for either EOF (from you) or for you to type a line containing the word Wireless.  I meant for you to run lspci -k | grep -A6 Wireless.  For now, set aside my remarks and focus on Jaglover's line of inquiry.

----------

## Cakedy

 *Hu wrote:*   

>  *Cakedy wrote:*   grep -A6 Wireless
> 
> (just hangs and doesn't print anything) I meant you should use grep -A6 Wireless instead of the grep that you used, not as the whole command.  What you ran was grepping terminal input for Wireless, so it was stopped waiting for either EOF (from you) or for you to type a line containing the word Wireless.  I meant for you to run lspci -k | grep -A6 Wireless.  For now, set aside my remarks and focus on Jaglover's line of inquiry.

 

Oh whoops.

lspci -k | grep -A6 Wireless

```

03:00.0 Network controller: Intel Corporation Wireless 3165 (rev 79)

        Subsystem: Intel Corporation Wireless 3165

        Kernel modules: iwlwifi

```

 *Jaglover wrote:*   

> Cakedy,
> 
> we here do not know how many kernels you have built and when. If this is not the latest kernel you have built then please see the hint in my first post in this thread.

 

Ok, so I mounted my boot partition and rebuilt the kernel and it's modules and have rebooted. But I still don't see the interface.

----------

## Jaglover

https://wiki.gentoo.org/wiki/Kernel/Upgrade

You do not mention installing the new image? Please see the upgrade guide, it applies to kernel rebuilds, too. Indeed, it is possible not to install new kernel if you have a symlink pointing to the image in /usr/src/linux/arch/x86_64/boot/bzImage ... but it is not going to work when /boot is on a different partition. Keep in mind, this is Gentoo. Everyone has their own way to configure the install. We here do not know how you boot your box unless you tell us.

----------

## Cakedy

 *Jaglover wrote:*   

> https://wiki.gentoo.org/wiki/Kernel/Upgrade
> 
> You do not mention installing the new image? Please see the upgrade guide, it applies to kernel rebuilds, too. Indeed, it is possible not to install new kernel if you have a symlink pointing to the image in /usr/src/linux/arch/x86_64/boot/bzImage ... but it is not going to work when /boot is on a different partition.

 

Forgot to mention that I copied the bzImage from /usr/src/linux/arch/x86/boot/ to my /boot partition.

----------

## Jaglover

Did you configure your bootloader (whatever you are using) to boot this new image?

However, the latest lspci you posted shows the driver loaded. How comes it does not show in dmesg? Are you mixing the information you are providing?

----------

## Cakedy

 *Jaglover wrote:*   

> Did you configure your bootloader (whatever you are using) to boot this new image?

 

I'm not sure if grub does that automatically. So my answer is a maybe. But how would I go about doing it with grub2? I did rerun grub-mkconfig and for linux image it said vmlinuz instead of bzImage if that's what you meant by image..

----------

## Cakedy

After some digging in the internet and my dmesg output, as well as attempting to modprobe iwlwifi, and rebuilding my kernel from scratch (i.e. make clean && make -j6 && make modules_install), I discovered that cfg80211 exports a duplicate symbol.

```
[    4.248885] cfg80211: exports duplicate symbol __cfg80211_alloc_event_skb (owned by kernel)

[    4.260438] r8168: loading out-of-tree module taints kernel.

[    4.260662] r8168 Gigabit Ethernet driver 8.044.02-NAPI loaded

[    4.275457] r8168: This product is covered by one or more of the following patents: US6,570,884, US6,115,776, and US6,327,625.

[    4.275460] r8168  Copyright (C) 2017  Realtek NIC software team <nicfae@realtek.com>

                This program comes with ABSOLUTELY NO WARRANTY; for details, please see <http://www.gnu.org/licenses/>.

                This is free software, and you are welcome to redistribute it under certain conditions; see <http://www.gnu.org/licenses/>.

[    4.474738] nvidia: module license 'NVIDIA' taints kernel.

[    4.474739] Disabling lock debugging due to kernel taint

[    4.484874] nvidia-nvlink: Nvlink Core is being initialized, major device number 248

[    4.485070] nvidia 0000:01:00.0: enabling device (0004 -> 0007)

[    4.485139] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=io+mem,decodes=none:owns=none

[    4.485217] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  390.42  Sat Mar  3 04:10:22 PST 2018 (using threaded interrupts)

[    4.514227] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  390.42  Sat Mar  3 03:30:48 PST 2018

[    4.515755] [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver

[    4.581641] ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20160831/nsarguments-95)

[    4.581703] ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20160831/nsarguments-95)

[    4.581733] ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20160831/nsarguments-95)

[    4.581760] ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20160831/nsarguments-95)

[    4.581786] ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20160831/nsarguments-95)

[    4.581826] ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20160831/nsarguments-95)

[    4.581852] ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20160831/nsarguments-95)

[    4.655337] ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20160831/nsarguments-95)

[    5.233807] ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20160831/nsarguments-95)

[    5.234647] nvidia-smi (3256) used greatest stack depth: 12224 bytes left

[    5.274614] EXT4-fs (sda2): re-mounted. Opts: (null)

[    5.392044] EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: (null)

[    6.032269] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

[    6.032444] eth0: 0xffffc90000039000, 18:db:f2:56:39:97, IRQ 124

[    6.090649] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

[    9.215324] r8168: eth0: link up

[    9.215343] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

[  457.071400] cfg80211: exports duplicate symbol __cfg80211_alloc_event_skb (owned by kernel)

[  530.115104] cfg80211: exports duplicate symbol __cfg80211_alloc_event_skb (owned by kernel)

```

That was the last 20 lines or so in my dmesg.

Complete dmesg

----------

## Cakedy

Turns out I didn't configure my kernel correctly. After I upgraded my kernel to 4.16.2, I thought it was a good idea to reconfigure my kernel from scratch and followed the iwlwifi wiki page more carefully, and it worked! NetworkManager and works as well! Thanks for the help everybody.

I'm going to attempt to prepend [SOLVED] to the title now.

----------

