# [SOLVED] Wifi card doesn't detect some wifi networks

## Dangertech

I have installed gentoo for the first time, using my own configured kernel. 

My wifi card is properly detected (Qualcomm Atheros QCA6174) and a `nmcli dev wifi` lists every wifi network around me except the one I have credentials for - what are the odds.

The network in question runs on a very old router manufactured by cbn, which was overtaken by Vodafone, the CBN CH6640E, which has has a page

here: https://www.vodafone.de/hilfe/router/cbn-ch6640e.html?accordion=technische+daten

It's only available in German, so I'll translate the technical properties into English:

1 x Landline connection (RJ11) at the modem + TAE33 (by adapter)

4 x Network port (LAN Ports RJ45)

Encryption standards: WPA2, WPA, WEP-128, WEP-64

Firewall, NAT, DHCP-Server, UPnP-Support

WLAN N-Router for up to 300Mbit/s, supports the common standards 802.11n/g/b/a

`lsmod` lists this:

```

Module                  Size  Used by

ath10k_pci             57344  0

ath10k_core           610304  1 ath10k_pci

ath                    36864  1 ath10k_core

mac80211              966656  1 ath10k_core

libarc4                16384  1 mac80211

cfg80211              929792  3 ath,mac80211,ath10k_core

efivarfs               16384  1

```

The relevant entry in `lspci -nnkv` lists this:

```

02:00.0 Network controller [0280]: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter [168c:003e] (rev 32)

   Subsystem: Lenovo Device [17aa:0827]

   Flags: bus master, fast devsel, latency 0, IRQ 70, IOMMU group 8

   Memory at d0200000 (64-bit, non-prefetchable) [size=2M]

   Capabilities: [40] Power Management version 3

   Capabilities: [50] MSI: Enable+ Count=1/8 Maskable+ 64bit-

   Capabilities: [70] Express Endpoint, MSI 00

   Capabilities: [100] Advanced Error Reporting

   Capabilities: [148] Virtual Channel

   Capabilities: [168] Device Serial Number 00-00-00-00-00-00-00-00

   Capabilities: [178] Latency Tolerance Reporting

   Capabilities: [180] L1 PM Substates

   Kernel driver in use: ath10k_pci

   Kernel modules: ath10k_pci

```

I have enabled every kernel option I could find in the wiki entry about the QCA6174, but the wifi network I need is still missing.

My complete lack of knowledge about networking and configuring the linux kernel suggests that I just haven't ticked some obscure

kernel option which causes this. Any help is appreciated, thanks in advance!

(I should probably link my kernel configuration or something, but I'm unsure which file lists it)Last edited by Dangertech on Thu Apr 14, 2022 12:01 pm; edited 1 time in total

----------

## pietinger

Dangertech,

Welcome to Gentoo Forums !

 *Dangertech wrote:*   

> I should probably link my kernel configuration or something, but I'm unsure which file lists it)

 

This would be /usr/src/linux/.config ... but maybe we dont need it.

 *Dangertech wrote:*   

> [...]) and a `nmcli dev wifi` lists every wifi network around me except the one I have credentials for - what are the odds.

 

This means your wifi works ...

As beeing german you may explain what is / means this in your contract:

"Hinweis: WLAN ist nur mit der gebuchten WLAN-Option verfügbar."

Have you tried to connect your smart phone to your local network (as a test) ?

----------

## NeddySeagoon

Dangertech,

Welcome to Gentoo.

I can think of a number of issues.

1. Your router is set to use a 'hidden SSID'. That does not really hide the SSID, it just makes the WAP non standards compliant and some Wifi adaptors won't work with it.

That's not a bug, its a feature.

2. You are missing the regulatory database in your kernel, so your wifi is restricted to a subset of available channels.

However, you can see all the networks except the one you want, so that's unlikely.

Make friends with wgetpaste and share your dmesg output and your kernel .config file please.

They are far too big to fit into a post.

----------

## Dangertech

 *Quote:*   

> 
> 
> As beeing german you may explain what is / means this in your contract:
> 
> "Hinweis: WLAN ist nur mit der gebuchten WLAN-Option verfügbar."
> ...

 

It simply says that the wifi is only available if the owner of the router also buys a fitting subscription - which is the case.

The network is 100% live, I'm accessing this website through it. I could connect on other distros that ran on this laptop before,

I use the network every day, I had no connection troubles with it yet whatsoever. I have no idea what could be special about it,

except that the router is relatively old.

Just in case, I'm adding some information about it, accessed through 192.168.0.1 (I'm sorry for the bad formatting):

