December 1st, 2016, 09:25 PM
Ad-hoc WiFi on a TS-7680
Has anyone managed to get a TS-7680 Wifi into ad-hoc mode and talk successfully?
I'm getting what looks like a driver crash when I enable it. Here's my test case on a board without any config on the wifi interface (I started with config files, but moved to cmd line for now):
That repeats until I down the interface.
iwconfig wlan0 mode ad-hoc channel 1 essid JKMesh
ifconfig wlan0 192.168.231.1
wlan0 Link encap:Ethernet HWaddr e0:e5:cf:7d:80:19
inet addr:192.168.231.1 Bcast:192.168.231.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan0 IEEE 802.11abgn ESSID:"JKMesh"
Mode:Ad-Hoc Frequency:2.412 GHz Cell: Not-Associated
Retry short limit:7 RTS thr:off Fragment thr:off
And the output from dmesg:
[ 3624.109296] wlcore: firmware booted (Rev 188.8.131.52.133)
[ 3624.150223] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 3626.358787] wlan0: Trigger new scan to find an IBSS to join
[ 3630.359382] wlan0: Trigger new scan to find an IBSS to join
[ 3632.359759] wlan0: Creating new IBSS network, BSSID a6:54:c9:f4:0b:f8
[ 3634.390048] wlcore: ERROR command complete timeout
[ 3634.390100] ------------[ cut here ]------------
[ 3634.390308] WARNING: CPU: 0 PID: 7268 at drivers/net/wireless/ti/wlcore/main.c:789 wl12xx_queue_recovery_work+0x20/0x78 [wlcore]()
[ 3634.390333] Modules linked in: wl12xx wlcore mac80211 cfg80211 rfkill flexcan can_dev wlcore_sdio ipv6
[ 3634.390421] CPU: 0 PID: 7268 Comm: kworker/u2:0 Not tainted 3.14.28-gaf825ee #5
[ 3634.390794] Workqueue: phy0 ieee80211_iface_work [mac80211]
[ 3634.390889] [<c000dcac>] (unwind_backtrace) from [<c000c3bc>] (show_stack+0x10/0x14)
[ 3634.390956] [<c000c3bc>] (show_stack) from [<c0015bfc>] (warn_slowpath_common+0x64/0x84)
[ 3634.391013] [<c0015bfc>] (warn_slowpath_common) from [<c0015c34>] (warn_slowpath_null+0x18/0x1c)
[ 3634.391191] [<c0015c34>] (warn_slowpath_null) from [<bf185bdc>] (wl12xx_queue_recovery_work+0x20/0x78 [wlcore])
[ 3634.391390] [<bf185bdc>] (wl12xx_queue_recovery_work [wlcore]) from [<bf18971c>] (wlcore_cmd_send_failsafe+0x3d8/0x400 [wlcore])
[ 3634.391568] [<bf18971c>] (wlcore_cmd_send_failsafe [wlcore]) from [<bf189804>] (wl1271_cmd_send+0x18/0x20 [wlcore])
[ 3634.391752] [<bf189804>] (wl1271_cmd_send [wlcore]) from [<bf18b394>] (wl12xx_cmd_role_start_ibss+0x1a4/0x1f0 [wlcore])
[ 3634.391957] [<bf18b394>] (wl12xx_cmd_role_start_ibss [wlcore]) from [<bf184610>] (wl1271_op_bss_info_changed+0x920/0xd8c [wlcore])
[ 3634.392340] [<bf184610>] (wl1271_op_bss_info_changed [wlcore]) from [<bf103280>] (ieee80211_bss_info_change_notify+0x138/0x188 [mac80211])
[ 3634.392782] [<bf103280>] (ieee80211_bss_info_change_notify [mac80211]) from [<bf10fd10>] (__ieee80211_sta_join_ibss+0x5b8/0x694 [mac80211])
[ 3634.393186] [<bf10fd10>] (__ieee80211_sta_join_ibss [mac80211]) from [<bf1100e8>] (ieee80211_sta_create_ibss+0xd0/0xe0 [mac80211])
[ 3634.393575] [<bf1100e8>] (ieee80211_sta_create_ibss [mac80211]) from [<bf110374>] (ieee80211_ibss_work+0x27c/0x480 [mac80211])
[ 3634.393818] [<bf110374>] (ieee80211_ibss_work [mac80211]) from [<c002af60>] (process_one_work+0x240/0x41c)
[ 3634.393877] [<c002af60>] (process_one_work) from [<c002b368>] (worker_thread+0x22c/0x3ec)
[ 3634.393931] [<c002b368>] (worker_thread) from [<c0030e1c>] (kthread+0xc0/0xcc)
[ 3634.393978] [<c0030e1c>] (kthread) from [<c0009410>] (ret_from_fork+0x14/0x24)
[ 3634.394004] ---[ end trace 7341143e32178fc0 ]---
[ 3634.394073] wlcore: ERROR failed to initiate cmd role enable
[ 3634.394119] wlcore: WARNING cmd join failed -110
Is there an update to the driver?
December 1st, 2016, 09:36 PM
We use the same wifi module on the TS-4900 where I spent a lot of time trying to make it work. I've tried the latest chip firmwares, and upstream TI drivers. There is no way to use ad-hoc mode on it, and TI's answer on it is that it simply doesn't support it. After investigating this more and looking other recent SDIO chips we're seeing less support for ad-hoc modes in new chipsets in favor of the P2P/Wifi direct modes which seem to be replacing them. Unfortunately I can only suggest you try to eliminate adhoc from being designed into a system if at all possible. The only other option would be to add a usb wifi chipset that supports adhoc, but even there I haven't found as many that support this mode recently.
December 1st, 2016, 09:39 PM
Thanks for the fast reply (and saving me the time of trying). That's disappointing, a mesh of these would have been nice in some of my problem spaces. I'll have to read up on P2P to see if I can make that work.
December 1st, 2016, 09:52 PM
It sounds like you're attempting to use B.A.T.M.A.N. as well which was the use case for the previous user.
In order to support some nimblelink cell modems we created a daughter card that adds an XBEE socket which plugs into the TS-7680. Would an XBee with mesh work? I can look into the general availability of this daughter card if it would.
There are higher end solutions too, but they add a lot of cost: