WEP is not working on Marvell 88W8686 starting 2.6.36

David Abd david.abd at gmail.com
Wed Sep 14 08:12:05 EDT 2011


This is continuation of "Significant difference between 2.6.34 and
2.6.39?" (http://lists.infradead.org/pipermail/libertas-dev/2011-August/003671.html)
This includes *debug information*.

Machine: Gumstix Overo Fire COM (ARM Cortex-A8), Wi2Wi chip (based on
Marvell 88W8686) for wireless connectivity.
I have tested 2.6.34, 2.6.35, 2.6.36, 2.6.39 and 3.0 kernel versions.

On 2.6.34 and 2.6.35 WEP encryption in ad-hoc mode worked just fine.
Starting 2.6.36 kernel WEP is no more working. The latest tested
kernel version was 3.0 with no success. From what I understand there
was huge *libertas* driver rewrite (wext removed, cfg80211/nl80211 (?)
support). I assume that the following commit was included into 2.6.36
after checking ChangeLog-2.6.36-wireless and ChangeLog-2.6.36.

*Commit information*
commit e86dc1ca4676445d9f0dfe35104efe0eb8a2f566
Author: Kiran Divekar <dkiran at marvell.com>
Date:   Mon Jun 14 22:01:26 2010 +0530

iwconfig successfully creates ad-hoc network and it's working with
other machines, but WEP encryption is missing. iwconfig continues to
show that encryption is enabled, but from other machines I can confirm
that it is fully publicly open. Could it be that this cfg80211 support
broke WEP encryption? It looks like it was the only commit that
modified required functions for brining WEP up.

# Creating Ad-Hoc network (I couldn't find how to enable WEP using iw utility)
iwconfig wlan0 mode ad-hoc
iwconfig wlan0 channel 4
iwconfig wlan0 essid 'adhoc'
iwconfig wlan0 key 1234567890

# iwconfig output (2.6.39)
wlan0     IEEE 802.11bg  ESSID:"adhoc"
         Mode:Ad-Hoc  Frequency:2.427 GHz  Cell: 02:25:15:89:84:76
         Retry  long limit:7   RTS thr:off   Fragment thr:off
         Encryption key:1234-5678-90
         Power Management:on

# Note that encryption key is not 01 23 45 67 89 (!)

# output from (2.6.35)
wlan0     IEEE 802.11b/g  ESSID:"adhoc"
         Mode:Ad-Hoc  Frequency:2.427 GHz  Cell: 02:20:30:78:97:5A
         Bit Rate:0 kb/s   Tx-Power=13 dBm
         Retry short limit:8   RTS thr=2347 B   Fragment thr=2346 B
         Encryption key:0123-4567-89   Security mode:restricted
         Power Management:off
         Link Quality=0/100  Signal level=-94 dBm  Noise level=-94 dBm
         Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
         Tx excessive retries:0  Invalid misc:0   Missed beacon:0

root at overo:/lib/modules/2.6.39/kernel/drivers/net/wireless# lsmod
Module                  Size  Used by
ipv6                  227067  14
libertas_sdio          14823  0
libertas               92094  1 libertas_sdio
cfg80211              148549  1 libertas
lib80211                5163  1 libertas
firmware_class          5909  2 libertas_sdio,libertas
ads7846                 9372  0
twl4030_madc_hwmon      2418  0

root at overo:/lib/modules/2.6.39/kernel/drivers/net/wireless# modprobe
-r libertas_sdio
root at overo:/lib/modules/2.6.39/kernel/drivers/net/wireless# modprobe -r libertas

root at overo:/lib/modules/2.6.39/kernel/drivers/net/wireless# lsmod
Module                  Size  Used by
ipv6                  227067  14
ads7846                 9372  0
twl4030_madc_hwmon      2418  0

root at overo:/lib/modules/2.6.39/kernel/drivers/net/wireless# modprobe
libertas libertas_debug=0xffffffff
lib80211: common routines for IEEE802.11 drivers
cfg80211: Calling CRDA to update world regulatory domain

root at overo:/lib/modules/2.6.39/kernel/drivers/net/wireless# modprobe
libertas_sdio
libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
libertas: 00:19:88:3d:0d:24, fw 9.70.7p0, cap 0x00000303
root at overo:/lib/libertas_sdio mmc1:0001:1: wlan0: Features changed:
0x00004800 -> 0x00004000
libertas: wlan0: Marvell WLAN 802.11 adapter
modules/2.6.39/kernel/drivers/net/wireless# ADDRCONF(NETDEV_UP):
wlan0: link is not ready
ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

root at overo:/lib/modules/2.6.39/kernel/drivers/net/wireless# lsmod
Module                  Size  Used by
libertas_sdio          14823  0
libertas               92094  1 libertas_sdio
firmware_class          5909  2 libertas_sdio,libertas
cfg80211              148549  1 libertas
lib80211                5163  1 libertas
ipv6                  227067  14
ads7846                 9372  0
twl4030_madc_hwmon      2418  0

# dmesg
<...>
UBIFS DBG (pid 1): mount_ubifs: max. seq. number:    75118
UBIFS DBG (pid 1): mount_ubifs: commit number:       1
VFS: Mounted root (ubifs filesystem) on device 0:13.
devtmpfs: mounted
Freeing init memory: 196K
mmc1: new SDIO card at address 0001
ads7846 spi1.0: touchscreen, irq 274
ads7846 spi1.0: no device detected, test read result was 0x00000000
lib80211: common routines for IEEE802.11 drivers
lib80211_crypt: registered algorithm 'NULL'
cfg80211: Calling CRDA to update world regulatory domain
libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
libertas: 00:19:88:3d:0d:24, fw 9.70.7p0, cap 0x00000303
libertas_sdio mmc1:0001:1: wlan0: Features changed: 0x00004800 -> 0x00004000
libertas: wlan0: Marvell WLAN 802.11 adapter
net eth0: SMSC911x/921x identified at 0xd08ca000, IRQ: 336
NET: Registered protocol family 10
wlan0: no IPv6 routers present
eth0: no IPv6 routers present
sshd (5403): /proc/5403/oom_adj is deprecated, please use
/proc/5403/oom_score_adj instead.
lib80211_crypt: unregistered algorithm 'NULL'
lib80211: common routines for IEEE802.11 drivers
lib80211_crypt: registered algorithm 'NULL'
cfg80211: Calling CRDA to update world regulatory domain
libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
libertas sdio: class = 0x7, vendor = 0x2DF, device = 0x9103, model =
0xB, ioport = 0x10000
libertas sdio: firmware status = 0xc
libertas sdio: scratch ret = 0
libertas sdio: firmware may be running
libertas cmd: DNLD_CMD: command 0x0003, seq 1, size 46
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 50 bytes
libertas cmd: CMD_RESP: response 0x8003, seq 1, size 46
libertas: 00:19:88:3d:0d:24, fw 9.70.7p0, cap 0x00000303
libertas cmd: GET_HW_SPEC: hardware interface 0x2, hardware spec 0x0012
libertas cmd: DNLD_CMD: command 0x001e, seq 2, size 14
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 18 bytes
libertas cmd: CMD_RESP: response 0x801e, seq 2, size 14
libertas cmd: SNMP_CMD: (set) oid 0x9, oid size 0x2, value 0x1
libertas cmd: DNLD_CMD: command 0x0016, seq 3, size 142
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 146 bytes
libertas cmd: CMD_RESP: response 0x8016, seq 3, size 142
libertas 11d: Setting country code '00'
libertas 11d: 11D triplet (1, 14, 20)
libertas 11d: # triplets 1
libertas cmd: DNLD_CMD: command 0x0028, seq 4, size 12
libertas sdio: interrupt: 0x3
libertas sdio: packet of type 1 and size 16 bytes
libertas cmd: CMD_RESP: response 0x8028, seq 4, size 12
libertas cmd: DNLD_CMD: command 0x005b, seq 5, size 20
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 24 bytes
libertas cmd: CMD_RESP: response 0x805b, seq 5, size 20
libertas_sdio mmc1:0001:1: wlan0: Features changed: 0x00004800 -> 0x00004000
libertas cmd: DNLD_CMD: command 0x001d, seq 6, size 48
libertas sdio: interrupt: 0x3
libertas sdio: packet of type 1 and size 52 bytes
libertas cmd: CMD_RESP: response 0x801d, seq 6, size 48
libertas cmd: current radio channel is 4
libertas: wlan0: Marvell WLAN 802.11 adapter
libertas cmd: SNMP_CMD: (set) oid 0x0, oid size 0x1, value 0x2
libertas cmd: DNLD_CMD: command 0x0016, seq 7, size 142
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 146 bytes
libertas cmd: CMD_RESP: response 0x8016, seq 7, size 142
libertas net (INT): mcast address wlan0:33:33:00:00:00:01 added to filter
libertas net (INT): mcast address wlan0:01:00:5e:00:00:01 added to filter
libertas cmd: DNLD_CMD: command 0x0010, seq 8, size 24
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 28 bytes
libertas cmd: CMD_RESP: response 0x8010, seq 8, size 24
libertas cmd: DNLD_CMD: command 0x0028, seq 9, size 12
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 16 bytes
libertas cmd: CMD_RESP: response 0x8028, seq 9, size 12
ADDRCONF(NETDEV_UP): wlan0: link is not ready
libertas cmd: DNLD_CMD: command 0x001d, seq 10, size 48
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 52 bytes
libertas cmd: CMD_RESP: response 0x801d, seq 10, size 48
libertas cmd: channel switch from 4 to 4
libertas cmd: RADIO_CONTROL: radio ON, preamble 2
libertas cmd: DNLD_CMD: command 0x001c, seq 11, size 12
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 16 bytes
libertas cmd: CMD_RESP: response 0x801c, seq 11, size 12
libertas cmd: DNLD_CMD: command 0x002b, seq 12, size 177
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 24 bytes
libertas cmd: CMD_RESP: response 0x802b, seq 12, size 20
ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
libertas net (INT): mcast address wlan0:33:33:00:00:00:01 added to filter
libertas net (INT): mcast address wlan0:01:00:5e:00:00:01 added to filter
libertas net (INT): mcast address wlan0:33:33:ff:3d:0d:24 added to filter
libertas cmd: DNLD_CMD: command 0x0010, seq 13, size 30
libertas sdio: interrupt: 0x3
libertas sdio: packet of type 1 and size 34 bytes
libertas cmd: CMD_RESP: response 0x8010, seq 13, size 30
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x2
wlan0: no IPv6 routers present

# Commands executed:
iwconfig wlan0 mode ad-hoc
iwconfig wlan0 channel 4
iwconfig wlan0 essid 'adhoc'
iwconfig wlan0 key 1234567890

# dmesg (additional)
libertas cmd: DNLD_CMD: command 0x0040, seq 14, size 8
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 12 bytes
libertas cmd: CMD_RESP: response 0x8040, seq 14, size 8
libertas cmd: DNLD_CMD: command 0x001d, seq 15, size 48
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 52 bytes
libertas cmd: CMD_RESP: response 0x801d, seq 15, size 48
libertas cmd: channel switch from 4 to 4
libertas cmd: RADIO_CONTROL: radio ON, preamble 2
libertas cmd: DNLD_CMD: command 0x001c, seq 16, size 12
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 16 bytes
libertas cmd: CMD_RESP: response 0x801c, seq 16, size 12
libertas cmd: DNLD_CMD: command 0x002b, seq 17, size 177
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 24 bytes
libertas cmd: CMD_RESP: response 0x802b, seq 17, size 20
libertas cmd: DNLD_CMD: command 0x0013, seq 18, size 80
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 84 bytes
libertas cmd: CMD_RESP: response 0x8013, seq 18, size 80
libertas cmd: DNLD_CMD: command 0x0040, seq 19, size 8
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 12 bytes
libertas cmd: CMD_RESP: response 0x8040, seq 19, size 8
libertas cmd: DNLD_CMD: command 0x001d, seq 20, size 48
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 52 bytes
libertas cmd: CMD_RESP: response 0x801d, seq 20, size 48
libertas cmd: channel switch from 4 to 4
libertas cmd: RADIO_CONTROL: radio ON, preamble 2
libertas cmd: DNLD_CMD: command 0x001c, seq 21, size 12
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 16 bytes
libertas cmd: CMD_RESP: response 0x801c, seq 21, size 12
libertas cmd: DNLD_CMD: command 0x002c, seq 22, size 101
libertas sdio: interrupt: 0x2
libertas sdio: interrupt: 0x1
libertas sdio: packet of type 1 and size 13 bytes
libertas cmd: CMD_RESP: response 0x802c, seq 22, size 9

Regards,
David



More information about the libertas-dev mailing list