Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Authenticate then disconnect from wifi
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Networking & Security
View previous topic :: View next topic  
Author Message
skiwarz
Tux's lil' helper
Tux's lil' helper


Joined: 23 Feb 2014
Posts: 132

PostPosted: Tue Sep 24, 2019 5:58 pm    Post subject: Authenticate then disconnect from wifi Reply with quote

This has been bothering me for two days now... I'm asking for help.
I recently updated a LOT of packages on my computer. After a restart, I could no longer connect to my wifi. I've narrowed it down to wpa_supplicant. When I downgrade to wpa_supplicant-2.7-r1, I can connect. But all newer versions including 2.7-r3 can't. My network used WPA-PSK for security, however I have also tested it on an unprotected network and it still cannot connect.

I am using Network Manager 1.18.2. Network card is a broadcom bcm43142 using the broadcom-sta-6.30.223.271-r5 driver. lsmod shows that it is loaded in the kernel.

I've tried using the Network Manager GUI to connect. I am able to see lots of different networks, but when I try to connect, it tries for about 15-20 seconds and then gives up.
Using nmcli, I get the same thing.
Finally, I tried killing the network manager service (/etc/init.d/NetworkManager stop) and running wpa_supplicant manually with
Code:
wpa_supplicant -iwlp1s0 -Dwext -c/etc/wpa_supplicant/wpa_supplicant.conf

wext is not the correct driver. Should be "wl" for broadcom-sta, but wpa_supplicant says it doesn't recognize it. Anyways, when I run the above command, wpa_supplicant spits out the following:
Code:
Successfully initialized wpa_supplicant
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
wlp1s0: Trying to associate with dc:53:6c:77:ff:d8 (SSID='mynetwork' freq=2412 MHz)
Failed to add supported operating system classes IE
wlp1s0: Associated with dc:53:6c:77:ff:d8
wlp1s0: CTRL-EVENT-DISCONNECTED bssid=dc:53:6c:77:ff:d8 reason=0
wlp1s0: Trying to associate with dc:53:6c:77:ff:d8 (SSID='mynetwork' freq=2412 MHz)
Failed to add supported operating system classes IE
wlp1s0: Associated with dc:53:6c:77:ff:d8
wlp1s0: CTRL-EVENT-DISCONNECTED bssid=dc:53:6c:77:ff:d8 reason=0

And it keeps repeating like that.
I don't know if it matters, but I noticed some USE flag changes after wpa_supplicant-2.7-r1, particularly "ssl" doesn't exist anymore. Could this potentially be the issue?

This is what I have enabled (working wifi):
Code:
net-wireless/wpa_supplicant-2.7-r1::gentoo was built with the following:
USE="dbus hs2-0 readline ssl -ap -bindist -eap-sim -eapol_test -fasteap -gnutls -libressl -p2p -privsep (-ps3) -qt5 (-selinux) -smartcard -suiteb -tdls -uncommon-eap-types (-wimax) -wps" ABI_X86="(64)"


