# Kernel driver wireless causing problems

## LIsLinuxIsSogood

This post is an attempt to get some help with understanding the information in system log about particular wireless card that I have (not sure is this the right place for this post??)  There are 2 parts to the problem.  Part 1 is an error that comes up after putting it to sleep and waking up. And then part 2 is when avoiding power management altogether, just shutting the lid and reopening it at times, always presents some kernel messages that I'd like some help with, and sometimes even some more unknown issues with the consistency of the wireless card (like for Ping local machines or going online).  

Someone please help!!!! My goal would really be just to ensure that the wireless card remains working, at all times, whether that is before/after a sleep or suspend event, as well as opening and closing the lid of my laptop.  Thank you!

```

[48483.721891] cfg80211: World regulatory domain updated:

[48483.721910] cfg80211:  DFS Master region: unset

[48483.721913] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)

[48483.721918] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)

[48483.721922] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A)

[48483.721926] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)

[48483.721930] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)

[48483.721935] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)

[48483.721939] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)

[48483.721942] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)

[48483.721946] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)

[48484.368841] cfg80211: World regulatory domain updated:

[48484.368856] cfg80211:  DFS Master region: unset

[48484.368858] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)

[48484.368861] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)

[48484.368872] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A)

[48484.368876] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)

[48484.368879] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)

[48484.368881] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)

[48484.368883] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)

[48484.368885] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)

[48484.368887] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)

[48489.254393] ------------[ cut here ]------------

[48489.254410] WARNING: CPU: 0 PID: 1879 at net/wireless/sme.c:850 cfg80211_roamed+0xa9/0xc0 [cfg80211]()

[48489.254412] Modules linked in: vfat fat wl(PO) r8169 mii cfg80211

[48489.254420] CPU: 0 PID: 1879 Comm: wl_event_handle Tainted: P           O    4.4.26-gentoo #10

[48489.254422] Hardware name: Hewlett-Packard HP Pavilion Notebook /8094, BIOS F.03 03/31/2015

[48489.254424]  0000000000000000 ffff88009b653dd0 ffffffff814ac774 0000000000000000

[48489.254427]  ffffffffa006d452 ffff88009b653e08 ffffffff8109a1d9 ffff880254ad6800

[48489.254429]  ffff88009b7f1cc0 000000000000009b ffff88009b7f16c0 ffff88009b5caac8

[48489.254432] Call Trace:

[48489.254437]  [<ffffffff814ac774>] dump_stack+0x93/0xcf

[48489.254441]  [<ffffffff8109a1d9>] warn_slowpath_common+0xb9/0x110

[48489.254443]  [<ffffffff8109a255>] warn_slowpath_null+0x25/0x30

[48489.254450]  [<ffffffffa0041509>] cfg80211_roamed+0xa9/0xc0 [cfg80211]

[48489.254469]  [<ffffffffa02db350>] wl_pcie_bar1+0x4fe0/0x7f10 [wl]

[48489.254482]  [<ffffffffa02d9b03>] wl_pcie_bar1+0x3793/0x7f10 [wl]

[48489.254496]  [<ffffffffa02d9a90>] ? wl_pcie_bar1+0x3720/0x7f10 [wl]

[48489.254499]  [<ffffffff810c2c54>] kthread+0x104/0x140

[48489.254502]  [<ffffffff810c2b50>] ? flush_kthread_worker+0x90/0x90

[48489.254505]  [<ffffffff81b36adf>] ret_from_fork+0x3f/0x70

[48489.254508]  [<ffffffff810c2b50>] ? flush_kthread_worker+0x90/0x90

[48489.254510] ---[ end trace 88ead04fe4a8ed2f ]---

```

From previous incident, this was one of the messages I received.

```

Apr 13 13:37:04 playby /etc/init.d/net.wlo1[3483]: net.wlo1: not allowed to be hotplugged

```

What does it mean, not allowed to be hotplugged?  Is it related to the card or the adapter, or the driver? I am really at a loss after many weeks of making my own half-ass attempts at fixing this, and am turning to the forum for some   :Smile:   thoughts.   :Laughing: 

Would more messages from the power management event help to post

----------

## LIsLinuxIsSogood

I'm losing the ability of the wifi to scan after resuming a suspend.  This is a known and tracked bug (full disclosure) with Broadcom, I believe.

The way that it shows up, in the logs is this (each time wake the machine from a suspended state:

```

May 16 23:52:50 playby kernel: [  359.495567] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 16 23:52:51 playby kernel: [  360.496620] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 16 23:52:52 playby kernel: [  361.497642] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 16 23:52:53 playby kernel: [  362.498695] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 16 23:52:54 playby kernel: [  363.499190] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 16 23:52:55 playby kernel: [  364.499833] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 16 23:52:56 playby kernel: [  365.500853] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 16 23:52:57 playby kernel: [  366.501985] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 16 23:52:58 playby kernel: [  367.503009] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 16 23:52:59 playby kernel: [  368.504053] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

```

After spending some time I have investigated enough to learn that according to some other distros' (forums) the problem is tied into wpa_supplicant, and the way the wl driver makes use of it, and the way that wpa_supplicant, which I use, responds to the requests for scans from the device driver  

I thought that this proprietary driver would function better, and it pretty much does seem to be a good choice overall (other than the horrific situation that leads to my having to choose to leave the computer on, or shutdown, and no sleep or suspend!!) 

Any thoughts...  Here's My Logic

1) It is common for proprietary drivers, like this one, to require a patch.  Yes/No?

2) Before rebuilding with patches etc. if possible assessing the situation with the Wireless card (some system output is included at bottom)

3) How I proceed to debug corresponding issues with this driver and other modules, like wpa_supplicant e.g. may prove to be helpful.  Right?

4) Maybe it is jus better to replace the piece of hardware altogether.    (But keep in mind it works well other than that one concern of sleep/wake.)

Here is some of the information about my Network card:

```
playby jonny # lspci -vv -s 08:00

08:00.0 Network controller: Broadcom Corporation BCM43142 802.11b/g/n (rev 01)

        Subsystem: Hewlett-Packard Company BCM43142 802.11b/g/n

        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-

        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbor<MAbort- >SERR- <PERR- INTx-

        Latency: 0, Cache Line Size: 64 bytes

        Interrupt: pin A routed to IRQ 18

        Region 0: Memory at c3100000 (64-bit, non-prefetchable) [size=32K]

        Capabilities: [40] Power Management version 3

                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1-,D2-,D3+,D3cold+)

                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=2 PME-

        Capabilities: [58] Vendor Specific Information: Len=78 <?>

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

                Address: 0000000000000000  Data: 0000

        Capabilities: [d0] Express (v1) Endpoint, MSI 00

                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited

                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 10.000W

                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-

                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-

                        MaxPayload 128 bytes, MaxReadReq 128 bytes

                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-

                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <4us, L1 <64us

                        ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp-

                LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+

                        ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-

                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-

        Capabilities: [100 v1] Advanced Error Reporting

                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-

                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-

                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+

                AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-

        Capabilities: [13c v1] Virtual Channel

                Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1

                Arb:    Fixed- WRR32- WRR64- WRR128-

                Ctrl:   ArbSelect=Fixed

                Status: InProgress-

                VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-

                        Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-

                        Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff

                        Status: NegoPending- InProgress-

        Capabilities: [160 v1] Device Serial Number 00-00-af-ff-ff-fb-74-29

        Capabilities: [16c v1] Power Budgeting <?>

        Kernel driver in use: wl

        Kernel modules: wl

```

----------

## khayyam

LIsLinuxIsSogood ...

I have a number of wireless devices (ath5k, ath9k, rt3070, zd1211rw, carl9170, iwlwifi) that I use (mostly) without issue, but I always shy away from anything broadcom, as when offered usb devices from this vendor (which has happened on a couple of occasions) I've always had issues that turned out to be impossible to debug. I forget the exact chipset, but as I remember these were invariably broadcom-sta, (though perhaps b43 on one occasion). Currently I would take a ath5k (802.11g) over anything else, they are the most trouble free, and featured, chipset you can find (if you're ok with 802.11g), and you can pull one from a number of now old netbooks/laptops (such as the eeepc 701, or macbook1,1). That said, you may be looking for an 802.11n which is where things get tricky. Anyhow, I should have probably held on to these devices as I could probably have done more to figure out their quirks ... and perhaps ways to mitigate those quirks. That said, I offer the following purely as things you might try because as the issue seems to be triggered by powersave you might be able to work around them.

Firsly, is CONFIG_PCIEASPM_POWERSAVE enabled? You might try disabling this (as then pci-e devices would not go into powersave mode). You could also try setting powersave to 'off' (requires net-wireless/iw)

```
# iw dev wlo1 set power_save off
```

... this may not be possible, you should check if that is the case, or not:

```
# iw dev wlo1 get power_save
```

Next you might put wpa_supplicant into 'suspend' on suspend, and 'resume' at the very end of the resume cycle. I don't use pm-utils so I can't tell you how to do this but you basically want the following in whatever method/script pm-utils provides for suspend/resume:

```
if wpa_cli ping ; then wpa_cli suspend ; fi >/dev/null 2>&1
```

```
if wpa_cli ping ; then wpa_cli resume ; fi >/dev/null 2>&1
```

As I said, the 'wpa_cli resume' should come at the very end of the resume cycle ... so that the resume is complete before wpa_supplicant does anything like a scan, or reassoc.

If you're using anything like laptop-tools (I don't) then you should check the documentation for any powersave parameters/scripts it might apply.

The last method may work should the above prove a dead end, you should blacklist the module and/or and have wpa_supplicant disassoc, the module unloaded, and the reverse the procedure on resume. Again, I don't use pm-utils (which I expect you're using) and so can't advise how you do this. With sys-power/hibernate-script it's fairly simple ... but it's unlikely this will integrate with whatever DE you're using (pm-utils being "the one true way").

HTH & best ... khay

----------

## LIsLinuxIsSogood

First off thank you for your concern khayyam, this has been tricky in terms of determining an appropriate method for accessing my wireless card following the suspend/resume and whether or not restarting of services and Power management is to blame or the combination of device drivers and wireless authentication (wpa_supplicant and wl/broadcom-sta is to blame).  

If there is time to look elsewhere, I would like your opinion on this link, that I believe may contain some ways of going about recompiling the driver, so that it might not occur.  Given the similarity of the error, and also the relative ease with which the driver might be compiled and loaded up as a kernel module (which is how I have it setup now). 

A couple things about wl to note, it depends on a few other drivers for cfg80211, and rfkill.  It also mandates blocking several other drivers like bcrmsmac and b43 to work with this card.

Here is the link to a sort of similar patch I would like to build for this purpose: http://pof.eslack.org/2012/05/23/why-broadcom-80211-linux-sta-driver-sucks-and-how-to-fix-it/.

If anyone has a chance to check it out and let me know, if a patch such as the one used for this solution, could be something I would be recommended to seek as a potential solution to my wireless card/adapter's no scanning capabilities following such use of power management.

Thanks

----------

## khayyam

 *LIsLinuxIsSogood wrote:*   

> If there is time to look elsewhere, I would like your opinion on this link [...]

 

LIsLinuxIsSogood ... ok, I read it. Hmmm, if you take a look at the 6.30.223.271-r4.ebuild you will see that pkg_setup() checks that for greater than 3.8.8 you enable CONFIG_CFG80211, but also states/warns that you should disable, or blacklist, mac80211. I'm not sure why that is as afaik they are both dependent on each other, that may be due to CONFIG_LIB80211 (which the check suggests you enable). Can you provide the output of the following.

```
# zgrep -E '(WEXT|(MAC|CFG|LIB)80211)' /proc/config.gz
```

Anyhow, this being the case it seems that the gentoo build/pkg does use cfg80211 and not wext (as is/was the case with the above linked Ubuntu issue). Also, that issue doesn't exhibit the same symptoms as you, there is no kernel panic, only a delay. That said, perhaps there is some incompatible driver enabled, and/or wpa_supplicant is attempting to use wext in place of nl80211 ... do you provide '-Dnl80211' as a parameter to wpa_supplicant? Note that the wpa_supplicant package is built with support for both wext and nl80211, and so there may be some conflict there ... but that is purely speculation. Please try adding '-Dnl80211' to /etc/conf.d/net, if you're not already, eg:

```
wpa_supplicant_wlan0="-Dnl80211"
```

You could also copy the ebuild into a local overlay and comment 'Kconfig_style_config DRIVER_WEXT' (I would also comment everything in "Linux specific drivers" but DRIVER_NL80211).

You didn't provide any comment re the suggestions I made above, and you should (rather than look to now 5yr old bugs), having a log from wpa_supplicant and the output of 'iw' might provide a clue to what's happening. If you don't act on these suggestions then we don't know if this isn't prehaps triggered by powersave, or the sequence of initialisation that occurs on resume ... generally a systematic approach to the problem is preferable to stabs in the dark.

best ... khay

----------

## LIsLinuxIsSogood

Yes, next time I will reply first with a response to the suggested methods thanks.  It was after all the direction I did attempt to take!

```

# iw dev wlo1 get power_save

Power save: off

```

As for the first, iw already shows power save is off.     :Laughing: 

The rest of this is going to be addressing the other issue mentioned with the scripting of wpa_supplicant in suspend/resume.

Not sure if the log from RC services log for wpa_supplicant was enough...here is some of it:

```

 *   Starting wpa_supplicant on wlo1 ...

 *   start-stop-daemon: fopen `/run/wpa_supplicant-wlo1.pid': No such file or directory

 *   Detaching to start `/usr/sbin/wpa_supplicant' ...

Successfully initialized wpa_supplicant

 [ ok ]

 *   Starting wpa_cli on wlo1 ...

 *   start-stop-daemon: fopen `/run/wpa_cli-wlo1.pid': No such file or directory

 *   Detaching to start `/usr/bin/wpa_cli' ...

 [ ok ]

 *   Backgrounding ... ...

 * WARNING: net.wlo1 has started, but is inactive
```

Does there appear to be something going on here?  This start-stop-daemon seems like maybe the /run fs is not loaded could that be a contributing to the cause...and here is the rest of the output.

```
# zgrep -E '(WEXT|(MAC|CFG|LIB)80211)' /proc/config.gz

CONFIG_WEXT_CORE=y

CONFIG_WEXT_PROC=y

CONFIG_WEXT_SPY=y

CONFIG_WEXT_PRIV=y

CONFIG_CFG80211=m

CONFIG_CFG80211_DEVELOPER_WARNINGS=y

# CONFIG_CFG80211_REG_DEBUG is not set

# CONFIG_CFG80211_CERTIFICATION_ONUS is not set

# CONFIG_CFG80211_DEFAULT_PS is not set

CONFIG_CFG80211_DEBUGFS=y

# CONFIG_CFG80211_INTERNAL_REGDB is not set

CONFIG_CFG80211_CRDA_SUPPORT=y

CONFIG_CFG80211_WEXT=y

CONFIG_CFG80211_WEXT_EXPORT=y

CONFIG_LIB80211=y

CONFIG_LIB80211_CRYPT_WEP=y

CONFIG_LIB80211_CRYPT_CCMP=y

CONFIG_LIB80211_CRYPT_TKIP=y

CONFIG_LIB80211_DEBUG=y

# CONFIG_MAC80211 is not set

CONFIG_MAC80211_STA_HASH_MAX_SIZE=0

```

----------

## khayyam

LIsLinuxIsSogood ...

very briefly, I can't tell what is causing the above error as you haven't provided the configuration involved (ie, /etc/conf.d/wpa_supplicant, /etc/conf.d/net, or /etc/wpa_supplicant/wpa_supplicant.conf). Also, that isn't the log from wpa_supplicant (see the exact parameters you need to pass, and location of the log file, I provided above). It looks as though you are doing something wrong, because /run should exist (it's created at boot by 'bootmisc' in the 'boot' runlevel) and wpa_supplicant will create the sub directory if the path is stipulated in cntl_interface). So again, a systematic approach to the problem is preferable ... all information about how wpa_supplicant/net.wlo1 is started, and the configuration involved, is required.

As for the kernel config, that looks consistant with what the ebuild suggests should be enabled. Also, the fact that powersave is off doesn't tell us much, because it may prevent the card going into suspend (at least properly) ... it might be worth setting it to on and seeing if you can reproduce the issue (noting that not all cards/drivers like the fact that the pci-e bus might decide to go into powersave mode, or will even allow this to happen).

best ... khay

----------

## LIsLinuxIsSogood

Hi mr.,

This is really very nice of you to offer so many suggestions.  I would like to recap then what my plan is going to be since you've offered many and then clarify about the items that would help us to better diagnose the source of issues going on and whether it is as you mentioned card related (in the 1st and the last post) or something else.

At this point, here are the things that I still have to do...

1) Fixing issues with suspend and resume scripts -- not the source of it, so not yet...although good information to have at our disposal!

2) Figuring out the problems with /run as well as the startup of wpa_supplicant and the net.* init process for the wireless interface (HERE's where Im' actually getting lost)

3) If necessary to go way over the top with it and try rebuilding the thing using an Overlay!!! this sounds awesome by tw

4) Abandon all hope for sanity and buy something that works with linux out of the box. This is not a good option yet, because as #2 could soon show proof of a slightly altered and otherwise perfect compatibility with the one exception of blacklisting certain modules (for the proprietary Broadcom)

SOOO, Here's where I'm lost.  For some reason, I've gone through various places looking at outputs of system log, etc. or the rc log everything that "tracks" the messages of wpa_supplicant or net.* script for that interface.   But I can't find the log we are looking for!!!  I know it sounds silly, but did I skip over the instructions, somewhere?

As asked for, and I would like to produce everything at once, if you could point me to the specific wpa_supplicant log location, which I cannot find  I will post it along with the configuration files, ok?

(  :Rolling Eyes:  )

Thank you so much,   :Confused: 

----------

## khayyam

LIsLinuxIsSogood ...

my bad, I thought I'd shown how to log wpa_supplicant but hadn't:

If using 'netifrc':

```
wpa_supplicant_wlo1="-Dnl80211 -dd -f /var/log/wpa_supplicant.log"
```

If using wpa_supplicant standalone:

```
wpa_supplicant_args="-iwlo1 -Dnl80211 -dd -f /var/log/wpa_supplicant.log"
```

Neither of those will solve the issue with '/run', and you really should get that issue squared away before anything else. So, again, what is in wpa_supplicant.conf (sans 'psk'), and what are you using exactly, do you run wpa_supplicant standalone, via netifrc, dhcpcd?

best ... khay

----------

## LIsLinuxIsSogood

If the goal is from the perspective of it being a "good card" situation with otherwise optimal network capabilities it would appear, then I may be looking at it either right/wrong.  I still need help though, for the no power management issues.  Thanks for allowing me to post this stuff.

As for the config files, 

At /etc/conf.d/net:

```
config_wlo1="dhcp"

dhcpcd_wlo1="-t 10"

dhcpcd_wlo1="release nodns nontp nonis"

wpa_supplicant_wlan0="-Dnl80211" 

```

By the way, for /etc/wpa_supplicant/ has only one uncommented line...

```
wpa_supplicant_args="-D nl80211,wext"
```

I know that is really all I can share for now, since the other config file has some sensitive network information accessed by that software.

However, I did find a way in case you would like to provide some further instructions about the situation itself that could be "tested".

The debug option with wpa_supplicant is just to run "wpa_supplicant -d"  or in my case, to force the right driver and interface to use as well  "wpa_supplicant -wlo1 -Dnl80211  -d"  where the -d is for debug.  The output is very detailed but also has option to be saved to file or to standard output.  It seems pretty cool and easy to read.  And I will do my best to continue some trial and error (as you mentioned with the powersave feature). Likely it will produce some further issues like a broken signal, or just some complaint or else the likelihood of my having some concerns about the 1000 lines of output is already high enough, that is why I am only going to include a sample of the first 50-100 lines. 

I've saved the entire output to a file on my PC and can return to that with the others of errors to compare to.  Just on that note, since I did just have it working right now, would you like to confirm whether or not the step involving reproduction of the issue should be done via a power management event or else I believe you suggested otherwise taking the setting for powersave and flipping it for the network interface...thanks!  Whichever is preferred?

Here is a sample of the Output from wpa_supplicant log. (Ending in a successful connection by the way, and a seemingly perfect connection at that!).

wpa_supplicant v2.6

random: Trying to read entropy from /dev/random

Successfully initialized wpa_supplicant

Initializing interface 'wlo1' conf '/etc/wpa_supplicant/wpa_supplicant.conf' driver 'nl80211' ctrl_interface 'N/A' bridge 'N/A'

Configuration file '/etc/wpa_supplicant/wpa_supplicant.conf' -> '/etc/wpa_supplicant/wpa_supplicant.conf'

Reading configuration file '/etc/wpa_supplicant/wpa_supplicant.conf'

ctrl_interface='/var/run/wpa_supplicant'

Priority group 100

   id=4 ssid='*******'

Priority group 10

   id=5 ssid='MySpectrumWiFie0-2G'

Priority group 9

   id=1 ssid='*********'

   id=6 ssid='*********'

Priority group 5

   id=2 ssid='*********'

   id=3 ssid='*********'

Priority group 3

   id=0 ssid='*********'

nl80211: Supported cipher 00-0f-ac:1

nl80211: Supported cipher 00-0f-ac:5

nl80211: Supported cipher 00-0f-ac:2

nl80211: Supported cipher 00-0f-ac:4

nl80211: Supported cipher 00-0f-ac:6

nl80211: interface wlo1 in phy phy0

nl80211: Set mode ifindex 3 iftype 2 (STATION)

nl80211: Subscribe to mgmt frames with non-AP handle 0x14ed610

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=0104

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 01 04

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=040a

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 04 0a

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=040b

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 04 0b

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=040c

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 04 0c

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=040d

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 04 0d

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=090a

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 09 0a

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=090b

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 09 0b

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=090c

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 09 0c

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=090d

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 09 0d

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=0801

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 08 01

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=06

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=1): 06

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=0a07

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 0a 07

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=0a11

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 0a 11

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=0a1a

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 0a 1a

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=1101

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 11 01

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=1102

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 11 02

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=0505

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 05 05

nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x14ed610 match=0500

nl80211: Register frame command failed (type=208): ret=-95 (Operation not supported)

nl80211: Register frame match - hexdump(len=2): 05 00

nl80211: Failed to register Action frame processing - ignore for now

rfkill: initial event: idx=1 type=1 op=0 soft=0 hard=0

netlink: Operstate: ifindex=3 linkmode=1 (userspace-control), operstate=5 (IF_OPER_DORMANT)

Add interface wlo1 to a new radio phy0

nl80211: Regulatory information - country=00

nl80211: 2402-2472 @ 40 MHz 20 mBm

nl80211: 2457-2482 @ 20 MHz 20 mBm (no IR)

nl80211: 2474-2494 @ 20 MHz 20 mBm (no OFDM) (no IR)

nl80211: 5170-5250 @ 80 MHz 20 mBm (no IR)

nl80211: 5250-5330 @ 80 MHz 20 mBm (DFS) (no IR)

nl80211: 5490-5730 @ 160 MHz 20 mBm (DFS) (no IR)

nl80211: 5735-5835 @ 80 MHz 20 mBm (no IR)

nl80211: 57240-63720 @ 2160 MHz 0 mBm

nl80211: Added 802.11b mode based on 802.11g information

wlo1: Own MAC address: 74:29:af:fb:89:37

----------

## LIsLinuxIsSogood

Between the options of net scripts and wpa_supplilcant standalone, I haven't decided. Partially because I wasn't sure which would be worse for the problem of pm-utils 

Do y ou have a suggested method, since I run everything with a script, via openrc I would usually opt for the net script.  But I also recently downloaded wicd and attempted that one.  It works good, except nothing changes on the front of hardware problems like the one I suppose is happening each time I sleep/wake the machine.

----------

## LIsLinuxIsSogood

So I realize that I did not ever get back to the main concern the initial one about pm-utils.  This seems worthwhile, if it is a quick and easy fix.  Just not sure if I did this right...could you please verify that I entered it in the correct way??

```

#!/bin/bash

# properly stop and start the network

if [ -r "${PM_FUNCTIONS}" ]; then

    . "${PM_FUNCTIONS}" 

elif [ -r "${FUNCTIONS}" ]; then

    . "${FUNCTIONS}"

else

 pm-utils version is too old, or something else is wrong

    exit $NA

fi

case "$1" in

        hibernate|suspend)

if wpa_cli ping ; then wpa_cli suspend ; fi >/dev/null 2>&1

#               exec wpa_supplicant suspend

                ;;

        thaw|resume)

if wpa_cli ping ; then wpa_cli resume ; fi >/dev/null 2>&1

#               exec wpa_supplicant resume

                ;;

        *) exit $NA

                ;;

esac

```

----------

## khayyam

 *LIsLinuxIsSogood wrote:*   

> I know that is really all I can share for now, since the other config file has some sensitive network information accessed by that software.

 

LIsLinuxIsSogood ... you don't need to provide sensitive information ('network' names, 'psk') just the configuration (ie, 'cntl_interface', 'eapol', 'network' block, etc).

 *LIsLinuxIsSogood wrote:*   

> The debug option with wpa_supplicant is just to run "wpa_supplicant -d" [...]

 

Yes, and you can pass an additional two 'd' for higher levels of debug (eg, -dd -ddd). In your case a -ddd would probably be a good idea, but we only need to capture the log of the problem, not a regular ASSOC. So:

```
# emerge wgetpaste

# /etc/init.d/net.wlo1 stop

# rm /var/log/wpa_supplicant.log

### add -ddd to /etc/conf.d/net.wlo1

# /etc/init.d/net.wlo1 start

### perform a suspend cycle

# /etc/init.d/net.wlo1 stop

### perform a reboot

### comment '-ddd -f /var/log/wpa_supplicant.log' from /etc/conf.d/net.wlo1

# /etc/init.d/net.wlo1 start

# wgetpaste /var/log/wpa_supplicant.log
```

You might repeat the process with powersave 'on'. You should also look and see if pm-utils is logging the suspend cycle, or if 'dmesg' shows anything re broadcom-sta, wlo1, etc.

best ... khay

----------

## LIsLinuxIsSogood

https://paste.pound-python.org/show/aie33nxZXOVvvH3Nlfpa/

you Da man (to quote the old school lingo)

----------

## LIsLinuxIsSogood

Output of dmesg from previous event (suspend and wake):

May 25 02:03:58 playby /etc/init.d/net.wlo1[7502]: WARNING: net.wlo1 has started, but is inactive

May 25 02:03:59 playby wpa_cli: interface wlo1 CONNECTED

May 25 02:03:59 playby dhcpcd[8066]: unknown option: playby

May 25 02:03:59 playby dhcpcd[8066]: control_open: Connection refused

May 25 02:03:59 playby dhcpcd[8066]: dev: loaded udev

May 25 02:03:59 playby dhcpcd[8066]: release: interface not found or invalid

May 25 02:03:59 playby dhcpcd[8066]: nodns: interface not found or invalid

May 25 02:03:59 playby dhcpcd[8066]: nontp: interface not found or invalid

May 25 02:03:59 playby dhcpcd[8066]: nonis: interface not found or invalid

May 25 02:03:59 playby dhcpcd[8066]: unknown option: playby

May 25 02:03:59 playby dhcpcd[8066]: all: IPv6 kernel autoconf disabled

May 25 02:03:59 playby dhcpcd[8066]: wlo1: adding address fe80::22da:519a:359e:3fb

May 25 02:03:59 playby dhcpcd[8066]: if_addaddress6: Operation not supported

May 25 02:03:59 playby dhcpcd[8066]: DUID 00:01:00:01:1e:37:04:c3:00:1e:e5:e7:09:26

May 25 02:03:59 playby dhcpcd[8066]: wlo1: IAID af:fb:89:37

May 25 02:03:59 playby dhcpcd[8066]: wlo1: rebinding lease of 192.168.1.9

May 25 02:03:59 playby dhcpcd[8066]: wlo1: probing address 192.168.1.9/24

May 25 02:04:05 playby dhcpcd[8066]: wlo1: leased 192.168.1.9 for 86400 seconds

May 25 02:04:05 playby dhcpcd[8066]: wlo1: adding route to 192.168.1.0/24

May 25 02:04:05 playby dhcpcd[8066]: wlo1: adding default route via 192.168.1.1

May 25 02:04:05 playby dhcpcd[8066]: forked to background, child pid 8090

May 25 02:04:29 playby kernel: [ 6902.919532] PM: Syncing filesystems ... done.

May 25 02:04:29 playby kernel: [ 6903.139482] PM: Preparing system for sleep (mem)

May 25 02:04:29 playby kernel: [ 6903.139597] Freezing user space processes ... (elapsed 0.000 seconds) done.

May 25 02:04:29 playby kernel: [ 6903.140518] Freezing remaining freezable tasks ... (elapsed 0.000 seconds) done.

May 25 02:04:29 playby kernel: [ 6903.141502] PM: Suspending system (mem)

May 25 02:04:29 playby kernel: [ 6903.141518] Suspending console(s) (use no_console_suspend to debug)

May 25 02:04:29 playby kernel: [ 6903.141744] sd 0:0:0:0: [sda] Synchronizing SCSI cache

May 25 02:04:29 playby kernel: [ 6903.203586] i8042 aux 00:03: System wakeup disabled by ACPI

May 25 02:04:29 playby kernel: [ 6903.203620] i8042 kbd 00:02: System wakeup enabled by ACPI

May 25 02:04:29 playby kernel: [ 6903.245313] sd 0:0:0:0: [sda] Stopping disk

May 25 02:04:29 playby kernel: [ 6903.729595] PM: suspend of devices complete after 587.970 msecs

May 25 02:04:29 playby kernel: [ 6903.746622] PM: late suspend of devices complete after 17.021 msecs

May 25 02:04:29 playby kernel: [ 6903.747261] r8169 0000:09:00.0: System wakeup enabled by ACPI

May 25 02:04:29 playby kernel: [ 6903.747295] ehci-pci 0000:00:1d.0: System wakeup enabled by ACPI

May 25 02:04:29 playby kernel: [ 6903.747570] xhci_hcd 0000:00:14.0: System wakeup enabled by ACPI

May 25 02:04:29 playby kernel: [ 6903.758458] PM: noirq suspend of devices complete after 11.832 msecs

May 25 02:04:29 playby kernel: [ 6903.758757] ACPI: Preparing to enter system sleep state S3

May 25 02:04:29 playby kernel: [ 6903.778582] ACPI : EC: EC stopped

May 25 02:04:29 playby kernel: [ 6903.778582] PM: Saving platform NVS memory

May 25 02:04:29 playby kernel: [ 6903.778588] Disabling non-boot CPUs ...

May 25 02:04:29 playby kernel: [ 6903.780157] smpboot: CPU 1 is now offline

May 25 02:04:29 playby kernel: [ 6903.781958] smpboot: CPU 2 is now offline

May 25 02:04:29 playby dhcpcd[8090]: wlo1: carrier lost

May 25 02:04:29 playby kernel: [ 6903.783396] smpboot: CPU 3 is now offline

May 25 02:04:29 playby kernel: [ 6903.784929] ACPI: Low-level resume complete

May 25 02:04:29 playby kernel: [ 6903.784988] ACPI : EC: EC started

May 25 02:04:29 playby kernel: [ 6903.784989] PM: Restoring platform NVS memory

May 25 02:04:29 playby kernel: [ 6903.785367] Enabling non-boot CPUs ...

May 25 02:04:29 playby kernel: [ 6903.785406] x86: Booting SMP configuration:

May 25 02:04:29 playby kernel: [ 6903.785407] smpboot: Booting Node 0 Processor 1 APIC 0x2

May 25 02:04:29 playby kernel: [ 6903.789480]  cache: parent cpu1 should not be sleeping

May 25 02:04:29 playby kernel: [ 6903.789712] CPU1 is up

May 25 02:04:29 playby kernel: [ 6903.789738] smpboot: Booting Node 0 Processor 2 APIC 0x1

May 25 02:04:29 playby kernel: [ 6903.793803]  cache: parent cpu2 should not be sleeping

May 25 02:04:29 playby kernel: [ 6903.794040] CPU2 is up

May 25 02:04:29 playby kernel: [ 6903.794081] smpboot: Booting Node 0 Processor 3 APIC 0x3

May 25 02:04:29 playby kernel: [ 6903.798199]  cache: parent cpu3 should not be sleeping

May 25 02:04:29 playby kernel: [ 6903.798433] CPU3 is up

May 25 02:04:29 playby kernel: [ 6903.802149] ACPI: Waking up from system sleep state S3

May 25 02:04:29 playby kernel: [ 6903.845500] xhci_hcd 0000:00:14.0: System wakeup disabled by ACPI

May 25 02:04:29 playby kernel: [ 6903.856364] ehci-pci 0000:00:1d.0: System wakeup disabled by ACPI

May 25 02:04:29 playby kernel: [ 6903.856473] PM: noirq resume of devices complete after 11.312 msecs

May 25 02:04:29 playby kernel: [ 6903.862169] PM: early resume of devices complete after 5.675 msecs

May 25 02:04:29 playby kernel: [ 6903.862386] r8169 0000:09:00.0: System wakeup disabled by ACPI

May 25 02:04:29 playby kernel: [ 6903.863539] rtc_cmos 00:01: System wakeup disabled by ACPI

May 25 02:04:29 playby kernel: [ 6903.863569] i8042 kbd 00:02: System wakeup disabled by ACPI

May 25 02:04:29 playby kernel: [ 6903.866283] sd 0:0:0:0: [sda] Starting disk

May 25 02:04:29 playby kernel: [ 6903.898467] xhci_hcd 0000:00:14.0: port 6 resume PLC timeout

May 25 02:04:29 playby kernel: [ 6903.913848] xhci_hcd 0000:00:14.0: port 2 resume PLC timeout

May 25 02:04:29 playby kernel: [ 6904.167052] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)

May 25 02:04:29 playby kernel: [ 6904.177505] ata2.00: configured for UDMA/100

May 25 02:04:29 playby kernel: [ 6904.178212] usb 2-3: reset high-speed USB device number 2 using xhci_hcd

May 25 02:04:29 playby kernel: [ 6904.442338] PM: resume of devices complete after 580.195 msecs

May 25 02:04:29 playby kernel: [ 6904.442524] PM: Finishing wakeup.

May 25 02:04:29 playby kernel: [ 6904.442526] Restarting tasks ... 

May 25 02:04:29 playby kernel: [ 6904.443004] usb 2-7: USB disconnect, device number 3

May 25 02:04:29 playby wpa_cli: interface wlo1 DISCONNECTED

May 25 02:04:29 playby kernel: [ 6904.443995] done.

May 25 02:04:29 playby wpa_cli: executing 'false /etc/init.d/net.wlo1 --quiet stop' failed

May 25 02:04:29 playby kernel: [ 6904.456560] cfg80211: World regulatory domain updated:

May 25 02:04:29 playby kernel: [ 6904.456568] cfg80211:  DFS Master region: unset

May 25 02:04:29 playby kernel: [ 6904.456570] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)

May 25 02:04:29 playby kernel: [ 6904.456573] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)

May 25 02:04:29 playby kernel: [ 6904.456576] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A)

May 25 02:04:29 playby kernel: [ 6904.456578] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)

May 25 02:04:29 playby kernel: [ 6904.456580] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)

May 25 02:04:29 playby kernel: [ 6904.456582] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)

May 25 02:04:29 playby kernel: [ 6904.456585] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)

May 25 02:04:29 playby kernel: [ 6904.456587] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)

May 25 02:04:29 playby kernel: [ 6904.456589] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)

May 25 02:04:29 playby dhcpcd[8090]: wlo1: deleting route to 192.168.1.0/24

May 25 02:04:29 playby dhcpcd[8090]: wlo1: deleting default route via 192.168.1.1

May 25 02:04:29 playby kernel: [ 6904.544663] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:30 playby kernel: [ 6905.316581] psmouse serio1: synaptics: queried max coordinates: x [..5656], y [..4712]

May 25 02:04:30 playby kernel: [ 6905.354769] psmouse serio1: synaptics: queried min coordinates: x [1326..], y [1200..]

May 25 02:04:30 playby kernel: [ 6905.545168] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:31 playby kernel: [ 6906.461951] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)

May 25 02:04:31 playby kernel: [ 6906.464789] ata1.00: configured for UDMA/100

May 25 02:04:31 playby kernel: [ 6906.546088] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:32 playby kernel: [ 6907.547032] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:33 playby kernel: [ 6908.547996] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:34 playby kernel: [ 6909.548384] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:35 playby kernel: [ 6910.548960] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:36 playby kernel: [ 6911.549897] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:37 playby kernel: [ 6912.550857] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:38 playby kernel: [ 6913.551799] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:39 playby kernel: [ 6914.552167] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:40 playby kernel: [ 6915.552699] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:41 playby kernel: [ 6916.553653] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:42 playby kernel: [ 6917.554603] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:43 playby kernel: [ 6918.555560] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:44 playby kernel: [ 6919.555939] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:45 playby kernel: [ 6920.556455] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:04:46 playby dhcpcd[8090]: wlo1: carrier acquired

May 25 02:04:46 playby dhcpcd[8090]: unknown option: playby

May 25 02:04:46 playby dhcpcd[8090]: all: IPv6 kernel autoconf disabled

May 25 02:04:46 playby dhcpcd[8090]: wlo1: IAID af:fb:89:37

May 25 02:04:46 playby dhcpcd[8090]: wlo1: carrier lost

May 25 02:07:43 playby shutdown[8507]: shutting down for system reboot

----------

## LIsLinuxIsSogood

attempt #2:

https://paste.pound-python.org/show/Wgsx74CwlSGj8UMLdlD4/

Here are the other errors I've noted, along the way...

Errors I’m getting immediately following the suspend/resume cycle:

```
RTNETLINK answers: No such file or directory

Error talking to the kernel
```

Also, when attempting to restart the interface manually after it has been resumed.

```
SIOCSIFFLAGS: Operation not possible due to RF-kill
```

And now I am wondering could it be that rfkill, or some other kernel module is the actual culprit?

----------

## mrbassie

Is your wifi usb connected?

----------

## LIsLinuxIsSogood

Depends what you mean by connected...it shows up in both lspci and lsusb, so here is a point of confusion for that.

What does it mean if the device is somehow(?) connected via each/both is it for the various card functions...

lsusb shows:

Bus 002 Device 003: ID 0a5c:216d Broadcom Corp.

I could be wrong, but is this the Bluetooth?  The card does have bluetooth on and it works...with Primary Bus showing below - USB:

```
hci0:   Type: Primary  Bus: USB

        BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0

        DOWN 

        RX bytes:6 acl:0 sco:0 events:1 errors:0

        TX bytes:6 acl:0 sco:0 commands:2 errors:0

        Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

        Packet type: DM1 DH1 HV1 

        Link policy: 

        Link mode: SLAVE ACCEPT 

```

However, since the issue I am dealing with (still need to test with the bluetooth adapter, will do that now) is otherwise with the drivers for wireless network, and could those issues just be the choice of HP with Broadcom to make things difficult idk.

lspci shows:

```
08:00.0 Network controller: Broadcom Corporation BCM43142 802.11b/g/n (rev 01) 

```

Also, in lspci, another link for ethernet connections exists:

09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 0a)

Would it help to test any of these other interfaces, I am going to attempt bluetooth as I mentioned.  Will post the results momentarily. Thanks for the help!

I still have to try some previous suggested remedies :>)

Bottom line, whether the problem is the card or the kernel they don't really seem to get along in the way of power.  My wireless card has an all or nothing personality to it!

----------

## LIsLinuxIsSogood

Maybe this will help, the kernel modules loaded (with dependencies)

As previously mentioned by khayyam, everything seems fine on that front though, meaning dependencies all check out and it looks good.

```
playby jonny # lsmod

Module                  Size  Used by

vfat                   17977  0

fat                    93548  1 vfat

wl                   6400645  0

btusb                  51810  0

btintel                10980  1 btusb

btbcm                  10209  1 btusb

bluetooth             675938  4 btbcm,btusb,btintel

r8169                 138579  0

cfg80211              845197  1 wl

rfkill                 29584  3 cfg80211,bluetooth

mii                     7363  1 r8169

```

