Bug 235251

Summary: Setting WPAPSK for a network card is not consistent
Product: [openSUSE] openSUSE 10.2 Reporter: Dieter Jurzitza <dieter.jurzitza>
Component: YaST2Assignee: Michal Zugec <mzugec>
Status: RESOLVED INVALID QA Contact: Jiri Srain <jsrain>
Severity: Normal    
Priority: P5 - None    
Version: RC 5   
Target Milestone: ---   
Hardware: i586   
OS: Other   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: Start configuration of rt61 card: Yast detects correctly.
The network type for rt61 based cards is erratically shown as "Ethernet" not "Drahtlos"
This one actually shows that you have to change Network type
Here the first setup: you can choose between "Offen" and "Gemeinsamer Schlüssel"
After finalizing the configuration with "common key" you simply reconfigure, and here you go. Should have been there from the very begin, isn't it?
output of hwconfig --netcard

Description Dieter Jurzitza 2007-01-15 20:39:00 UTC
When trying to set a WPAPSK option for a wireless network card the behaviour of YaST2 is inconsistent.

For my Ralink card there are different "models":
- YaST2 (via curses) never allows the setting of WPAPSK for the Ralink card exept it had had been configured appropriately before via the graphical YaST2
- YaST2 (via graphical) interface does not allow it at first configuration of the card, but does so at the second configuration.

To avoid a M$-ish behaviour I see two options:
1.) there is an editable file with a list of interfaces that are allowed for WPAPSK configuration.
2.) every card can be configured for WPAPSK under any condition.
3.) the user gets an hint that he may or may not be successful in requesting this kind of encryption as only a part of the drivers are supported by Novell / SuSE.

If I can help finding the real reasons, let me know!

Take care


Dieter Jurzitza
The current behaviour is hard to understand.
Comment 1 Michal Zugec 2007-01-23 17:15:03 UTC
It will be very helpfull to provide screenshots of that problem
Comment 2 Jiri Srain 2007-06-07 11:49:05 UTC
No input for nearly five months, thus resolving as INVALID.

If you can provide requested information, please, reopen.
Comment 3 Dieter Jurzitza 2007-06-11 19:21:21 UTC
Created attachment 145393 [details]
Start configuration of rt61 card: Yast detects correctly.
Comment 4 Dieter Jurzitza 2007-06-11 19:22:26 UTC
Sorry, must have missed the information request. Here you go with screenshots (5 different ones)

This is an example for a rt61 based card, however, with a rt2500 based card the results are the same, besides the fact that the problem with wlan detection does not appear.

I patched sysconfig in such a way that it is possible to use WPA-PSK with both cards from YaST (what is not supported from SuSE for unknown reasons.

The problem shows in the dialogs: when you configure the card for the first time, you can only choose either "Offen" or "Gemeinsamer Schlüssel" for it. After leaving YaST and restarting configuration, you can set WPA-PSK as I would have expected.

You can see the steps from the jpg's attached.
Comment 5 Dieter Jurzitza 2007-06-11 19:23:13 UTC
Created attachment 145394 [details]
The network type for rt61 based cards is erratically shown as "Ethernet" not "Drahtlos"
Comment 6 Dieter Jurzitza 2007-06-11 19:24:09 UTC
Created attachment 145395 [details]
This one actually shows that you have to change Network type
Comment 7 Dieter Jurzitza 2007-06-11 19:24:55 UTC
Created attachment 145396 [details]
Here the first setup: you can choose between "Offen" and "Gemeinsamer Schlüssel"
Comment 8 Dieter Jurzitza 2007-06-11 19:25:52 UTC
Created attachment 145397 [details]
After finalizing the configuration with "common key" you simply reconfigure, and here you go. Should have been there from the very begin, isn't it?
Comment 9 Dieter Jurzitza 2007-06-11 19:30:51 UTC
My points here:
1.) Both cards (rt2500 and rt61 using the legacy! drivers) are detected correctly.
2.) However, the configuration options for WPA-PSK are not provided (on the first run). Since it takes only a few lines to make sysconfig support both rt61 and rt2500 WPA-PSK for those cards, I do not understand why this is not offered immediatly. You always have to explain people that they have to start configuration twice.

Thank you for taking care, and sorry for the delay!

Take care



Dieter
Comment 10 Michal Zugec 2007-07-23 20:35:29 UTC
Dieter, please don't attach screenshots in german next time (english is bugzilla language)

So as I understand, that cards are detected as ethernet instead of wlan
Please attach output from "hwinfo --netcard"
Comment 11 Dieter Jurzitza 2007-07-25 14:01:42 UTC
Dear Michal,
1.) sorry for the German, just didn't think about it.
2.) please find the file "hwconfig-netcard" attached. Howerver, there are two different issues we are looking at.
The rt61pci / rt2500pci drivers that come with the wlan-kmp-default rpm exhibit stability issues and they do not provide WPA PSK.
Therefore I switched to the legacy rt61 / rt2500 drivers, but the drivers as such are _not_ what I am discussing in this bug report (only for clarification)

a.) the card 19: PCI 0b.0: 0200 Ethernet controller
is a WLAN card and should be detected as such. "Features" says "WLAN" so I do not understand why it is said to be an Ethernet card - but maybe you have more insight into this. This may be a hwinfo issue.

b.) as I readily said, original SUSE does not support WPA-PSK for these cards because SUSE only supports cards that can be handled by wpa-supplicant. This is acceptable as the new rt2x - releases to come will provide the appropriate interface. 

But this is not the point. When configuring traditional with yast2 as depicted in the jpegs it is not sure whether or not you can access the WPA-PSK dialogue for the cards. 
Usually you cannot access it for the first time, so you choose "Common Key" (WEP) as the first step. Then you save configuration, restart yast2 a second time. If you configure the card again, voila, you can choose WPA settings. The reason behind my points here is that it does not take more than a 10 liner patch to ifup-wireless to allow the configuration of WPA-PSK to both rt61.ko and rt2500.ko from within yast2 - if only yast2 would open the corresponding setting options.

This is what I have been referring to in my initial Bug - hope I could clarify now.
Thank you for taking care!
Comment 12 Dieter Jurzitza 2007-07-25 14:04:20 UTC
Created attachment 152986 [details]
output of hwconfig --netcard

This is the output from hwconfig --netcard as requested. There are three network adapters in this pc, one ethernet and two wireless adapters.
The wireless adapters are a rt2500 and a rt61 card.
Comment 13 Michal Zugec 2007-07-25 15:00:05 UTC
2.) but this drivers also doesn't provide WPA-PSK:

...
WLAN bitrates: 1 2 5.5 11 6 12 24 36 9 18 48 54
  WLAN encryption modes: WEP40 WEP104
  WLAN authentication modes: open sharedkey
                             ^^^^^^^^^^^^^^^
  Module Alias: "pci:v00001814d00000201sv00001814sd00002560bc02sc80i00"
  Driver Info #0:
    Driver Status: rt2500 is active
...

...
WLAN encryption modes: WEP40 WEP104
  WLAN authentication modes: open sharedkey
                             ^^^^^^^^^^^^^^
  Module Alias: "pci:v00001814d00000301sv00001814sd00002561bc02sc80i00"
  Driver Info #0:
    Driver Status: rt61 is active
...


>> If you configure the card again, voila, you can choose WPA settings.
This is a bug. Previous maintainer told me just today about it (you shouldn't configure it because driver doesn't provide it).

For Eth/Wlan detection test please last yast2-network package: https://bugzilla.novell.com/attachment.cgi?id=152681
Comment 14 Dieter Jurzitza 2007-07-25 15:22:11 UTC
You are wrong here. The current suse init concept does not provide an interface to iwpriv. 
I have been using both modules since more than a year with WPAPSK only. Suse only supports wpa-supplicant for (IMHO) ununderstandable reasons. Apply the patch below (as readily said) to ifconfig-wireless and you will see both drivers work flawlessly with WEP, WPA-PSK (and no encryption, for sure). Both ralink cards are quite widespread and can be easy to use.

So, the information that is presented by hwconfig is wrong in this case. And it would be nice if yast would be open in this regard - the "bug" helps me since quite a while because from this it is possible to configure the card easily after applying the following patch (against 10.2):

--- scripts/ifup-wireless.original      2006-10-27 15:32:54.000000000 +0200
+++ scripts/ifup-wireless       2007-01-21 23:21:03.000000000 +0100
@@ -630,9 +630,20 @@
     else
         SUPPARGS="-P/var/run/wpa_supplicant/${INTERFACE}.pid -B"
     fi
-    mkdir -p /var/run/wpa_supplicant
-    message "`printf "    %-9s starting wpa_supplicant" $INTERFACE`"
-    eval wpa_supplicant -i$INTERFACE -c$WPA_SUPP_CONF -D$WPA_DRIVER $SUPPARGS
+    if [ "$WPA_DRIVER" = "iwpriv" ]; then
+       i=0
+       while [ "$i" != "2" ]; do
+               run_iw_tool priv set AuthMode=WPAPSK
+               run_iw_tool priv set EncrypType=TKIP
+               run_iw_tool priv set WPAPSK="${WIRELESS_WPA_PSK}"
+               run_iw_tool config essid ${WIRELESS_ESSID}
+               i=`expr $i + 1`
+       done
+    else
+        mkdir -p /var/run/wpa_supplicant
+        message "`printf "    %-9s starting wpa_supplicant" $INTERFACE`"
+        eval wpa_supplicant -i$INTERFACE -c$WPA_SUPP_CONF -D$WPA_DRIVER $SUPPARGS
+    fi
 }
 
 kill_wpa_supplicant()
@@ -682,6 +693,12 @@
             ndiswrapper|*.sys)
                 WPA_DRIVER=wext
                 ;;
+            rt2500)
+                WPA_DRIVER=iwpriv
+                ;;
+            rt61)
+                WPA_DRIVER=iwpriv
+                ;;
             *)
                 WPA_DRIVER=unsupported
                 PREFER_WPA_SUPPLICANT=no



Comment 15 Michal Zugec 2007-07-25 17:00:49 UTC
>> The current suse init concept does not provide an interface
to iwpriv. 
Yes, because we don't want support iwpriv. It uses it's own ioctl calls (ask kernel-maintainers for flame ;-))

Drivers rt61 and rt2500 are unsupported. They don't use wpa_supplicant, but iwpriv instead of.
As I discussed with wlan kernel stack maintainer, rt61pci and both rt2500pci do provide WPA PSK.

We accept bugreports for rt61pci and both rt2500pci.
Sorry Dieter but it was your own decission (I hope ;-)) to do not use distribution drivers, so you have to maintain them in your own. 
Comment 16 Dieter Jurzitza 2007-07-25 17:56:46 UTC
Well, reading this tells me one thing: the driver maintainer never ever tried to make wpa-psk work with what suse distributes with 10.2 and before. _never ever_ :-))).

By the way, a look into ifup-wireless tells you lies: rt61pci / rt2500pci is not included in the switch statement for supported cards. No way for WPA-PSK on anyone of the current stable suse distributions.

Whether suse likes the iwpriv concept or suse doesn't: it has one huge advantage (at least for Ralink based cards), it works ;-). This is what I would call a user benefit, nothing else. An user will not ask for flamewars of kernel maintainers. This is (and should be IMHO) out of his scope.

The degree of acceptance of linux is directly proportional to it's user friendlyness.
This statement sounds like going to a car shop and you get a car with only three of four wheels because the salesman inside tells you that he doesn't want to sell four wheel cars because of the screws in use :-))))).

So, who's decision? Well, yes, mine, but what caused the decision, that would be the right question to ask ;-).

Again: saying that the legacy drivers do not support wpa psk is definitively technically wrong.
So, the hwinfo driver would have to treat it right, coming  up with a message that it is available but not supported or something alike, that would be the technically correct output.

At the end of the day the rt2x drivers hopefully will reach a state where they can be used successfully, this wasn't the case until now.

And in turn, ok, keep your bug as is, so I can keep things for people useable (if suse doesn't want to support this as I understood) :-)))). As each new release comes with new problems it is often wise to keep things as they are, known bugs are easier to cope with :-))).

Anyway, thanks for your time!
Comment 17 Michal Zugec 2007-07-25 18:50:19 UTC
I'm responsible just for YaST part and when hwinfo says that driver doesn't suport I can't do anything. Nobody from us can fix driver which is not in distribuition especially if we have similar one for that device which you don't want use.

Drivers you're using has some bad isues (wpa in kernelspace, ...). If you want help to you and other users with that hardware, why you don't fill bugreport for distribution drivers to solve that problem, not doing workaround?


>> By the way, a look into ifup-wireless tells you lies: rt61pci / rt2500pci is
>> not included in the switch statement for supported cards. No way for WPA-PSK on
>> anyone of the current stable suse distributions.

Jirko, can you comment this?
Comment 18 Jiri Benc 2007-07-25 19:15:38 UTC
The interface of the legacy driver is ignoring almost every kernel<->userspace interface standard. Moreover, the driver is obsolete. (Btw, it is also very ugly, ignoring other kernel standards - putting the whole WPA supplicant machine including key management into the kernel is totally insane.)

The new rt2x00 drivers support WPA (including WPA-PSK) for quite some time. Have you tried them with NetworkManager?

Anyway, the quality of new rt2x00 drivers is rapidly improving. If they don't work reliably in 10.2 for you, I'm quite sure the situation in 10.3 will be much better.