And when I upgrade to wpa_supplicant-2.7-r3, this is what it builds with (wifi doesn't work):
Code:
[ebuild     U ] net-wireless/wpa_supplicant-2.7-r3 [2.7-r1] USE="dbus hs2-0 readline -ap -bindist -eap-sim -eapol_test -fasteap -libressl -macsec% -p2p -privsep (-ps3) -qt5 (-selinux) -smartcard -tdls -uncommon-eap-types (-wimax) -wps (-gnutls%) (-ssl%*) (-suiteb%)"


Any ideas?


Last edited by skiwarz on Thu Sep 26, 2019 6:16 pm; edited 2 times in total
Back to top
View user's profile Send private message
skiwarz
Tux's lil' helper
Tux's lil' helper


Joined: 23 Feb 2014
Posts: 132

PostPosted: Thu Sep 26, 2019 3:41 am    Post subject: Reply with quote

Here's my wpa_supplicant.conf:
Code:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
update_config=1

network={
        ssid="myssid"
        scan_ssid=1
        key_mgmt=WPA-PSK
        psk="MYKEY"
}
Back to top
View user's profile Send private message
skiwarz
Tux's lil' helper
Tux's lil' helper


Joined: 23 Feb 2014
Posts: 132

PostPosted: Thu Sep 26, 2019 6:10 pm    Post subject: Reply with quote

Somebody correct me if I'm wrong, but the "-r1" or "-r3" in package names indicates only gentoo-specific changes to the ebuild. The package still uses the same source code, right?
So, whatever breaks wpa_supplicant for me is something in the .ebuild file. When I run "diff wpa_supplicant-2.7-r1.ebuild wpa_supplicant-2.7-r3.ebuild" I get this:
Code:
21,22c21                                                                                                                                               
< IUSE="ap bindist dbus eap-sim eapol_test fasteap gnutls +hs2-0 libressl p2p privsep ps3 qt5 readline selinux smartcard                                                                                           ssl suiteb tdls uncommon-eap-types wimax wps kernel_linux kernel_FreeBSD"                                                                                                                                       
< REQUIRED_USE="smartcard? ( ssl )"                                                                                                                                                                               
---                                                                                                                                 
> IUSE="ap bindist dbus eap-sim eapol_test fasteap +hs2-0 libressl macsec p2p privsep ps3 qt5 readline selinux smartcard                                                                                           tdls uncommon-eap-types wimax wps kernel_linux kernel_FreeBSD"                                                                                                                                                   
41,51c40,41                                                                                                                                                         
<       ssl? (                                                                                                                                                                 
<               gnutls? (                                                                                                                                                                                         
<                       dev-libs/libgcrypt:0=                                                                                   
<                       net-libs/gnutls:=                                                                                       
<               )                                                                                                                                                                           
<               !gnutls? (                                                                                                                                                                                       
<                       !libressl? ( >=dev-libs/openssl-1.0.2k:0=[bindist=] )                                                   
<                       libressl? ( dev-libs/libressl:0= )                                                                     
<               )                                                                                                                                                                           
<       )                                                                                                                                                   
<       !ssl? ( dev-libs/libtommath )                                                                                                                                                                             
---                                                                                                                                 
>       !libressl? ( >=dev-libs/openssl-1.0.2k:0=[bindist=] )                                                                                                                                                     
>       libressl? ( dev-libs/libressl:0= )                                                                                                                                                                       
90,99d79                                                                                                                                               
< pkg_setup() {                                                                                                                                                                     
<       if use ssl ; then                                                                                                                                                                                         
<               if use gnutls && use libressl ; then                                                                                                                                                             
<                       elog "You have both 'gnutls' and 'libressl' USE flags enabled: defaulting to USE=\"gnutls\""           
<               fi                                                                                                                                                                             
<       else                                                                                                                                                           
<               elog "You have 'ssl' USE flag disabled: defaulting to internal TLS implementation"                                                                                                               
<       fi                                                                                                                                                     
< }                                                                                                                                 
<                                                                                                                               
161a142,146                                                                                                                                                         
>       Kconfig_style_config HT_OVERRIDES                                                                                                                                                                         
>       Kconfig_style_config VHT_OVERRIDES                                                                                                                                                                       
>       Kconfig_style_config OCV                                                                                                                                                                                 
>       Kconfig_style_config TLSV11                                                                                                                                                                               
>       Kconfig_style_config TLSV12                                                                                                                                                                               
233,234c218,230                                                                                                                                                                     
<       if use suiteb; then                                                                                                                                                                                       
<               Kconfig_style_config SUITEB                                                                                                                                                                       
---                                                   
>       Kconfig_style_config TLS openssl                                                                                                                                                                         
>       Kconfig_style_config FST                                                                                                                                                                                 
>       if ! use bindist || use libressl; then                                                                                                                                                                   
>               Kconfig_style_config EAP_PWD                                                                                                                                                                     
>               Kconfig_style_config FILS                                                                                                                                                                         
>               Kconfig_style_config FILS_SK_PFS                                                                                                                                                                 
>               # Enabling mesh networks.                                                                                                                                                                         
>               Kconfig_style_config MESH                                                                                                                                                                         
>               #WPA3                                                                                                                                                                                       
>               Kconfig_style_config OWE                                                                                                                                                                         
>               Kconfig_style_config SAE                                                                                                                                                                         
>               Kconfig_style_config DPP                                                                                                                                                                         
>               Kconfig_style_config SUITEB192
236,260c232,233
<
<       # SSL authentication methods
<       if use ssl ; then
<               if use gnutls ; then
<                       Kconfig_style_config TLS gnutls
<                       Kconfig_style_config GNUTLS_EXTRA
<               else
<                       #this fails for gnutls
<                       Kconfig_style_config SUITEB192
<                       Kconfig_style_config TLS openssl
<                       if ! use bindist; then
<                         #this fails for gnutls
<                         Kconfig_style_config EAP_PWD
<                         # SAE fails on gnutls and everything below here needs SAE
<                         # Enabling mesh networks.
<                         Kconfig_style_config MESH
<                         #WPA3
<                         Kconfig_style_config OWE
<                         Kconfig_style_config SAE
<                         #we also need to disable FILS, except that isn't enabled yet
<                       fi
<
<               fi
<       else
<               Kconfig_style_config TLS internal
---
>       if ! use bindist && ! use libressl; then
>               Kconfig_style_config SUITEB
280a254,259
>               if use macsec ; then
>                       #requires something, no idea what
>                       #Kconfig_style_config DRIVER_MACSEC_QCA
>                       Kconfig_style_config MACSEC
>               fi
>
437c416
<       if use bindist || use gnutls; then
---
>       if use bindist; then
439c418
<                       ewarn "Using bindist or gnutls use flags presently breaks WPA3 (specifically SAE and OWE)."
---
>                       ewarn "Using bindist use flag presently breaks WPA3 (specifically SAE, OWE, DPP, and FILS)."
441a421,425
>       fi
>       if use libressl; then
>               ewarn "Libressl doesn't support SUITEB (part of WPA3)"
>               ewarn "but it does support SUITEB192 (the upgraded strength version of the same)"
>               ewarn "You probably don't care.  Patches welcome"


I've tried the "-r1" version with the SSL use flag both enabled and disabled and it works both ways. So I don't think the problem is with that USE flag. Does anyone else see anything in this output that could potentially prevent connecting to wifi? I've not explored .ebuild files too much, so I don't really know what to look for. There are a couple "Kconfig" lines... do they have something to do with the kernel?

Lastly, does my logic make sense? Or did I miss something?
Back to top
View user's profile Send private message
skiwarz
Tux's lil' helper
Tux's lil' helper


Joined: 23 Feb 2014
Posts: 132

PostPosted: Sat Sep 28, 2019 3:08 am    Post subject: Reply with quote

So, when I enable the bindist USE flag, the newer versions work just fine. However, I get this warning from portage:
Code:
Using bindist use flag presently breaks WPA3 (specifically SAE, OWE, DPP, and FILS). This is incredibly undesirable


So, the reason 2.7-r3 and 2.8 were broken before was due to one of these features not working correctly (SAE, OWE, DPP, or FILS)... I know this because the bindist use flag turns them off... which I'm about to investigate right now.
If anyone has any knowledge of these, I would love some advice. I've never delved this deep into wifi before...
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Networking & Security All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum