Wifi shows its connected for 5Ghz radio but will not resolve an address, but connecting with 2.4Ghz Radio always works

Hi,

I have been having this really odd issue where connecting my wifi to 5Ghz wifi succeeds but then trying to ping or resolve an address (e.g. google.ca) will result in a “Host not found” error message. To get the connection to work I end up:

  1. Set Network Manager to not connect to any wifi.

  2. Then Connect to the 2.4 Ghz radio on the same card to the router (this always connects and gets internet access).

  3. After I make sure I can go to an internet website or ping and address I will then connected using the 5 Ghz radio. I may have to switch between the radios till it eventually works. Sometimes rebooting the system and then the 5Ghz radio and network configuration allow and address to be resolved.

  4. IPV6 is disabled, IPV4 looks like this:

image

  1. Both radios work 100% of the time if I use Windows 10.

Question:

  1. I want the “Intel Centrino Advanced-N 6205 [Taylor Peak]” to work dependably. Both my Thinkpads (x230 and T430s) use the same model of radio and have the same problem. Is this a known bug. Is there a fix?

Environment:

System: Host: hanna Kernel: 5.4.64-1-MANJARO x86_64 bits: 64 compiler: gcc v: 10.2.0
Desktop: GNOME 3.36.6 tk: GTK 3.24.23 wm: gnome-shell dm: GDM 3.36.3
Distro: Manjaro Linux

Network: Device-1: Intel Centrino Advanced-N 6205 [Taylor Peak] driver: iwlwifi v: kernel
port: efa0 bus ID: 03:00.0 chip ID: 8086:0085

Hi, i would advice to experiment a bit with the driver options:

$ modinfo iwlwifi
[...]
name:           iwlwifi
[...]
parm:           debug:debug output mask (uint)
parm:           swcrypto:using crypto in software (default 0 [hardware]) (int)
parm:           11n_disable:disable 11n functionality, bitmap: 1: full, 2: disable agg TX, 4: disable agg RX, 8 enable agg TX (uint)
parm:           amsdu_size:amsdu size 0: 12K for multi Rx queue devices, 2K for AX210 devices, 4K for other devices 1:4K 2:8K 3:12K 4: 2K (default 0) (int)
parm:           fw_restart:restart firmware in case of error (default true) (bool)
parm:           antenna_coupling:specify antenna coupling in dB (default: 0 dB) (int)
parm:           nvm_file:NVM file name (charp)
parm:           uapsd_disable:disable U-APSD functionality bitmap 1: BSS 2: P2P Client (default: 3) (uint)
parm:           enable_ini:Enable debug INI TLV FW debug infrastructure (default: true (bool)
parm:           bt_coex_active:enable wifi/bt co-exist (default: enable) (bool)
parm:           led_mode:0=system default, 1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0) (int)
parm:           power_save:enable WiFi power management (default: disable) (bool)
parm:           power_level:default power save level (range from 1 - 5, default: 1) (int)
parm:           fw_monitor:firmware monitor - to debug FW (default: false - needs lots of memory) (bool)
parm:           disable_11ac:Disable VHT capabilities (default: false) (bool)
parm:           remove_when_gone:Remove dev from PCIe bus if it is deemed inaccessible (default: false) (bool)
parm:           disable_11ax:Disable HE capabilities (default: false) (bool)

Here is a sample script to do so:

#!/bin/bash
# removes the driver module temporary 
# and activates it with specific options
rmmod iwlwifi && \
modprobe iwlwifi \
11n_disable=1 \
disable_11ac=1 \
disable_11ax=1 \
power_save=0 \
swcrypto=1

Adjuste the values with written parameters. If something goes wrong… just reboot. The change is just temporary.

Beside that i would watch the journal meanwhile:

journalctl -f
1 Like