# Unable to bring up wifi card, 5ghz radio disabled?

## bunder

Setting up a new router (edit: on 4.19) to get rid of my old one (edit: which I think was on 4.14), I popped my wifi card into the new box and I can't seem to get hostapd to start.

```
Nov 27 13:34:53 hyper hostapd: wlan0: IEEE 802.11 Configured channel (44) not found from the channel list of current mode (2) IEEE 802.11a

Nov 27 13:34:53 hyper hostapd: wlan0: IEEE 802.11 Hardware does not support configured channel

Nov 27 13:34:53 hyper /etc/init.d/hostapd[42612]: start-stop-daemon: failed to start `/usr/sbin/hostapd'

Nov 27 13:34:53 hyper /etc/init.d/hostapd[42309]: ERROR: hostapd failed to start

```

I copied the hostapd.conf from my previous machine, and it seemed to be working fine there...

```
Nov 27 14:07:05 hyper kernel: ath9k 0000:06:00.0: enabling device (0000 -> 0002)

Nov 27 14:07:05 hyper kernel: ath: EEPROM regdomain: 0x14

Nov 27 14:07:05 hyper kernel: ath: EEPROM indicates we should expect a direct regpair map

Nov 27 14:07:05 hyper kernel: ath: Country alpha2 being used: CA

Nov 27 14:07:05 hyper kernel: ath: Regpair used: 0x14

```

```
Nov 27 14:07:05 hyper kernel: PKCS#7 signature not signed with a trusted key

Nov 27 14:07:05 hyper kernel: cfg80211: loaded regulatory.db is malformed or signature is missing/invalid

Nov 27 14:07:05 hyper kernel: cfg80211: Loading compiled-in X.509 certificates for regulatory database

Nov 27 14:07:05 hyper kernel: cfg80211: Problem loading in-kernel X.509 certificate (-22)

```

Not really sure what this is all about, everything I read online about the regulatory stuff is either outdated, or suggests turning off secure boot, which I disabled before I even installed the OS on this box.  I have regulatory.db and regulatory.db.p7s in firmware, wireless-regdb and crda are installed...  When I run iw get reg it says it's set to Canada, but the radio is disabled because of some NO-IR nonsense.

Kernel config: http://dpaste.com/263CBSJ

Any ideas would be helpful, thanks in advance.

----------

## bunder

building the entire wireless stack as modules seems to have worked.  not sure why it doesn't work as built-ins, my laptop seems to handle it okay.  cheers

----------

## Hu

Builtin drivers may initialize before the filesystem is ready to provide needed supporting files (proprietary firmware, or the regulatory database).  Modules will initialize later, after the filesystem is available.  If you want the driver to be builtin, you could build the supporting files into the kernel or initramfs.

----------

## bunder

Oh jeez.  It's never good when you find your own thread and it doesn't help...

Upgraded from 5.4.200 to 5.15.60 and it's broken again.   :Evil or Very Mad: 

```

hyper ~ # dmesg | grep 80211

[   29.972046] cfg80211: Loading compiled-in X.509 certificates for regulatory database

[   29.973599] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'

[   31.100198] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'

[   31.100388] ieee80211 phy0: Atheros AR9300 Rev:3 mem=0xfffface51f380000, irq=41

hyper ~ # dmesg | grep regulatory

[   29.973612] Loading firmware: regulatory.db

[   29.973614] Loading firmware: regulatory.db.p7s

hyper ~ # dmesg | grep ath

[   31.017841] ath9k 0000:06:00.0: enabling device (0000 -> 0002)

[   31.099744] ath: EEPROM regdomain: 0x14

[   31.099745] ath: EEPROM indicates we should expect a direct regpair map

[   31.099746] ath: Country alpha2 being used: CA

[   31.099747] ath: Regpair used: 0x14

hyper ~ # /etc/init.d/net.wlan0 status

 * status: started

hyper ~ # /etc/init.d/hostapd start

 * Starting hostapd ...

wlan0: interface state UNINITIALIZED->COUNTRY_UPDATE

Frequency 5220 (primary) not allowed for AP mode, flags: 0x10073 NO-IR

Primary frequency not allowed

wlan0: IEEE 802.11 Configured channel (44) or frequency (5220) (secondary_channel=0) not found from the channel list of the current mode (2) IEEE 802.11a

wlan0: IEEE 802.11 Hardware does not support configured channel

Could not select hw_mode and channel. (-3)

wlan0: interface state COUNTRY_UPDATE->DISABLED

wlan0: AP-DISABLED 

wlan0: Unable to setup interface.

wlan0: interface state DISABLED->DISABLED

wlan0: AP-DISABLED 

wlan0: CTRL-EVENT-TERMINATING 

hostapd_free_hapd_data: Interface wlan0 wasn't started

nl80211: deinit ifname=wlan0 disabled_11b_rates=0

 * start-stop-daemon: failed to start `/usr/sbin/hostapd'

 * Failed to start hostapd                                                                                                                                                                                                            [ !! ]

 * ERROR: hostapd failed to start

```

```

hyper ~ # zgrep 80211 /proc/config.gz                                                                                  

CONFIG_CFG80211=m

# CONFIG_NL80211_TESTMODE is not set

# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set

# CONFIG_CFG80211_CERTIFICATION_ONUS is not set

CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y

CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y

CONFIG_CFG80211_DEFAULT_PS=y

# CONFIG_CFG80211_DEBUGFS is not set     

CONFIG_CFG80211_CRDA_SUPPORT=y

# CONFIG_CFG80211_WEXT is not set      

CONFIG_MAC80211=m            

CONFIG_MAC80211_HAS_RC=y

CONFIG_MAC80211_RC_MINSTREL=y

CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y

CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"

# CONFIG_MAC80211_MESH is not set

CONFIG_MAC80211_LEDS=y                     

# CONFIG_MAC80211_DEBUGFS is not set

# CONFIG_MAC80211_MESSAGE_TRACING is not set

# CONFIG_MAC80211_DEBUG_MENU is not set

CONFIG_MAC80211_STA_HASH_MAX_SIZE=0

# CONFIG_MAC80211_HWSIM is not set

hyper ~ # zgrep ATH /proc/config.gz                                                                                    

CONFIG_ATH_COMMON=m

CONFIG_WLAN_VENDOR_ATH=y

# CONFIG_ATH_DEBUG is not set

CONFIG_ATH9K_HW=m

CONFIG_ATH9K_COMMON=m

CONFIG_ATH9K_BTCOEX_SUPPORT=y

CONFIG_ATH9K=m

CONFIG_ATH9K_PCI=y

# CONFIG_ATH9K_AHB is not set

# CONFIG_ATH9K_DEBUGFS is not set

# CONFIG_ATH9K_DYNACK is not set

# CONFIG_ATH9K_WOW is not set

CONFIG_ATH9K_RFKILL=y

# CONFIG_ATH9K_CHANNEL_CONTEXT is not set

CONFIG_ATH9K_PCOEM=y

# CONFIG_ATH9K_PCI_NO_EEPROM is not set

# CONFIG_ATH9K_HTC is not set

CONFIG_ATH9K_HWRNG=y

```

```

CONFIG_FW_LOADER=y

CONFIG_EXTRA_FIRMWARE="...snip... regulatory.db regulatory.db.p7s"

```

```

hyper ~ # cat /etc/modprobe.d/wifi.conf 

options cfg80211 ieee80211_regdom="CA"

```

```

hyper ~ # lsmod

Module                  Size  Used by

ath9k                  98304  0

ath9k_common           16384  1 ath9k

ath9k_hw              462848  2 ath9k_common,ath9k

ath                    36864  3 ath9k_common,ath9k,ath9k_hw

mac80211              774144  1 ath9k

cfg80211              761856  4 ath9k_common,ath9k,ath,mac80211

rfkill                 28672  2 ath9k,cfg80211

```

```

hyper ~ # emerge -pv wireless-regdb hostapd crda

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R    ] net-wireless/wireless-regdb-20220606::gentoo  0 KiB

[ebuild   R    ] net-wireless/crda-4.14::gentoo  USE="-gcrypt" 0 KiB

[ebuild   R    ] net-wireless/hostapd-2.10::gentoo  USE="crda suiteb wps -internal-tls -ipv6 -netlink -savedconfig -sqlite" 0 KiB

Total: 3 packages (3 reinstalls), Size of downloads: 0 KiB

```

Setting regdom on the kernel command line causes bug/oopes when the regulatory files get loaded by the kernel.  With modprobe.conf it gets set correctly, but 5ghz is still no-IR.

I'm at a loss now...  any ideas anyone?

----------

## bunder

Looking at this again over breakfast...

```

hyper /usr/src/linux # iw reg get

global

country CA: DFS-FCC

        (2402 - 2472 @ 40), (N/A, 30), (N/A)

        (5150 - 5250 @ 80), (N/A, 23), (N/A), NO-OUTDOOR, AUTO-BW

        (5250 - 5350 @ 80), (N/A, 24), (0 ms), DFS, AUTO-BW

        (5470 - 5600 @ 80), (N/A, 24), (0 ms), DFS

        (5650 - 5730 @ 80), (N/A, 24), (0 ms), DFS

        (5735 - 5835 @ 80), (N/A, 30), (N/A)

        (5925 - 7125 @ 320), (N/A, 12), (N/A), NO-OUTDOOR

phy#0

country CA: DFS-FCC

        (2402 - 2472 @ 40), (N/A, 30), (N/A)

        (5150 - 5250 @ 80), (N/A, 23), (N/A), NO-OUTDOOR, AUTO-BW

        (5250 - 5350 @ 80), (N/A, 24), (0 ms), DFS, AUTO-BW

        (5470 - 5600 @ 80), (N/A, 24), (0 ms), DFS

        (5650 - 5730 @ 80), (N/A, 24), (0 ms), DFS

        (5735 - 5835 @ 80), (N/A, 30), (N/A)

        (5925 - 7125 @ 320), (N/A, 12), (N/A), NO-OUTDOOR

```

```

hyper /usr/src/linux # iw list

                Frequencies:

                        * 2412 MHz [1] (24.0 dBm)

                        * 2417 MHz [2] (24.0 dBm)

                        * 2422 MHz [3] (24.0 dBm)

                        * 2427 MHz [4] (24.0 dBm)

                        * 2432 MHz [5] (24.0 dBm)

                        * 2437 MHz [6] (24.0 dBm)

                        * 2442 MHz [7] (24.0 dBm)

                        * 2447 MHz [8] (24.0 dBm)

                        * 2452 MHz [9] (24.0 dBm)

                        * 2457 MHz [10] (24.0 dBm)

                        * 2462 MHz [11] (24.0 dBm)

                        * 2467 MHz [12] (disabled)

                        * 2472 MHz [13] (disabled)

                        * 2484 MHz [14] (disabled)

                Frequencies:

                        * 5180 MHz [36] (21.0 dBm) (no IR)

                        * 5200 MHz [40] (21.0 dBm) (no IR)

                        * 5220 MHz [44] (21.0 dBm) (no IR)

                        * 5240 MHz [48] (21.0 dBm) (no IR)

                        * 5260 MHz [52] (21.0 dBm) (no IR, radar detection)

                        * 5280 MHz [56] (21.0 dBm) (no IR, radar detection)

                        * 5300 MHz [60] (21.0 dBm) (no IR, radar detection)

                        * 5320 MHz [64] (21.0 dBm) (no IR, radar detection)

                        * 5500 MHz [100] (disabled)

                        * 5520 MHz [104] (disabled)

                        * 5540 MHz [108] (disabled)

                        * 5560 MHz [112] (disabled)

                        * 5580 MHz [116] (disabled)

                        * 5600 MHz [120] (disabled)

                        * 5620 MHz [124] (disabled)

                        * 5640 MHz [128] (disabled)

                        * 5660 MHz [132] (disabled)

                        * 5680 MHz [136] (disabled)

                        * 5700 MHz [140] (disabled)

                        * 5745 MHz [149] (20.0 dBm) (no IR)

                        * 5765 MHz [153] (20.0 dBm) (no IR)

                        * 5785 MHz [157] (20.0 dBm) (no IR)

                        * 5805 MHz [161] (20.0 dBm) (no IR)

                        * 5825 MHz [165] (20.0 dBm) (no IR)

```

I'm half tempted to enable CFG80211_REG_RELAX_NO_IR and give the FCC the finger...   :Evil or Very Mad: 

edit: well, it didn't work.  I guess I'm buying a WAP now.  Thanks kernel devs...   :Evil or Very Mad: 

----------

## Hu

If it breaks on a kernel upgrade, that is a reportable kernel regression.  However, to get anywhere, you probably need to narrow down what commit broke it.  Your jump from one stable to another covers a huge number of commits.

----------

## bunder

 *Hu wrote:*   

> If it breaks on a kernel upgrade, that is a reportable kernel regression.  However, to get anywhere, you probably need to narrow down what commit broke it.  Your jump from one stable to another covers a huge number of commits.

 

I would, but it's my router, and hosts several virtual machines...  and every reboot is a 50/50 chance of getting iommu or rcu bugs during boot, or the mobo downclocks the memory to 2133, or the pcie bus rejecting my HBA's during boot...  in fact, I had to jump through a lot of hoops to even get it to boot 5.15.60, because it would just die and black-screen when it loads the .efi file.  Whether there's something wrong with the 2950x or the x399-a board, I can't wait to retire this system...

----------

