On 03/06/2012 11:31 PM, alupu@xxxxxxxxxxx wrote:
On 03/06/12 10:22 PM, Larry Finger wrote:> Here are the details for my system, which is 64-bit.
I'm running kernel 3.3-rc5 with wireless-tools version 30.
The root of the divergence between our results might be
found in the differences between my version 29 and your "30".
According to Jean Tourrilhes (the founding father of the tools):
"The latest stable version of Wireless Tools is version 29"
He also mentions (and offers) a version "30-pre9(beta)".
See
<www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html>
As an aside, this situation where distributions (as opposed to the
(B)LFS approach) tweak packages so as to offer an overall workable
release is getting worse and worse, especially lately where
software package dependencies are getting way out of hand.
In this particular instance, we'll never know if openSuse "30"
is the same as "30-pre9(beta)" (whatever that would mean) or
a lower "-pre" or even an in-house version 29/30 software
massaged to play nice with other package instances within
a particular distribution release.
That said, this doesn't mean that my problem might not lie elsewhere.
A great help would be if you could install the latest
_stable_ release (29) and quickly test my complaints.
Don't be afraid of the version police. You cannot be arrested
for using the _official_, genuine, latest stable version 29.
You _might_ get in trouble if they catch you using a most
likely counterfeit version 30 :)
What would be the ifconfig command to start the interface with DHCP?
In my distro, we have an ifup command that reads a configuration file.
That script is too complicated to see what it does.
I've used DHCP only for "wire" connections, in a wrapper of my
own which finally ends up doing something like,
dhcpcd eth0 -L
Well, despite your complaints about my "illicit and counterfeit" version of
wireless extensions, that is not where the problem lies, as shown in the
attached log. In it, I used kernel 3.3-rc6 to configure the r8712u device, get
an IP using the dhcpcd command, and pinged the Internet. I was even able to
split the setting of the essid and the key.
To help debug the problem, the attached patch will log the setting of the ESSID
in the driver. For some reason, there is one garbage printout and the correct
one for every call, but that should not cause a problem.
Larry
linux-gskd:/home/finger/wireless_tools.29 # iwconfig --version
iwconfig Wireless-Tools version 29
Compatible with Wireless Extension v11 to v22.
Kernel Currently compiled with Wireless Extension v22.
wlan4 Recommend Wireless Extension v16 or later,
Currently compiled with Wireless Extension v22.
linux-gskd:/home/finger/wireless_tools.29 # iwconfig wlan4
wlan4 unassociated Nickname:"rtl_wifi"
Mode:Managed Access Point: Not-Associated Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
linux-gskd:/home/finger/wireless_tools.29 # iwconfig wlan4 essid radius
linux-gskd:/home/finger/wireless_tools.29 # iwconfig wlan4
wlan4 IEEE 802.11bg ESSID:"radius" Nickname:"rtl_wifi"
Mode:Managed Frequency:2.412 GHz Access Point: 00:14:BF:85:49:FA
Bit Rate:54 Mb/s Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=100/100 Signal level=100/100 Noise level=0/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
linux-gskd:/home/finger/wireless_tools.29 # iwconfig wlan4 key restricted 1234f0033edaebf3f7dab4ceca
linux-gskd:/home/finger/wireless_tools.29 # iwconfig wlan4
wlan4 IEEE 802.11bg ESSID:"radius" Nickname:"rtl_wifi"
Mode:Managed Frequency:2.412 GHz Access Point: 00:14:BF:85:49:FA
Bit Rate:54 Mb/s Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Encryption key:1234-F003-3EDA-EBF3-F7DA-B4CE-CA Security mode:restricted
Power Management:off
Link Quality=100/100 Signal level=100/100 Noise level=0/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
linux-gskd:/home/finger/wireless_tools.29 # dhcpcd wlan4 -L
linux-gskd:/home/finger/wireless_tools.29 # ifconfig wlan4
wlan4 Link encap:Ethernet HWaddr 00:26:5A:BF:41:E4
inet addr:192.168.3.110 Bcast:192.168.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1613 errors:0 dropped:160 overruns:0 frame:0
TX packets:341 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:699314 (682.9 Kb) TX bytes:56100 (54.7 Kb)
linux-gskd:/home/finger/wireless_tools.29 # ping -c3 www.samba.org
PING fn.samba.org (216.83.154.106) 56(84) bytes of data.
64 bytes from fn.samba.org (216.83.154.106): icmp_seq=1 ttl=47 time=83.8 ms
64 bytes from fn.samba.org (216.83.154.106): icmp_seq=2 ttl=47 time=79.0 ms
64 bytes from fn.samba.org (216.83.154.106): icmp_seq=3 ttl=47 time=76.6 ms
--- fn.samba.org ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 76.640/79.850/83.840/2.999 ms
Index: staging/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
===================================================================
--- staging.orig/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
+++ staging/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
@@ -1293,12 +1293,18 @@ static int r8711_wx_set_essid(struct net
struct list_head *phead;
u32 len;
- if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY))
+ if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY)) {
+ printk(KERN_INFO "*********** in %s - Returned -EBUSY\n", __func__);
return -EBUSY;
- if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING))
+ }
+ if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) {
+ printk(KERN_INFO "*********** in %s - Returned 0\n", __func__);
return 0;
- if (wrqu->essid.length > IW_ESSID_MAX_SIZE)
+ }
+ if (wrqu->essid.length > IW_ESSID_MAX_SIZE) {
+ printk(KERN_INFO "*********** in %s - Returned -E2BIG\n", __func__);
return -E2BIG;
+ }
authmode = padapter->securitypriv.ndisauthtype;
if (wrqu->essid.flags && wrqu->essid.length) {
len = (wrqu->essid.length < IW_ESSID_MAX_SIZE) ?
@@ -1338,6 +1344,7 @@ static int r8711_wx_set_essid(struct net
}
r8712_set_802_11_authentication_mode(padapter, authmode);
r8712_set_802_11_ssid(padapter, &ndis_ssid);
+ printk(KERN_INFO "r8712u: Set ESSID to %s\n", ndis_ssid.Ssid);
}
return -EINPROGRESS;
}