Hello all.
Sorry, I'm new to this so please bear with me. I am trying to bring up an SN8000 on a custom i.MX Linux board based on the imx6ul EVK design. I am able to partially bring up the module, scan for (and detect) networks using iw as well as wpa_cli but I can not connect to open or secured networks. Has anyone had experience with the i.mx 6 and SN8000 that can give me advice on bringing up the SN8000 as well as how to better diagnose these connection issues?
Below are examples of boot messages and connection error messages and I have also attached a full trace from the driver using dhd_msg_level=0x2fff
Thanks.
Boot messages
=============
Power-up adapter 'DHD generic adapter'
wifi_platform_bus_enumerate device present 1
F1 signature OK, socitype:0x1 chip:0xa962 rev:0x1 pkg:0x9
DHD: dongle ram size is set to 245760(orig 245760) at 0x0
wifi_platform_get_mac_addr
CFG80211-ERROR) wl_setup_wiphy : Registering Vendor80211)
wl_create_event_handler(): thread:wl_event_handler:d6 started
CFG80211-ERROR) wl_event_handler : tsk Enter, tsk = 0x88a4141c
dhd_attach(): thread:dhd_watchdog_thread:d7 started
dhd_attach(): thread:dhd_dpc:d8 started
dhd_deferred_work_init: work queue initialized
dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded.
dhd_bus_init: enable 0x06, ready 0x06 (waited 0us)
wifi_platform_get_mac_addr
Firmware up: op_mode=0x0005, MAC=00:0b:6c:41:9b:cd
dhd_preinit_ioctls buf_key_b4_m4 set failed -23
Firmware version = wl0: Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 01-b30a427d
dhd_preinit_ioctls wl ampdu_hostreorder failed -23
dhd_wlfc_init(): successfully enabled bdcv2 tlv signaling, 79
dhd_wlfc_init(): wlfc_mode=0x0, ret=-23
Dongle Host Driver, version 1.141.72 (r)
Compiled from
Register interface [wlan0] MAC: 00:0b:6c:41:9b:cd
CFG80211-ERROR) wl_cfg80211_connect : error (-14)
CFG80211-ERROR) wl_cfg80211_connect : Connectting withff:ff:ff:ff:ff:ff channel (0) ssid "OUR_SSID", len (17)
CFG80211-ERROR) wl_cfg80211_connect : error (-14)
CFG80211-ERROR) wl_cfg80211_connect : Connectting withff:ff:ff:ff:ff:ff channel (0) ssid "OUR_SSID", len (17)
CFG80211-ERROR) wl_cfg80211_connect : error (-14)
CFG80211-ERROR) wl_cfg80211_connect : Connectting withff:ff:ff:ff:ff:ff channel (0) ssid "OUR_SSID", len (17)
Note
====
I have also seen the following with tracing on i.e. dhd_msg_level=0x2fff
nl80211: Driver does not support authentication/association or connect commands
Original Attachment has been moved to: wifi-driver-trace.zip
Hi Ryan,
We are using SN8000UL module. These error are generated due to wireless extension (WEXT) support is not able in kernel
driver. You have to enable WEXT support in kernel configuration
////
CONFIG_WIRELESS=y
CONFIG_WIRELESS_EXT=y
CONFIG_WEXT_CORE=y
CONFIG_WEXT_PROC=y
CONFIG_WEXT_PRIV=y
CONFIG_CFG80211=y
# CONFIG_NL80211_TESTMODE is not set
# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
# CONFIG_CFG80211_REG_DEBUG is not set
# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
CONFIG_CFG80211_DEFAULT_PS=y
# CONFIG_CFG80211_DEBUGFS is not set
# CONFIG_CFG80211_INTERNAL_REGDB is not set
CONFIG_CFG80211_WEXT=y
-
Thanks & Regards,
Dhvanil Patel
Hello Dhvanil. A while back you helped me out with getting the SN8000 WiFi module running on Linux/imx. At that time you mentioned that the SN8000 would only work with the wext driver. I was wondering if you could tell me where you found this information and also if you know of any attempts to get the SN8000 running with the nl80211 driver. I am encountering some limitations with the wext driver and have read that it is outdated and apparently deprecated.
Thanks.
Hi Dhvanil and Ryan,
I am working to bring up WiFi on a custom board made out of IMX6UL. It has the WiFi module SN8000 connected to USDHC2, two GPIOs, each connected to RST_N and VDD_3V3_EN of the WiFi module. VDD_BAT is coming from external regulator and VDD_IO is coming from the source. Using kernel 4.1.15.
I have inserted bcmdhd module and it successfully enables wlan0 interface as below:
#insmod /lib/modules/4.1.15-1.1.1+g1881fb8/kernel/drivers/net/wireless/bcmdhd/bcmdhd.ko \
firmware_path=/lib/firmware/brcm/brcmfmac43362-sdio.bin \
nvram_path=/lib/firmware/brcm/brcmfmac43362-sdio.txt
dhd_module_init in
Power-up adapter 'DHD generic adapter'
wifi_platform_bus_enumerate device present 1
mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
mmc1: queuing unknown CIS tuple 0x80 (6 bytes)
mmc1: queuing unknown CIS tuple 0x80 (8 bytes)
mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
mmc1: queuing unknown CIS tuple 0x80 (5 bytes)
mmc1: new high speed SDIO card at address 0001
F1 signature OK, socitype:0x1 chip:0xa962 rev:0x1 pkg:0x9
DHD: dongle ram size is set to 245760(orig 245760) at 0x0
wifi_platform_get_mac_addr
CFG80211-ERROR) wl_setup_wiphy : Registering Vendor80211)
wl_create_event_handler(): thread:wl_event_handler:264 started
CFG80211-ERROR) wl_event_handler : tsk Enter, tsk = 0x88d4143c
dhd_attach(): thread:dhd_watchdog_thread:265 started
dhd_attach(): thread:dhd_dpc:266 started
dhd_deferred_work_init: work queue initialized
dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded.
dhd_bus_init: enable 0x06, ready 0x06 (waited 0us)
wifi_platform_get_mac_addr
Firmware up: op_mode=0x0005, MAC=00:0b:6c:41:e8:e2
dhd_preinit_ioctls buf_key_b4_m4 set failed -23
Firmware version = wl0: Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 01-b30a427d
dhd_preinit_ioctls wl ampdu_hostreorder failed -23
dhd_wlfc_init(): successfully enabled bdcv2 tlv signaling, 79
dhd_wlfc_init(): wlfc_mode=0x0, ret=-23
Dongle Host Driver, version 1.141.88 (r)
Compiled from
Register interface [wlan0] MAC: 00:0b:6c:41:e8:e2
When I do 'ifconfig' at this point, I don't find 'wlan0' in the list as the interface is down.
'ip link' command displays the following output:
#ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: can0: <NOARP40000> mtu 16 qdisc noop qlen 10
link/[280]
3: can1: <NOARP40000> mtu 16 qdisc noop qlen 10
link/[280]
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether d8:80:39:60:72:f2 brd ff:ff:ff:ff:ff:ff
5: sit0@NONE: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
6: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
link/ether 00:0b:6c:41:e8:e2 brd ff:ff:ff:ff:ff:ff
As you suggested I've enabled wext (and also nl80211) support drivers.
After adding the ssid and psk to /etc/wpa_supplicant, when I the run the command of wpa_supplicant, the output is
#wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf
Successfully initialized wpa_supplicant
rfkill: Cannot open RFKILL control device
CFG80211-ERROR) wl_update_wiphybands : error reading vhtmode (-23)
root@imx6ulevk:~# skbuff: skb_under_panic: text:7f054b40 len:12 put:12 head:885e121c data:885e1210 tail:0x885e1214 end:0x885e1214 dev:
------------[ cut here ]------------
Kernel BUG at 805f812c [verbose debug info unavailable]
Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
Modules linked in: bcmdhd
CPU: 0 PID: 614 Comm: dhd_dpc Not tainted 4.1.15-1.1.1+g1881fb8 #113
Hardware name: Freescale i.MX6 Ultralite (Device Tree)
task: 88277900 ti: 88d32000 task.ti: 88d32000
PC is at skb_panic+0x60/0x64
LR is at skb_panic+0x60/0x64
pc : [<805f812c>] lr : [<805f812c>] psr: 600f0013
sp : 88d33c98 ip : 00000000 fp : 00000001
r10: 88d20000 r9 : 0000000c r8 : 88408060
r7 : 80840384 r6 : 885e1210 r5 : 885e1214 r4 : 80a0c13c
r3 : 00000000 r2 : 00000000 r1 : 809cd4a8 r0 : 00000074
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 10c53c7d Table: 88acc06a DAC: 00000015
Process dhd_dpc (pid: 614, stack limit = 0x88d32210)
Stack: (0x88d33c98 to 0x88d34000)
3c80: 0000000c 885e121c
3ca0: 885e1210 885e1214 885e1214 807b5c00 00000000 805fa1ac 00000000 88408000
3cc0: 885e1180 7f054b40 880f6274 7fffffff 00000000 88d33df8 00000048 0000000c
3ce0: 00000000 00000000 00000000 88c31300 7f0768e0 00000001 00000000 00000000
3d00: 00000200 88d33df8 88c31300 88d33df4 00000000 88c31380 00000000 8050a834
3d20: 88d33d74 88397000 00000000 00000000 00000001 8050a944 00000000 88d33d74
3d40: 00000000 00000000 00000000 00030003 88d33d50 88d33d50 8050a0b0 00000000
3d60: 12001c00 88397000 88d33dd7 8051478c 880f6274 00000034 12001c00 000010d0
3d80: 00000000 00000000 00000000 8839722c 600f0013 00000000 00000003 00000001
3da0: 0001000e 00000000 00000014 800635f8 00000000 200f0013 88397000 00000000
3dc0: 00000001 88408000 88d33df8 88408060 00000000 88d20000 00000001 7f05565c
3de0: 000000ff 00000014 18002000 7f0768e0 00000007 80b0a594 885e1180 8bb35840
3e00: 88276b08 00000000 88c31380 00000001 0001000e 88d33e60 88c31380 00000000
3e20: 00000014 7f046cf0 88d33e3f 88d20000 00000201 00000000 00000000 80037bf0
3e40: 88d20000 00000000 00000000 7f0096f0 88d20000 7f04c99c 88d239a0 a00f0093
3e60: 00000014 807a3e08 00000014 807a4188 88d20000 a00f0013 88d23000 000007d0
3e80: 88c31380 7f00f378 7f0768e0 00000000 00000014 807a4188 7f0768e0 88408000
3ea0: 7f0768e0 7f07b19c 00000000 88c31380 00000000 00000000 00000014 7f0578c8
3ec0: 00000000 60060113 88d238bc 00000032 ffffd001 88d23000 80bba140 80b05800
3ee0: 01000000 0b030000 80bba140 80052b28 88d23858 ffffd001 00000000 807a4188
3f00: 88d23858 8007a8cc 00000000 a00f0093 88d20000 a00f0013 88d23000 88d20000
3f20: 88d238a8 88d238e0 00000000 600f0013 88d238bc 00000000 00000000 7f00f528
3f40: 88d238a8 00000001 00000000 00000000 88c31740 88d238a8 7f00f440 00000000
3f60: 00000000 8004cdf8 00000000 00000000 00000000 88d238a8 00000000 00000000
3f80: 88d33f80 88d33f80 00000000 00000000 88d33f90 88d33f90 88d33fac 88c31740
3fa0: 8004cd1c 00000000 00000000 8000f528 00000000 00000000 00000000 00000000
3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
3fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[<805f812c>] (skb_panic) from [<805fa1ac>] (skb_push+0x40/0x44)
[<805fa1ac>] (skb_push) from [<7f054b40>] (dhdsdio_txpkt.constprop.8+0xf0/0xaa4 [bcmdhd])
[<7f054b40>] (dhdsdio_txpkt.constprop.8 [bcmdhd]) from [<7f05565c>] (dhdsdio_sendfromq+0x168/0x3e4 [bcmdhd])
[<7f05565c>] (dhdsdio_sendfromq [bcmdhd]) from [<7f0578c8>] (dhdsdio_dpc+0x2d4/0x1024 [bcmdhd])
[<7f0578c8>] (dhdsdio_dpc [bcmdhd]) from [<7f00f528>] (dhd_dpc_thread+0xe8/0x130 [bcmdhd])
[<7f00f528>] (dhd_dpc_thread [bcmdhd]) from [<8004cdf8>] (kthread+0xdc/0xf4)
[<8004cdf8>] (kthread) from [<8000f528>] (ret_from_fork+0x14/0x2c)
Code: e58de014 e58d500c e58dc010 eb068fd2 (e7f001f2)
---[ end trace 19f61a58d41c39c5 ]---
CFG80211-ERROR) wl_scan_timeout : timer expired
CFG80211-ERROR) wl_escan_handler : WLC_E_STATUS_TIMEOUT : scan_request[884bea80]
CFG80211-ERROR) wl_escan_handler : reason[0xffffffff]
There is a Kernel panic and scan gets timed out anf failed.
Then..
#ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: can0: <NOARP40000> mtu 16 qdisc noop qlen 10
link/[280]
3: can1: <NOARP40000> mtu 16 qdisc noop qlen 10
link/[280]
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether d8:80:39:60:72:f2 brd ff:ff:ff:ff:ff:ff
5: sit0@NONE: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
6: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0b:6c:41:e8:e2 brd ff:ff:ff:ff:ff:ff
#ifconfig
wlan0 Link encap:Ethernet HWaddr 00:0B:6C:41:E8:E2
inet6 addr: fe80::20b:6cff:fe41:e8e2/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:648 (648.0 B)
ifconfig shows the wlan0 interface but does not get connected to the internet. The Access Point with the given ssid is very much working and other devices get connected to it.
I am trying to understand what is causing the Kernel panic, but could not resolve the issue so far. Could you check the above sequence of commands and tell me if I am to do anything else. Let me know if you have any questions.
Thanks,
Tarun
Hello Tarun. We are regularly having the same kernel panic issue, however, the wifi usually recovers and eventually connects. We are also experiencing complete OS lockups that appear to be due in part to wifi given that the system is able to run for hours without wifi enabled. At this point we have not found a solution or workaround but I will let you know if we find anything.
Regards.
Hello Ryan,
Thanks for replying.
You are right, there is an OS lock up issue as well when working with Wifi enabled. I did not mention it above because it is very inconsistent and I am still not sure of what all steps are causing the lockup.
You mentioned that the Wifi usually recovers and gets connected. How long does it take for the wifi to get connected? In my case I did not wait very long but it never shows any sign of discovering the ssid's around nor getting connected to the given ssid.
Do you perform any other command after the Kernel panic or is it expected to get the connection after "wpa_supplicant" command itself?
Which Kernel version are you working on?
Thanks,
Tarun
Hey Tarun, our Linux version is 3.14.52-1.1.1. Connection times can vary a great deal, it can be anywhere from seconds to minutes, it seems to depend on overall traffic to a given router but PCs are not having the same issues connecting to the same routers. After the kernel panics the wifi usually retries and seems to eventually connect. There have been situations where it will not reconnect without a reboot.
Regards.
Ok. Sometimes kernel panic is followed by 'sending discover' for three attempts and then forks to backgorund. I had never got it connected so far.
Do you think nvram parameters .txt file has something to do in this? I am using the same values as SN8000 section in the doc below:
Is your nvram file same as this?
Tarun
Hey Tarun, I used the drivers and nvram settings from this site: https://community.broadcom.com/docs/DOC-2661
Hi Ryan,
I could resolve the issue and now I am able to connect to the network using WiFi module.
The firmware file from the 'bcm_imx_04_15_2016\bcm_imx\43362' at the location https://community.broadcom.com/docs/DOC-2661 seems to be the right one for the module BCMDHD I am inserting.
Earlier I was using 'brcmfmac43362-sdio.bin' which is present as a part of linux-firmware package recipe in the yocto build. Looks like this is not compatible with bcmdhd.
I still found the kernel panic and OS lockup a couple of times and but not seen it recently. I will let you know I face any further issues.
Thanks a lot for your help.
Cheers
Tarun
Hi tarun,
would you add bcm_imx_04_15_2016 package in attachment,i can't find that, and https://community.broadcom.com/docs/DOC-2661 this connect has losed.
Cheers.
fulinux.
Hi,
Try this link instead.
https://community.cypress.com/docs/DOC-2661
Also there is latest firmware available now(8/12/2016)
Tarun
thank you, you are a good man. 0.0
Ok, all working now. Thanks again!
Thanks Dhvanil, this was at least part of the issue! Its working on the EVK, we now have to debug our custom board....
Hi Ryan,
Thank for response.
Today I am successfully able to run SN8000 module on i.mx6ul evk with wpa_supplicant with wpa-psk, wpa2psk security.
The only thing is to change the driver used in wpa_supplicat application input. By default wpa_supplicant uses driver support of nl80211 but SN8000 driver needs wext driver support.
So change the wpa_supplicant utility command with below mention line
Command :
#wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf
wpa_supplicant.conf file contains
network={
ssid="test"
#psk="12345678"
psk=fe727aa8b64ac9b3f54c72432da14faed933ea511ecab15bbc6c52e7522f709a
}
To generate conf file conf use wpa_passphrase utility
# wpa_passphrase test >> /etc/wpa_supplicant.conf
12345678
I hope this will help you.
-
Dhvanil Patel
Hello Dhvanil. Thanks for the update but unfortunately this isn't working for me. I get the error messages below.
P.S. which radio firmware are you using?
Successfully initialized wpa_supplicant
rfkill: Cannot open RFKILL control device
ioctl[SIOCSIWPMKSA]: Invalid argument
ioctl[SIOCSIWMODE]: Invalid argument
ioctl[SIOCGIWRANGE]: Invalid argument
ioctl[SIOCGIWMODE]: Invalid argument
ioctl[SIOCSIWAP]: Invalid argument
ioctl[SIOCSIWESSID]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWPMKSA]: Invalid argument
root@imx6ulevk-koala:~# udhcpc -i wlan0
udhcpc (v1.23.1) started
Sending discover...
Sending discover...
Sending discover...
Sending discover...
Hi Ryan,
I am also facing same issue which you have mentioned above.
CFG80211-ERROR) wl_cfg80211_connect : error (-14)
CFG80211-ERROR) wl_cfg80211_connect : Connectting withff:ff:ff:ff:ff:ff channel (0) ssid "test", len (4)
Can you please help us to resolve this issue if you have fix this ?
-
Dhvanil Patel
Hello Dhvanil.
I haven't found a solution yet, but I'll let you know if I do.
Hi Ryan
had you installed firmware on
also suggested to post on myMurata support portal
Wi-Fi Bluetooth for NXP i.MX | RF Modules | Wireless Products | Murata Manufacturing
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello Igor, thanks for the reply. I am using this layer, but it appears that I am using a newer version of the recipe, firmware-bcmdhd_1.0.2.bb. Are you suggesting a downgrade? I have also tried newer bcm43362 FW from Broadcom with the same results. I have tried posting at the Broadcom site and will try MuRata as well.
Regards.