Omega2: WiFi Client with Lede Image
I would like to use the OpenWRT/Lede SDK because most of my work is based on it. I could live with a blob for a while (and with a Kernel 4.4.50) if the blob driver could be cleanly integrated in Lede build environment ...
Exactly same situation here. Having LEDE is more important than WiFi, my application is normally using wired ethernet anyway. But still, working WiFi would be nice to have.
So thanks for your hint to widora!
I reverted my LEDE to the last commit with kernel 4.4.50 (514854d), copied mtk-wifi from widora's commit with the promising title "wifi seems ok and stable" and am now building my application image based on this.
Still building, will let you know as soon as I can test it…
@Gerhard-Bertelsmann The link form the commit I mentioned in the last post is wrong, that's a version not working with 4.4.50 kernel.
However, with mtk-wifi from https://github.com/noblepepper/mtk-wifi, the access point works, and is stable!
Something is still wrong in my config, because I haven't yet managed to get it connect in station mode, but I guess I'll figure that out eventually ;-)
Create index file './feeds/mtkwifi.index'
grep: feeds/mtkwifi/Makefile:$(eval: No such file or directory
grep: $(call: No such file or directory
grep: BuildPackage,mtk-wifi))/Makefile: No such file or directory
/home/geroy/dev/lede-project/lede/feeds/mtkwifi.tmp/info/.files-packageinfo.mk:1: *** target pattern contains no '%'. Stop.
Collecting target info: done
So what I did was copy the mtk-wifi folder into the folder of my own feed in lede/feeds. Then I ran
./scripts/feeds update -i plan44
to index it, and then it can be installed
./scripts/feeds install kmod-mtk-wifi
menuconfigto enable it for build, it's under "Ralink SDK Mango" in the menu.
Finally, built it with
Please let us know when you manage to configure it as client :-)
Along with the mtk-wifi driver, the package also brings a utility shell script called
widora_mode. It supposedly creates the correct config for different wifi modes such as access point, bridge, client. I got my Omega2 work as client immediately after typing
widora_mode client MYSSID mypassword. However, after restarting the Omega, the WiFi does not connect again.
I don't understand that, because all widora_mode does, is issuing some UCI commands to modify the /etc/config/network and /etc/config/wireless, and then call
/etc/init.d/network restart. I would have expected that config to still work after reboot.
hm, am I doing something wrong?
I have cloned https://github.com/noblepepper/mtk-wifi to feeds/mtk-wifi:
lede@bender:~/dev/lede-project/lede$ ./scripts/feeds update -i mtk-wifi
lede@bender:~/dev/lede-project/lede$ ./scripts/feeds install kmod-mtk-wifi
WARNING: No feed for package 'kmod-mtk-wifi' found, maybe it's already part of the standard packages?
it didnt show in make menuconfig menu..
Sorry but I'm not (yet) familiar with the openwrt/lede build process
I have cloned https://github.com/noblepepper/mtk-wifi to feeds/mtk-wifi:
The individual packages need to be one level deeper than just
feeds, meaning you need to have a folder like
feeds/myfeedand clone mtk-wifi into that folder as
You could probably hijack one of the existing feeds (onion's for example) and just plant mtk-wifi there as a cuckoo's egg ;-)
But I can only recommend having an own feed for these types of experiments - essentially just a git repo somewhere of which you put the url into
feeds.conf.default. Then you can copy packages to examine/modify there. As
scripts/feeds installallows to specify a preferred feed, you can even copy packages from another feed to your own to develop and test modifications. I do this with
because @onion still hasn't found the time to process the pull request[Update: no longer, @Lazar-Demin just merged the PRs, thx :thumbsup: :-))
Latest commits from today (e209988) on lede-project master seem to fix the reliability and performance issues with the open source
The commit messages looked very promising, so I just rebuilt my project's image based on today's LEDE master, installed it, rebooted, and - WiFi just works! Not a single "wlan deauthenticated" message in
dmesgany more. I haven't really tested in depth, but performance also felt normal scp-ing a firmware image to /tmp.
Really cool! :-D
@luz Hi. Tried to build image on Ubuntu 16.04 but
make menuconfigbehaves strange.
e.g. can't see cursor if I resize terminal.
Do you have such problems or you are using imagebuilder/edit config by hands?
@M-S192 I'm using LEDE buildroot on macOS (in a case-sensitive disk image), and menuconfig works fine with the standard Terminal app.
@luz I've got it up and running but still not even close to stable wifi... i cant connect it in STA mode, only in AP mode
it works but when I do:
iw wlan0 scan
I'm getting MCU errors and then module crashes:
root@LEDE:/etc/config# [ 811.948503] MCU message 40 (seq 6) timed out
[ 812.948492] MCU message 8 (seq 7) timed out
[ 813.948503] MCU message 40 (seq 8) timed out
[ 814.948495] MCU message 8 (seq 9) timed out
[ 815.948499] MCU message 40 (seq 10) timed out
[ 815.957183] ------------[ cut here ]------------
[ 815.966395] WARNING: CPU: 0 PID: 6 at /.../dev/lede-project/lede/build_dir/target-mipsel_24kc_musl/linux-ramips_mt7688/mt76-2017-03-17-712b8e8f/mt7603_mac.c:1219 mt7603_mac_work+0xf0/0x284 mt7603e
[ 816.002894] Modules linked in: pppoe ppp_async pppox ppp_generic nf_conntrack_ipv6 iptable_nat ipt_REJECT ipt_MASQUERADE xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG ums_usbat ums_sddr55 ums_sddr09 ums_karma ums_jumpshot ums_isd200 ums_freecom ums_datafab ums_cypress ums_alauda slhc nf_reject_ipv4 nf_nat_redirect nf_nat_masquerade_ipv4 nf_conntrack_ipv4 nf_nat_ipv4 nf_nat nf_log_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack iptable_mangle iptable_filter ip_tables crc_ccitt mt76x2e mt7603e mt76 mac80211 batman_adv libcrc32c cfg80211 compat ip6t_REJECT nf_reject_ipv6 nf_log_ipv6 nf_log_common ip6table_mangle ip6table_filter ip6_tables x_tables msdos vfat fat nls_utf8 nls_iso8859_1 nls_cp437 usb_storage leds_gpio ohci_platform ohci_hcd ehci_platform sd_mod scsi_mod ehci_hcd gpio_button_hotplug ext4 jbd2 mbcache usbcore nls_base usb_common crc16 crc32c_generic crypto_hash
[ 816.173337] CPU: 0 PID: 6 Comm: kworker/u2:0 Not tainted 4.4.61 #0
[ 816.185596] Workqueue: phy0 mt7603_mac_work [mt7603e]
[ 816.195602] Stack : 87c03410 87c1eb98 00000088 8004ae38 87c2dbac 80396d63 80333f8c 00000006
8035cc5c 87c49d64 80390000 80048da4 00000088 8004ae38 80339494 80390000
00000003 87c49d64 80390000 80038db4 00000088 87c49d9c 000000ef 00000000
00000001 00000000 8757d1dc 87e83a00 87e83900 30796870 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 816.266064] Call Trace:
[ 816.270917] [<8001486c>] show_stack+0x50/0x84
[ 816.279553] [<80025418>] warn_slowpath_common+0xa0/0xd0
[ 816.289911] [<800254d0>] warn_slowpath_null+0x18/0x24
[ 816.299935] [<8757d2cc>] mt7603_mac_work+0xf0/0x284 [mt7603e]
[ 816.311344] [<80036ccc>] process_one_work+0x1f8/0x334
[ 816.321361] [<80037ae0>] worker_thread+0x2b0/0x404
[ 816.330868] [<8003be98>] kthread+0xd8/0xec
[ 816.338988] [<80004478>] ret_from_kernel_thread+0x14/0x1c
[ 816.352624] ---[ end trace 54759357b623713d ]---
so... not stable :(
For me, station mode works fine (and definitely did not before these commits from yesterday). I did not try
iw wlan0 scanyet, but just set my SSID and key in
/etc/config/wireless. I'll try scan this evening and let you know.
iw wlan0 scanworks fine, and ap mode works as well. Not a single unexpected message in dmesg.
However, in my setup I had rearranged
/etc/config/wirelessa bit as I didn't want the standard router setup, but a pure client. I also have removed odhcpd and dnsmasq packages because I absolutely don't want the Omega to ever become DHCP server and mess up my LAN.
I don't think that this should affect the mt76 driver level stability at all. But still, for reference, here's my config:
config interface 'loopback' option ifname 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config globals 'globals' option ula_prefix 'fd1d:48c4:7633::/48' # station mode WiFi config interface 'wlan' option proto 'dhcp' option hostname 'pixelboard-WiFi' option enabled '1' # Ethernet config interface 'lan' option ifname 'eth0' option proto 'dhcp' option hostname 'pixelboard-LAN' option enabled '1' # AP mode WiFi config interface 'wlanap' option proto 'static' option ipaddr '192.168.44.1' option netmask '255.255.255.0' option enabled '1'
config wifi-device 'radio0' option type 'mac80211' option channel '11' option hwmode '11g' option path 'platform/10300000.wmac' option htmode 'HT20' option disabled '0' config wifi-iface 'ap_radio0' option device 'radio0' option network 'wlanap' option mode 'ap' option ssid 'PIXELBOARD' option encryption 'none' option disabled '0' config wifi-iface 'cli_radio0' option device 'radio0' option mode 'sta' option network 'wlan' option ssid 'MYSSID' option encryption 'psk2' option key 'MYPASSWORD'
The only problem I currently have is that disconnecting ethernet does not automatically remove the route for eth0, so if eth0 and wlan0 go to the same subnet, wlan answer packets might get routed to the disconnected eth0.
@luz Many thx for your updates. Great News. However I didn't get it working so far albeit I hadn't much time to check my setup. I going to take your Settings (network&wireless) and see how it goes ...
I've tested it more and I can say - yes, there is a significant improve in stability on open source driver. I still have some problems but it is a good step in the right direction. Will test it more and then report here.
I am still getting kernel call traces with the latest driver and batman-adv.. so not stable yet :(
[ 481.264177] ---[ end trace 9f93126277e705d5 ]---
[ 481.273327] ------------[ cut here ]------------
[ 481.282527] WARNING: CPU: 0 PID: 6 at /home/geroy/dev/lede-project/lede/build_dir/target-mipsel_24kc_musl/linux-ramips_mt7688/batman-adv-2017.0/net/batman-adv/bat_v.c:630 batadv_algo_dump
[ 481.320572] Modules linked in: pppoe ppp_async pppox ppp_generic nf_conntrack_ipv6 mmc_spi iptable_nat ipt_REJECT ipt_MASQUERADE xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_
[ 481.528850] CPU: 0 PID: 6 Comm: kworker/u2:0 Tainted: G W 4.4.61 #0
[ 481.543547] Workqueue: bat_events batadv_orig_node_put [batman_adv]
[ 481.555960] Stack : 00000001 00000001 87670000 8004ae38 87c2dbac 8039ed63 8033a64c 00000006
[ 481.555960] 8036331c 87c49ccc 803a0000 80048da4 87670000 8004ae38 8033fb4c 803a0000
[ 481.555960] 00000003 87c49ccc 803a0000 80038db4 87670000 87c49d04 00000128 00000000
[ 481.555960] 8039de50 00000000 87655cb4 87f56c00 87f56e00 5f746162 6e657665 00007374
[ 481.555960] 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 481.555960] ...
[ 481.626428] Call Trace:
[ 481.631296] [<8004ae38>] vprintk_default+0x24/0x30
[ 481.640819] [<80048da4>] printk+0x2c/0x38
[ 481.648761] [<8004ae38>] vprintk_default+0x24/0x30
[ 481.658280] [<80038db4>] print_worker_info+0x148/0x174
[ 481.668525] [<87655cb4>] batadv_orig_node_put+0x6dc/0x718 [batman_adv]
[ 481.681500] [<80025418>] warn_slowpath_common+0xa0/0xd0
[ 481.691873] [<8014dbd8>] dump_stack+0x14/0x28
[ 481.700517] [<8001486c>] show_stack+0x50/0x84
[ 481.709137] [<80025418>] warn_slowpath_common+0xa0/0xd0
[ 481.719531] [<87644098>] batadv_algo_dump+0x3e30/0x5204 [batman_adv]
[ 481.732159] [<800254d0>] warn_slowpath_null+0x18/0x24
[ 481.742188] [<8020c7d4>] netdev_pick_tx+0x48/0xd4
[ 481.751546] [<87644098>] batadv_algo_dump+0x3e30/0x5204 [batman_adv]
[ 481.764204] [<87656d40>] batadv_update_route+0xd4/0x1e4 [batman_adv]
[ 481.776866] [<87654954>] batadv_neigh_node_put+0x110/0x190 [batman_adv]
[ 481.790025] [<876548a8>] batadv_neigh_node_put+0x64/0x190 [batman_adv]
[ 481.803053] [<87655b68>] batadv_orig_node_put+0x590/0x718 [batman_adv]
[ 481.816063] [<87652ef4>] batadv_vlan_ap_isola_get+0xee8/0xf50 [batman_adv]
[ 481.829795] [<87655ccc>] batadv_orig_node_put+0x6f4/0x718 [batman_adv]
[ 481.842783] [<80036ccc>] process_one_work+0x1f8/0x334
[ 481.852887] [<80037ae0>] worker_thread+0x2b0/0x404
[ 481.862407] [<80037830>] worker_thread+0x0/0x404
[ 481.871585] [<80037830>] worker_thread+0x0/0x404
[ 481.880743] [<8003be98>] kthread+0xd8/0xec
[ 481.888894] [<8003bdc0>] kthread+0x0/0xec
[ 481.896861] [<80004478>] ret_from_kernel_thread+0x14/0x1c
[ 481.910512] ---[ end trace 9f93126277e705d6 ]---
But then, batman is already quite advanced WiFi usage.
Still, could be worth posting the trace to LEDE forum.
I'm directly interested solving this problem. However, the open source driver may take a while until it gets fully reliable. I would still focus on integrating the proprietary driver.
The interesting part is that the Linkit Smart OpenWrt image does include the proprietary wifi binary. I'm trying now to build a stripped image and have it put in Omega2. There are still some build errors (like renaming the wifi binary from *.44 to *.45 as the kernel version goes).
@Cezane just to say, not sure but I think I've read somewhere that propriety driver does not support ad-hoc mode. Is that true?
It seems to me that there are two different proprietary drivers. I can deduce this from two different types of configuration that I've encountered, with Omega and with LinkIt Smart. I'm personally interested in having a reliable AP and Sta at the same time. The driver from LinkIt can support AP, Sta and AP+Sta. Haven't found anything related to ad-hoc mode...
Yay! With the LEDE image, my Omega2+ connects to my Mikrotik router. Finally I can start developing on this months after receiving it.
onion.io devs: Please fix your wireless drivers so I can come back to your images. I shouldn't have to use the LEDE images just to get wifi out of the box. You've got a great product here but it's hindered by this problem.