```

System information

 

Information

Producer            CBN Inc.

Model                    CH6640E

Hardware Version    1.0

Firmware Version    CH6640-4.5.2.1-NOSH

Boot Version            PSPU-Boot(BBU) 1.0.12.19m1-CBN03

 

Status

DOCSIS Mode    DOCSIS 3.0

Network Access   Allowed

System Uptime    13Tag(e)20h:46m:31s

WLAN

SSID                    KDG-BEE34

WLAN Security    Mixed WPA-PSK/WPA2-PSK

WLAN standard    802.11b/g/n mixed

WLAN Channel    1

WLAN Status    Activated

```

I also couldn't connect to it on the gentoo minmal installation cd, but other networks, including a hotspot from my smartphone.

But in the long term of course, this is no solution.

----------

## Dangertech

Ok, I did as asked, here's my kernel config: https://dpaste.com/492SWWKC7

~And this is my dmesg output: https://dpaste.com/AJCWUF7GB ~ I'm sorry, disregard that, I didn't think when writing this, that's the output from the Manjaro Live CD I used to chroot and get the output. I'm stupid.

That's the REAL dmesg output, from the live machine, running the actual kernel: https://dpaste.com/8KMZDH8TK

 *Quote:*   

> 
> 
> 1. Your router is set to use a 'hidden SSID'.
> 
> 

 

If that is what you mean by that, `nmcli dev wifi` lists networks without an SSID, but

my network is not configured like that. Also, the BSSID of these hidden networks do not

match with the BSSID of KDG-BEE34 (my network) that my smartphone reports.

 *Quote:*   

> 
> 
> 2. You are missing the regulatory database in your kernel, so your wifi is restricted to a subset of available channels.
> 
> However, you can see all the networks except the one you want, so that's unlikely. 
> ...

 

The router seems to be set to pick the best channel automatically, but it mostly operates on Channel 1 - of which

are multiple listed in the scan. But its very likely that my problem is related to a misconfigured Kernel indeed.

----------

## NeddySeagoon

Dangertech,

I would probably have spotted

```
# dmesg

[    0.000000] Linux version 5.13.19-2-MANJARO
```

Its still interesting and maybe even useful. Manjaro shows

```
[   52.725566] wlp2s0: authenticate with 5c:35:3b:7b:ee:39

[   52.778478] wlp2s0: send auth to 5c:35:3b:7b:ee:39 (try 1/3)

[   52.780086] wlp2s0: authenticated

[   52.780674] wlp2s0: associate with 5c:35:3b:7b:ee:39 (try 1/3)

[   52.784562] wlp2s0: RX AssocResp from 5c:35:3b:7b:ee:39 (capab=0x411 status=0 aid=5)

[   52.787959] wlp2s0: associated

[   52.795110] wlp2s0: disassociated from 5c:35:3b:7b:ee:39 (Reason: 14=MIC_FAILURE)
```

Then it has another go and gets authenticated and associated correctly.

In Gentoo, it all looks good but there is no attempt to authenticate and associate al all. Until that happens, there is no radio link.

How do you intend to start your Wifi in Gentoo?

While I'm looking at your Gentoo dmesg, it says 

```
[    0.512752] amdgpu 0000:03:00.0: Direct firmware load for amdgpu/picasso_gpu_info.bin failed with error -2

[    0.512763] amdgpu 0000:03:00.0: amdgpu: Failed to load gpu_info firmware "amdgpu/picasso_gpu_info.bin"

[    0.512771] amdgpu 0000:03:00.0: amdgpu: Fatal error during GPU init
```

so its using 

```
[    0.533728] fb0: EFI VGA frame buffer device
```

instead.

That means that your GUI won't work either.

You need to build the firmware into the kernel binary by naming it in 

```
CONFIG_EXTRA_FIRMWARE=""
```

or flip 

```
CONFIG_DRM_AMDGPU=y
```

to be a loadable module.

The firmware must be available when the kernel driver starts.

The amdgpu wiki page may help.

```
[   16.729803] [drm] initializing kernel modesetting (RAVEN 0x1002:0x15D8 0x17AA:0x3805 0xC2).
```

That's a Picasso/Raven 2 [Radeon Vega Series / Radeon Vega Mobile Series] GPU

----------

## Dangertech

The log doesn't show any attempts of connecting to a network because the network isn't even known to it - thus any attempt from

my side to set up an automatic connection through NetworkManager, for example, would be useless. The only thing I could do so far

was running `nmcli dev wifi`and finding every network except my own.

Manjaro shows this entry because I manually clicked the funny buttons in the XFCE panel to set up my internet connection. I don't remember

exactly, but it's very possible that I mistyped the password the first time I tried to authenticate, had to find out I forgot to set my keymap to dvorak,

change that, type in the password again and hit connect. That would explain the big delay between the two attempts.

 *Quote:*   

> 
> 
> That means that your GUI won't work either.
> 
> 

 

I am fully aware that my Kernel is currently not set up to start a graphical session, as well as run other basic hardware - like audio cards, bluetooth

chips, mice and probably some funky stuff like setting up my HDMI port for a second monitor. I'll get around to that when I have a stable internet

connection on my system, first things first. After that, I hopefully don't have to enter any live environments any more to install software and the likes.

I really need to get that issue with my wifi fixed before I can start properly setting everything up. I find it astonishing that I can find no mentions whatsoever 

of this problem on the internet, I mean, I am desperate enough to start a forum thread about it myself.

Thanks for your help!

----------

## NeddySeagoon

Dangertech,

My German is non existent but I have found a scanned copy of the user guide on line, which I can't read, and a slightly different one for the same model, in English, which I can read.

By looking at both, your gateway appears to support hidden SSIDs. If the SSID is hidden, the network is not supposed to appear in any lists of networks. 

The SSID is broadcast in about three different ways. setting hidden on suppresses one of them. Sone tools show hidden networks, some have an option.

wpa-supplicant will connect to hidden networks.

Please check that the SSID you are looking for is not hidden.

On the topic of wpa-supplicant, USE=tkip is off by default as its no longer secure.

----------

## Dangertech

The option 'Netzwerk Ausblenden' (hide Network, I refer to the screenshot on page 36 of the manual) is not ticked in my router settings, it is

described as exactly what you mean: "With a hidden Network, the users have to enter the SSID in their client instead of selecting the SSID from

a list. This makes it harder to gain access." Since all the devices of my entire not-very-tech-savvy family let them choose the network happily

from a list, I don't think that this is the issue.

But I gathered some new, very interesting information: Out of curiosity, I disabled the NetworkManager service and tried connecting through wpa_supplicant

(I used wpa_cli as a frontend). And... wpa_cli showed me the KDG-BEE34 network just fine! A bit staggered, I added a network with the credentials and was

promptly greeted with CTRL-EVENT-CONNECTED. However, after my initial hope, I was disappointed to see that a `ping gnu.org` or `ping 8.8.8.8` didn't

work. `ip a` only shows my wifi card with a IPv6 address:

```

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

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

    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

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

    link/sit 0.0.0.0 brd 0.0.0.0

3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

    link/ether 80:30:49:bd:fd:9b brd ff:ff:ff:ff:ff:ff

    inet6 fe80::8230:49ff:febd:fd9b/64 scope link 

       valid_lft forever preferred_lft forever

```

(I have no idea where sit0 comes from, I think it appeared after a kernel recompilation of mine, but it doesn't seem to be harmful)

I think that could be an issue with wpa_supplicant and I think I read somewhere that one can do something to fix it and

get an IPv4 address, but I can't find it anymore! 

Honestly, I have no idea what the difference between NetworkManager and wpa_supplicant could be here, because I am

pretty certain that the network is not hidden.

Here are the `dmesg` logs of the event: https://dpaste.com/DXFNVV7GE

As you can see, there are three authentication attempts with two different networks; The first one is me successfully

connecting to a hotspot on my smartphone, from which I could successfully ping google.com. The two others are 

connections to KDG-BEE34 - I did it twice because I couldn't believe what I saw at first. If I could connect to my network

through wpa_supplicant I would be satisfied already.

----------

## jburns

If net-wireless/wpa_supplicant is built with -tkip it will not see wifi connections that offer WPA-PSK as a connection option.  Try building net-wireless/wpa_supplicant with the tkip USE flag.

----------

## Dangertech

Somehow, after waking up today, it works now. The scan for networks showed mine, I did the good ol' `nmcli dev wifi con KDG-BEE34 --ask` and everything

was just fine, a connection was established. I didn't do a rebuild of any software, I didn't change any USE flags, nothing.

What I did do though was changing the Network security settings from "Mixed WPA-PSK/WPA2-PSK" to "WPA2-PSK", which I guess did the trick.

And again, I am definitely not very knowledgeable when it comes to computer networking, but changing this probably changed the network

from the TKI-Protocol which is known as unsafe to the AES protocol which is supported by the default USE flags. 

(As a sidenote, I am not in charge for the network I want to connect to, I just happen to have access to it. This security flaw is not my fault.)

But since I want to be able to see and connect to every network my laptop finds, I added 'tkip' to my USE flags and rebuilt affected software.

TLDR: Some old networks use deprecated protocols which are not supported by the default gentoo networking stack by design. 

Try to add 'tkip' to your USE flag, or even better, ask the network administrator to change the settings of the router to "WPA2-PSK" if they can.

Thanks to everyone who helped, I would have probably given up if it was not for this forum thread.

----------

## steel_penguin

Had totally the same problem: wasn't able to detect/connect some wifi networks in gentoo, however

detected & connected the very same networks in windows/macos.

Added tkip to USE flags, rebuilt all affected packages, worked like a magic!

Thank you!

----------

