Connecting P1i to FreeBSD

Ivan Voras ivoras at freebsd.org
Thu Apr 24 23:41:31 UTC 2008


Hi,

I'd like to connect SE P1i (a "smartphone" device) to FreeBSD, in any 
possible way, via wireless (WLAN). The symptoms are that it just reports 
"Connection failed" no matter what I do.

Acquired data so far:

0) I'm trying adhoc mode without any authorization, for now, just to get 
it working
1) The same wifi adapter (USB, D-Link DWL-G122) works ok with Windows XP 
with adhoc mode (i.e. the device connects/associates to the computer, 
can exchange network traffic, etc; in Windows I can bridge the wifi 
device to the network card, etc. - in effect, no problems)
2) There's no way the same devices succeeds in talking when the wifi 
adapter is on FreeBSD. The adapter is run via the rum driver.
2a) The "scan network" action on the device lists the WLAN SSID on the 
computer; also "ifconfig rum0 list sta" on FreeBSD shows the device's MAC.
3) A third machine, a laptop, can connect to the FreeBSD machine, 
everything works.
3a) Apparently SE P1i is quirky with its WLAN support, but somehow it 
knows how to talk to Windows.

Here's a debug trace from the FreeBSD machine (wlandebug -i rum0 +debug 
+scan +assoc +node +xrate +rate +input +output +auth) during the 
unsuccessful connection attempt. The "...1d" MAC is from the P1i.

rum0: received probe_req from 00:1c:a4:75:63:1d rssi 27
rum0: [00:1c:a4:75:63:1d] recv probe req
rum0: ieee80211_ref_node (ieee80211_send_mgmt:1574) 
0xc250b000<00:1c:a4:75:63:1d> refcnt 3
[00:1c:a4:75:63:1d] send probe_resp on channel 6
rum0: received probe_req from 00:1c:a4:75:63:1d rssi 27
rum0: [00:1c:a4:75:63:1d] recv probe req
rum0: ieee80211_ref_node (ieee80211_send_mgmt:1574) 
0xc250b000<00:1c:a4:75:63:1d> refcnt 3
[00:1c:a4:75:63:1d] send probe_resp on channel 6
rum0: received probe_req from 00:1c:a4:75:63:1d rssi 25
rum0: [00:1c:a4:75:63:1d] recv probe req
rum0: ieee80211_ref_node (ieee80211_send_mgmt:1574) 
0xc250b000<00:1c:a4:75:63:1d> refcnt 3
[00:1c:a4:75:63:1d] send probe_resp on channel 6
rum0: received probe_req from 00:1c:a4:75:63:1d rssi 25
rum0: [00:1c:a4:75:63:1d] recv probe req
rum0: ieee80211_ref_node (ieee80211_send_mgmt:1574) 
0xc250b000<00:1c:a4:75:63:1d> refcnt 3
[00:1c:a4:75:63:1d] send probe_resp on channel 6
rum0: received probe_req from 00:1c:a4:75:63:1d rssi 25
rum0: [00:1c:a4:75:63:1d] recv probe req
rum0: ieee80211_ref_node (ieee80211_send_mgmt:1574) 
0xc250b000<00:1c:a4:75:63:1d> refcnt 3
[00:1c:a4:75:63:1d] send probe_resp on channel 6
rum0: received probe_req from 00:1c:a4:75:63:1d rssi 25
rum0: [00:1c:a4:75:63:1d] recv probe req
rum0: ieee80211_ref_node (ieee80211_send_mgmt:1574) 
0xc250b000<00:1c:a4:75:63:1d> refcnt 3
[00:1c:a4:75:63:1d] send probe_resp on channel 6
rum0: received probe_req from 00:1c:a4:75:63:1d rssi 25
rum0: [00:1c:a4:75:63:1d] recv probe req
rum0: ieee80211_ref_node (ieee80211_send_mgmt:1574) 
0xc250b000<00:1c:a4:75:63:1d> refcnt 3
[00:1c:a4:75:63:1d] send probe_resp on channel 6
rum0: received probe_req from 00:1c:a4:75:63:1d rssi 25
rum0: [00:1c:a4:75:63:1d] recv probe req
rum0: ieee80211_ref_node (ieee80211_send_mgmt:1574) 
0xc250b000<00:1c:a4:75:63:1d> refcnt 3
[00:1c:a4:75:63:1d] send probe_resp on channel 6
rum0: [00:1c:a4:75:63:1d] probe station due to inactivity
rum0: [00:1c:a4:75:63:1d] send null data frame on channel 6, pwr mgt dis
rum0: [00:1c:a4:75:63:1d] probe station due to inactivity
rum0: [00:1c:a4:75:63:1d] send null data frame on channel 6, pwr mgt dis
rum0: [00:1c:a4:75:63:1d] station timed out due to inactivity (refcnt 1)
rum0: [00:1c:a4:75:63:1d] station with aid 0 leaves
rum0: node_reclaim: remove 0xc250b000<00:1c:a4:75:63:1d> from neighbor 
table, refcnt 1
rum0: _ieee80211_free_node 0xc250b000<00:1c:a4:75:63:1d> in <gone> table

The last 8 messages appear long after the device itself has stopped 
trying and declared it unconnectable.

I don't know enough of wifi implementation to draw solid conclusions but 
this seems to me like the device is ignoring information given to it by 
the FreeBSD-run adapter and is retrying several times until it gives up.

Here's ifconfig for rum0:

rum0: flags=108843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,NEEDSGIANT> 
metric 0 mtu 1500
         ether 00:1c:f0:9d:08:b3
         inet 10.0.0.3 netmask 0xffffff00 broadcast 10.0.0.255
         media: IEEE 802.11 Wireless Ethernet autoselect <adhoc> 
(autoselect <adhoc>)
         status: associated
         ssid C1 channel 6 (2437 Mhz 11g) bssid 9a:04:a0:16:24:54
         authmode OPEN privacy OFF txpower 50 scanvalid 60 bgscan
         bgscanintvl 300 bgscanidle 250 roam:rssi11g 7 roam:rate11g 5
         protmode CTS

here's "ifconfig rum0 list sta":

ADDR               AID CHAN RATE RSSI IDLE  TXSEQ  RXSEQ CAPS FLAG
00:1c:f0:9d:08:b3    0    6   1M 15.5    0      0     80 I    A
00:1c:a4:75:63:1d    0    6   1M 14.5    0      2     96      A

Is the difference in CAPS significant? Obviously, I can't influence the 
device in any way to configure itself, but when it scans the available 
SSIDs, it knows this one is in "ad-hoc" mode and has the correct channel 
listed.

Any ideas what to try next? Fiddling with adhoc/hostap modes, 11b and 
11g modes, authentication, etc. doesn't work. Even long shots are 
appreciated. This is on RELENG_7.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 250 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-net/attachments/20080424/b12d9f21/signature.pgp


More information about the freebsd-net mailing list