Jump to content

Banana Pi Pro: Wifi Kernel Module ap6211 crashes


Chrissie Brown

Recommended Posts

Validated yesterday on three different installs. Wifi is not working.

 

Used Distro:

Armbian Xenial
desktop legacy kernel 3.4.y

 

chrissie@bananapipro:~$ uname -a
Linux bananapipro 3.4.113-sun7i #16 SMP PREEMPT Wed Jan 24 19:20:59 CET 2018 armv7l armv7l armv7l GNU/Linux

 

[  130.524044] [ap6211] dhd_bus_devreset: WLAN ON
[  130.535651] [ap6211] Final fw_path=/lib/firmware/ap6210/fw_bcm40181a2.bin
[  130.541328] [ap6211] Final nv_path=/lib/firmware/ap6210/nvram_ap6210.txt
[  130.548074] [ap6211] download firmware /lib/firmware/ap6210/fw_bcm40181a2.bin
[  130.802082] [ap6211] bcmsdh_set_irq Flag = 1
[  130.805963] [ap6211] dhd_bus_devreset: WLAN ON DONE
[  132.783597] usb 5-1.3.1: reset low-speed USB device number 12 using sw-ohci
[  132.803123] [ap6211] dhdcdc_query_ioctl: dhdcdc_msg failed w/status -5
[  132.808893] [ap6211] dhd_preinit_ioctls: can't get MAC address , error=-5
[  134.813126] [ap6211] dhdcdc_set_ioctl: dhdcdc_msg failed w/status -110
[  134.819848] [ap6211] dhd_check_hang: Event HANG send up due to  re=0 te=2 e=-110 s=2
[  134.828381] [ap6211] bcmsdh_set_irq Flag = 0
[  134.832465] [ap6211] dhd_bus_devreset: WLAN OFF DONE
[  134.837648] [ap6211] Succeed to set the gpio ap6211_wl_regon to 0
[  135.039727] [ap6211] WLAN placed in RESET
[  135.043599] [ap6211] dhd_open: failed with code -14
[  135.047241] [ap6211] In : chip crash eventing
[  135.050892] ------------[ cut here ]------------
[  135.057562] WARNING: at net/wireless/sme.c:744 cfg80211_disconnected+0xc0/0xc4()
[  135.059516] Modules linked in: cpufreq_userspace zram(C) zsmalloc(C) spidev mali ump ap6211 a20_tp 8021q garp stp llc sunxi_ir hidp rfcomm hci_uart bluetooth ppdev lp parport
[  135.080669] [<c001543c>] (unwind_backtrace+0x0/0x12c) from [<c0037108>] (warn_slowpath_common+0x54/0x64)
[  135.089070] [<c0037108>] (warn_slowpath_common+0x54/0x64) from [<c00371b4>] (warn_slowpath_null+0x1c/0x24)
[  135.097531] [<c00371b4>] (warn_slowpath_null+0x1c/0x24) from [<c07053f8>] (cfg80211_disconnected+0xc0/0xc4)
[  135.106831] [<c07053f8>] (cfg80211_disconnected+0xc0/0xc4) from [<bf1051a4>] (wl_cfg80211_hang+0x44/0xb4 [ap6211])
[  135.115783] [<bf1051a4>] (wl_cfg80211_hang+0x44/0xb4 [ap6211]) from [<c004d048>] (process_one_work+0x138/0x3cc)
[  135.123740] [<c004d048>] (process_one_work+0x138/0x3cc) from [<c004d694>] (worker_thread+0x180/0x3c8)
[  135.135833] [<c004d694>] (worker_thread+0x180/0x3c8) from [<c00527f8>] (kthread+0x90/0x94)
[  135.142890] [<c00527f8>] (kthread+0x90/0x94) from [<c000f804>] (kernel_thread_exit+0x0/0x8)
[  135.146514] ---[ end trace f0624f4985e90226 ]---
[  135.153069] cfg80211: Calling CRDA to update world regulatory domain

 