Then of course, the dreaded problem gets outputed in one of two ways -- rfkill message or else RTNETLINK (error talking to kernel)...both of which tie back to the kernel of course.  Could it just be that I may have to go back to an earlier kernel (from the date these drivers were released by Broadcom -- I believe in 2015 or maybe 2016.)

Whatever the cause of the error, here is the dreaded sign of things going haywire...it is logged indefinitely until I either killall wpa_supplicant, or else unload certain modules from the list of kernel modules.

May 25 02:55:02 playby kernel: [  143.027674] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:55:03 playby kernel: [  144.028438] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:55:04 playby kernel: [  145.028813] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:55:05 playby kernel: [  146.029854] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

May 25 02:55:06 playby kernel: [  147.030835] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)

----------

## LIsLinuxIsSogood

Maybe as expected, not sure but the problem is persistent across with the bluetooth function.  The card with the kernel I'm using, and the specific modules involved does not seem to allow for certain features of either wifi or bt to be accessible to me following the suspend/resume.

I'm getting ready to give up.  Or else go back to the start, and make some changes in the kernel (one at a time) so I can safely test everything that way.  Then if I need to, maybe switch over to some other thing instead of pm-utils.

Thanks everyone for the help! I appreciate the concerns.  I will try to post a more summarized and clear posting next time, so that it could be easier to figure out right away whether or not this is something that could be done (hardware way, or through drivers, patches, etc.).

Thanks again! For all you suggestions! They were really the help I needed.

As a final thought, addendum really...could the following script (a default of pm-utils) have anything to do with the activity of the card acting funny?!?

```

d#!/bin/sh

. "${PM_FUNCTIONS}"

# See if we have the usual wireless tools.

# Do not just fail because not all cards require these.

which iwpriv >/dev/null 2>&1 && have_iwpriv="true"

which iwconfig >/dev/null 2>&1 && have_iwconfig="true"

# If only all the drivers did The Right Thing with iwconfig power.

# Too bad they do not.

get_wireless_params() {

    # $1 = interface 

    # $2 = on or off

    unset iwpriv iwconfig iwlevel

    

    # Don't do anything if we cannot find a driver for this iface.

    [ -L "/sys/class/net/$1/device/driver" ] || return 1

    # Skip if not a wireless card.

    [ -d "/sys/class/net/$1/wireless" ] || return 1

    # Also don't do anything if the device is disabled

    [ "$(cat /sys/class/net/$1/device/enable)" = "1" ] || return 1

    driver="$(readlink "/sys/class/net/$1/device/driver")"

    driver=${driver##*/}

    case $driver in

        ipw2100) iwpriv_ac="set_power 0"

            iwpriv_batt="set_power 5"

            iwconfig_ac="power on"

            iwconfig_batt="power on";;

        ipw3945)

            iwpriv_ac="set_power 6"

            iwpriv_batt="set_power 7";;

        iwl*) if [ -f "/sys/class/net/$1/device/power_level" ]; then

                 iwlevel_ac=0

                 iwlevel_batt=3

              else

                 iwconfig_ac="power off"

                 iwconfig_batt="power on"

              fi;;

        *) iwconfig_ac="power off"

           iwconfig_batt="power on";;

    esac

    case $2 in

        off) [ "$iwpriv_ac" ] && iwpriv="$iwpriv_ac"

            [ "$iwconfig_ac" ] && iwconfig="$iwconfig_ac"

            [ "$iwlevel_ac" ] && iwlevel="$iwlevel_ac";;

        on) [ "$iwpriv_batt" ] && iwpriv="$iwpriv_batt"

            [ "$iwconfig_batt" ] && iwconfig="$iwconfig_batt"

            [ "$iwlevel_batt" ] && iwlevel="$iwlevel_batt";;

    esac

    return 0

}

wireless_powersave() {

    for dev in /sys/class/net/*; do

        get_wireless_params "${dev##*/}" "$1" || continue

   ret=0

   printf "Turning powersave for %s %s..." "${dev##*/}" "$1"

   if [ "$have_iwconfig" = true -a "$iwconfig" ]; then

       iwconfig "${dev##*/}" $iwconfig || ret=1

   fi

        if [ "$have_iwpriv" = true -a "$iwpriv" ]; then

       iwpriv "${dev##*/}" $iwpriv || ret=1

   fi

        if [ "$iwlevel" ]; then

       echo "$iwlevel" > "$dev/device/power_level" || ret=1

   fi

   [ "$ret" -eq 0 ] && echo Done. || echo Failed.

    done

}

case $1 in

    true) wireless_powersave on ;;

    false) wireless_powersave off ;;

    *) exit $NA ;;

esac

exit 0
```

----------

## LIsLinuxIsSogood

Judging based on the last question be bassie,  here is something that could help to know:

lsusb (before I suspend) contains the USB device for the Broadcom card, however afterwards it is gone!

Does the USB connection supply the appropriate power to the device, and how might I access the device after it is gone?  Clearly the device is still connected, as each time I reboot there it is again!!!

----------

## mrbassie

I was wondering if it was a dongle. I have a little media pc with a usb wifi dongle which kept disconnecting every ten minutes or so as I was using it. Turns out it was usb autosuspend. Khayyam's powersave suggestion reminded me of it.

----------

## LIsLinuxIsSogood

Not a dongle, internal to the motherboard.  

No effort efforts have yet to avail any solutions, not even temporarily in any instances.

Besides the obvious replacing card, which then would require some more decisions about which card to use (i know some were already suggested within this post) but the particular method of patching this driver if that is the source of it, just curious, is it possible to built this kernel module into the kernel?  Given the proprietary driver that it is how might that work, if possible?

----------