What can i do?

Thanks & regards,

Chrissie.

Link to comment
Share on other sites

27 minutes ago, Chrissie Brown said:

This verision is marked as stable from the Armbian Download Section.


And it is stable. Wifi is another area ... we do our best but and this used to work somehow in the past ... probably its a problem with a wrong firmware since nothing else hasn't been changed. As soon as we get a working video acceleration and 3D on a modern kernel, this kernels is gone. That functionality is the only reason we keep it for download.

Link to comment
Share on other sites

Ok. But Video Acceleration is the point for me, because i use it for Kodi Media Center. But for the moment, i can live without WLAN on this box, i can use LAN cable.

 

Can i get video acceleration working on a newer Kernel, for example if i compile some librarys or other stuff?

 

Regards,

Chris.

 

Link to comment
Share on other sites

1 minute ago, Chrissie Brown said:

Can i get video acceleration working on a newer Kernel, for example if i compile some librarys or other stuff?

1


Yes, but you need to develop them first. Bootlin will develop required video codecs for 30.000 euros but it's not done yet. Then some changes to video driver might be needed, then implementation and debug ... few more months in the most optimistic scenario.

 

8 minutes ago, Chrissie Brown said:

i can live without WLAN on this box


This WLAN - when it works - is probably too slow for multimedia.

Link to comment
Share on other sites

Quote

This WLAN - when it works - is probably too slow for multimedia.

 

Really? Never heard about such an issue. My Main Use ist Simple IP TV Plugin in Kodi, and when this works, i am satisfied. I think my DSL 16.000 is the limiting factor here?

 

Should i use a USB Wifi Module in the meantime? Does this provide better performance? Cannot imagine.

Link to comment
Share on other sites

13 hours ago, Chrissie Brown said:

My Main Use ist Simple IP TV Plugin in Kodi, and when this works, i am satisfied.


Wireless chips on those boards are mostly low performance - all are 1T1R and N at best. It's probably enough for streaming video under optimal conditions. You have to pick 3rd party USB wifi module carefully since kernel 3.4.y is very old and most of the modern ones won't work there.

A20 boards are not really the best choice for KODI so I would rather pick something else. A big step forward are already (cheap) H3 boards with dedicated Openelec or some Amlogics on a bit expensive side.

Link to comment
Share on other sites

Thanks for the insight. I got this Banana Pi board cheap. I installed kodi and did some configuration. Everything, except the Wifi works so far, so it fits for me. For example, i bought a random IR Remote, switched it to a NEC compatible mode which is actually a LG Sat Receiver, did some Kodi Keyboard Mapping, and it worked out of the box. I also thought about Orange Pi Board, maybe in the future :) But i can also wait for a newer Kernel to appear.

 

If someone is interested, here a more detailed kernel module crash:

 

root@bananapipro:/home/chrissie# modprobe ap6211
Segmentation fault

 

root@bananapipro:/home/chrissie# dmesg

 

[ 3854.897533] [ap6211] --->The Drive has been modified for BananaPro by LeMaker team<---
[ 3854.928517] [ap6211] select wifi ap6211
[ 3854.936175] ------------[ cut here ]------------
[ 3854.986149] WARNING: at fs/sysfs/dir.c:508 sysfs_add_one+0x94/0xb4()
[ 3855.000240] sysfs: cannot create duplicate filename '/devices/platform/ap6211_gpio_wifi.0'
[ 3855.027486] Modules linked in: ap6211(+) bnep disp_ump mali_drm drm cpufreq_userspace zram(C) zsmalloc(C) spidev mali ump a20_tp 8021q garp stp llc sunxi_ir hidp rfcomm hci_uart bluetooth ppdev lp parport [last unloaded: ap6211]
[ 3855.077468] [<c001543c>] (unwind_backtrace+0x0/0x12c) from [<c0037108>] (warn_slowpath_common+0x54/0x64)
[ 3855.108535] [<c0037108>] (warn_slowpath_common+0x54/0x64) from [<c0037148>] (warn_slowpath_fmt+0x30/0x40)
[ 3855.131401] [<c0037148>] (warn_slowpath_fmt+0x30/0x40) from [<c014d7b8>] (sysfs_add_one+0x94/0xb4)
[ 3855.150911] [<c014d7b8>] (sysfs_add_one+0x94/0xb4) from [<c014d994>] (create_dir+0x6c/0xe0)
[ 3855.167544] [<c014d994>] (create_dir+0x6c/0xe0) from [<c014dd7c>] (sysfs_create_dir+0x98/0xec)
[ 3855.195392] [<c014dd7c>] (sysfs_create_dir+0x98/0xec) from [<c03f9b38>] (kobject_add_internal+0xa8/0x254)
[ 3855.213610] [<c03f9b38>] (kobject_add_internal+0xa8/0x254) from [<c03f9fec>] (kobject_add+0x4c/0x98)
[ 3855.237438] [<c03f9fec>] (kobject_add+0x4c/0x98) from [<c047f590>] (device_add+0xec/0x5fc)
[ 3855.255056] [<c047f590>] (device_add+0xec/0x5fc) from [<c0483974>] (platform_device_add+0x110/0x1e4)
[ 3855.279062] [<c0483974>] (platform_device_add+0x110/0x1e4) from [<bf5df3c8>] (ap6211_gpio_wifi_init+0x138/0x154 [ap6211])
[ 3855.301991] [<bf5df3c8>] (ap6211_gpio_wifi_init+0x138/0x154 [ap6211]) from [<bf5df04c>] (dhd_module_init+0x4c/0x290 [ap6211])
[ 3855.328516] [<bf5df04c>] (dhd_module_init+0x4c/0x290 [ap6211]) from [<c0008698>] (do_one_initcall+0x10c/0x164)
[ 3855.349721] [<c0008698>] (do_one_initcall+0x10c/0x164) from [<c0082eb8>] (sys_init_module+0x614/0x1ef4)
[ 3855.380902] [<c0082eb8>] (sys_init_module+0x614/0x1ef4) from [<c000ecc0>] (ret_fast_syscall+0x0/0x30)
[ 3855.399707] ---[ end trace 5eb9e7eb407dd508 ]---
[ 3855.408047] ------------[ cut here ]------------
[ 3855.427547] WARNING: at lib/kobject.c:198 kobject_add_internal+0x23c/0x254()
[ 3855.451633] kobject_add_internal failed for ap6211_gpio_wifi.0 with -EEXIST, don't try to register things with the same name in the same directory.
[ 3855.478570] Modules linked in: ap6211(+) bnep disp_ump mali_drm drm cpufreq_userspace zram(C) zsmalloc(C) spidev mali ump a20_tp 8021q garp stp llc sunxi_ir hidp rfcomm hci_uart bluetooth ppdev lp parport [last unloaded: ap6211]
[ 3855.529102] [<c001543c>] (unwind_backtrace+0x0/0x12c) from [<c0037108>] (warn_slowpath_common+0x54/0x64)
[ 3855.554844] [<c0037108>] (warn_slowpath_common+0x54/0x64) from [<c0037148>] (warn_slowpath_fmt+0x30/0x40)
[ 3855.574847] [<c0037148>] (warn_slowpath_fmt+0x30/0x40) from [<c03f9ccc>] (kobject_add_internal+0x23c/0x254)
[ 3855.593746] [<c03f9ccc>] (kobject_add_internal+0x23c/0x254) from [<c03f9fec>] (kobject_add+0x4c/0x98)
[ 3855.619410] [<c03f9fec>] (kobject_add+0x4c/0x98) from [<c047f590>] (device_add+0xec/0x5fc)
[ 3855.637036] [<c047f590>] (device_add+0xec/0x5fc) from [<c0483974>] (platform_device_add+0x110/0x1e4)
[ 3855.657392] [<c0483974>] (platform_device_add+0x110/0x1e4) from [<bf5df3c8>] (ap6211_gpio_wifi_init+0x138/0x154 [ap6211])
[ 3855.681724] [<bf5df3c8>] (ap6211_gpio_wifi_init+0x138/0x154 [ap6211]) from [<bf5df04c>] (dhd_module_init+0x4c/0x290 [ap6211])
[ 3855.709220] [<bf5df04c>] (dhd_module_init+0x4c/0x290 [ap6211]) from [<c0008698>] (do_one_initcall+0x10c/0x164)
[ 3855.728090] [<c0008698>] (do_one_initcall+0x10c/0x164) from [<c0082eb8>] (sys_init_module+0x614/0x1ef4)
[ 3855.750010] [<c0082eb8>] (sys_init_module+0x614/0x1ef4) from [<c000ecc0>] (ret_fast_syscall+0x0/0x30)
[ 3855.765294] ---[ end trace 5eb9e7eb407dd509 ]---
[ 3855.783489] Unable to handle kernel paging request at virtual address bf126050
[ 3855.794225] pgd = dd524000
[ 3855.800715] [bf126050] *pgd=6e400811, *pte=00000000, *ppte=00000000
[ 3855.814864] Internal error: Oops: 7 [#2] PREEMPT SMP ARM
[ 3855.822061] Modules linked in: ap6211(+) bnep disp_ump mali_drm drm cpufreq_userspace zram(C) zsmalloc(C) spidev mali ump a20_tp 8021q garp stp llc sunxi_ir hidp rfcomm hci_uart bluetooth ppdev lp parport [last unloaded: ap6211]
[ 3855.865012] CPU: 1    Tainted: G      D WC    (3.4.113-sun7i #16)
[ 3855.874228] PC is at platform_match+0x60/0x74
[ 3855.881766] LR is at __driver_attach+0x20/0x90
[ 3855.895079] pc : [<c0483c00>]    lr : [<c0482434>]    psr: 600c0013
[ 3855.895084] sp : e60d3e20  ip : 00000001  fp : 00000124
[ 3855.910464] r10: 0000d905  r9 : bf5df000  r8 : ee481ca4
[ 3855.920891] r7 : edc20180  r6 : bf126058  r5 : bf5ab1fc  r4 : 00000000
[ 3855.932714] r3 : c0483ba0  r2 : 00000002  r1 : bf5a0744  r0 : bf126058
[ 3855.945070] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[ 3855.956640] Control: 10c5387d  Table: 5d52406a  DAC: 00000015
  
  [...Register dumps ...]
  
[ 3856.735549] Process modprobe (pid: 4033, stack limit = 0xe60d22f0)
[ 3856.745050] Stack: (0xe60d3e20 to 0xe60d4000)
[ 3856.756534] 3e20: bf126058 bf5ab1fc c0482414 c0482434 00000000 bf5ab1fc c0482414 c04803ac
[ 3856.771821] 3e40: ef023860 edc124b8 00000000 bf5ab1fc c0a68a60 c0481698 bf5a0744 bf5aace8
[ 3856.787152] 3e60: bf5ab1fc bf5aace8 00000001 bf5acfa0 ee481ca4 c0482a94 c0a90180 bf5aace8
[ 3856.802449] 3e80: 00000001 bf5acfa0 ee481ca4 bf5df04c c0a90180 e60d2000 00000001 ee481c80
[ 3856.817777] 3ea0: ee481ca4 bf5df000 0000d905 c0008698 00000124 c07226a4 c0a34f14 00000000
[ 3856.833135] 3ec0: 00000000 ee481ca4 00000001 bf5b2d30 bf5b2d78 00000001 ee481c80 ee481ca4
[ 3856.848474] 3ee0: 00000001 0000d905 00000124 c0082eb8 bf5b2d3c 00007fff 00000000 e60d3fb0
[ 3856.863841] 3f00: 00000000 00000000 c072645c bf5b2e74 bf5b2d3c f0cbbfb0 f0c68b50 c0a89380
[ 3856.879132] 3f20: e60d2000 f0c6e681 ee7eea80 bf591444 00000006 00000000 00000000 00000000
[ 3856.894462] 3f40: 00000000 f0bfc000 000bffd8 f0cbb628 f0c6e570 f0c86698 00072278 00088a18
[ 3856.909810] 3f60: bf5acd60 000003fe 0000003c 0000003d 00000032 00000036 00000015 00000000
[ 3856.925100] 3f80: 08000071 b6fca890 b6d25000 b7903fa0 00000080 c000ee44 e60d2000 00000000
[ 3856.940428] 3fa0: 00000000 c000ecc0 b6fca890 b6d25000 b6d25000 000bffd8 b6fc984c 00000026
[ 3856.955758] 3fc0: b6fca890 b6d25000 b7903fa0 00000080 00040000 00000000 b7903ed8 00000000
[ 3856.971121] 3fe0: b6f20161 be946310 b6fc150f b6f20168 000e0030 b6d25000 00000000 00000000
[ 3856.986927] [<c0483c00>] (platform_match+0x60/0x74) from [<c0482434>] (__driver_attach+0x20/0x90)
[ 3857.003540] [<c0482434>] (__driver_attach+0x20/0x90) from [<c04803ac>] (bus_for_each_dev+0x68/0x9c)
[ 3857.020322] [<c04803ac>] (bus_for_each_dev+0x68/0x9c) from [<c0481698>] (bus_add_driver+0xd0/0x28c)
[ 3857.037172] [<c0481698>] (bus_add_driver+0xd0/0x28c) from [<c0482a94>] (driver_register+0x78/0x134)
[ 3857.055043] [<c0482a94>] (driver_register+0x78/0x134) from [<bf5df04c>] (dhd_module_init+0x4c/0x290 [ap6211])
[ 3857.073853] [<bf5df04c>] (dhd_module_init+0x4c/0x290 [ap6211]) from [<c0008698>] (do_one_initcall+0x10c/0x164)
[ 3857.092061] [<c0008698>] (do_one_initcall+0x10c/0x164) from [<c0082eb8>] (sys_init_module+0x614/0x1ef4)
[ 3857.109391] [<c0082eb8>] (sys_init_module+0x614/0x1ef4) from [<c000ecc0>] (ret_fast_syscall+0x0/0x30)
[ 3857.123654] Code: 13a00001 e8bd8070 e8bd8070 e5911000 (e5100008) 
[ 3857.140640] ---[ end trace 5eb9e7eb407dd50a ]---

 

Link to comment
Share on other sites

Ok, finally i managed to resolve all issues and got USB Wifi and onboard Wifi working.

At first, there is an issue about loading Firmware to USB Devices. This matters all devices, i testet two. To see this / fix this, do the following:

Get a well-known Device like RT2800 compatible. Plug it in. You will see in dmesg:
 

[...]
[  944.529335] usbcore: registered new interface driver rt2800usb
[ 1005.163497] phy3 -> rt2x00lib_request_firmware: Error - Failed to request Firmware.
[...]

You can start

# udevadm monitor --property

and watch the events. No Firmware gets loaded. To fix this, i did:

* clone firmware, maybe not neccesary / you can get firmware somewhere else

git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
cp rt2870.bin /lib/firmware/

* install the missing Firmware loading script and install. Get it for example from:

wget https://raw.githubusercontent.com/msekletar/udev/master/extras/firmware/firmware.sh
cp firmware.sh /lib/udev
chmod 755 /lib/udev/firmware.sh

* change loading udev rule, edit file: /lib/udev/rules.d/50-firmwarerule

# stub for immediately telling the kernel that userspace firmware loading
# failed; necessary to avoid long timeouts with CONFIG_FW_LOADER_USER_HELPER=y
#SUBSYSTEM=="firmware", ACTION=="add", ATTR{loading}="-1"
SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh --firmware=$env{FIRMWARE} --devpath=$env{DEVPATH}"

* now plug in and out the USB Device, firmware gets loaded. See in dmesg.

* further working demo / debug with iPhone as an access point, orignal commands
 

# dmesg

[  173.237800] Registered led device: rt2800usb-phy1::radio
[  173.242351] Registered led device: rt2800usb-phy1::assoc
[  173.251511] Registered led device: rt2800usb-phy1::quality
[  212.394061] ADDRCONF(NETDEV_UP): wlx7cdd901d63cb: link is not ready
[  306.550771] wlx7cdd901d63cb: authenticate with 80:2a:a8:d7:d1:fe
[  306.603112] wlx7cdd901d63cb: send auth to 80:2a:a8:d7:d1:fe (try 1/3)
[  306.609799] wlx7cdd901d63cb: authenticated
[  306.647584] wlx7cdd901d63cb: associate with 80:2a:a8:d7:d1:fe (try 1/3)
[  306.667489] wlx7cdd901d63cb: RX AssocResp from 80:2a:a8:d7:d1:fe (capab=0x431 status=0 aid=1)
[  306.716286] ADDRCONF(NETDEV_CHANGE): wlx7cdd901d63cb: link becomes ready
[  306.719199] wlx7cdd901d63cb: associated
[  317.426175] wlx7cdd901d63cb: no IPv6 routers presen

# cat /etc/wpa_supplicant/wpa_supplicant.conf

network={
    ssid="Chrissie's iPhone"
    psk="asdf1234"
}

# wpa_supplicant -i wlx7cdd901d63cb -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf -B

# dhclient wlx7cdd901d63cb

# ifconfig
wlx7cdd901d63cb Link encap:Ethernet  HWaddr 7c:dd:90:1d:63:cb
          inet addr:172.20.10.4  Bcast:172.20.10.15  Mask:255.255.255.240


root@bananapipro:/home/chrissie# ping 172.20.10.1
PING 172.20.10.1 (172.20.10.1) 56(84) bytes of data.
64 bytes from 172.20.10.1: icmp_seq=1 ttl=64 time=35.9 ms
64 bytes from 172.20.10.1: icmp_seq=2 ttl=64 time=30.4 ms

 

The second issue is about the onboard wifi driver. If i blacklist the module, and modprobe it when the system has fully booted, it works. you can even automate this with rc.local

See:

 resolve: blacklist module, load when system is fully booted via modprobe, race condition?


 

# vi /etc/modprobe.d/blacklist.conf

[...]
blacklist ap6211
[...]


# reboot

# modprobe ap6211

# dmesg
[...]
[  135.443706] [ap6211] Firmware up: op_mode=0x0001, Broadcom Dongle Host Driver mac=98:3b:16:e9:6c:36
[  135.461025] [ap6211] Firmware version = wl0: Mar 10 2014 14:59:50 version 5.90.195.89.18 FWID 01-b13c09c7
[  135.464100] [ap6211] Chip: a962 Rev 1 Pkg 9

# ifconfig
[...]
wlan0     Link encap:Ethernet  HWaddr 00:90:4c:11:22:33
[...]

 

* to make this permanent, insert the following to the end /etc/rc.local:
 

# By default this script does nothing.

sleep 5; modprobe ap6211

exit 0

 

Well Igor you said, this had worked somewhere in the past, and there havent been changed anything - this ist hard for me to believe.

 

At least i worked it out - maybe this helps some other people :)

 

Chris.

 

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines