[BPI-R2] internal Wifi/BT (MT6625L) - Kernel

In merged-tree all feature-branches except second gmac (wifi,poweroff,hdmi) are merged, and of course all mainline-options from older lts.

@LeXa2 i’ve got a report from @deadmeat that wifi driver hangs on kalHifAhbKalWakeLockTimeout after some time of usage

I guess here but did not found message printed.

Any idea why this happen?

It’s in Frank’s 5.4-wifi branch, w/o any patches, but with custom config.

Compiled with:

➜  ~ armv7a-hardfloat-linux-gnueabihf-gcc -v
Используются внутренние спецификации.
COLLECT_GCC=armv7a-hardfloat-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/armv7a-hardfloat-linux-gnueabihf/9.2.0/lto-wrapper
Целевая архитектура: armv7a-hardfloat-linux-gnueabihf
Параметры конфигурации: /mnt/disk/tmp/portage/cross-armv7a-hardfloat-linux-gnueabihf/gcc-9.2.0-r2/work/gcc-9.2.0/configure --host=x86_64-pc-linux-gnu --target=armv7a-hardfloat-linux-gnueabihf --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=
/usr/x86_64-pc-linux-gnu/armv7a-hardfloat-linux-gnueabihf/gcc-bin/9.2.0 --includedir=/usr/lib/gcc/armv7a-hardfloat-linux-gnueabihf/9.2.0/include --datadir=/usr/share/gcc-data/armv7a-hardfloat-linux-gnueabihf/9.2.0 --mandir=/usr/share/gcc-data/
armv7a-hardfloat-linux-gnueabihf/9.2.0/man --infodir=/usr/share/gcc-data/armv7a-hardfloat-linux-gnueabihf/9.2.0/info --with-gxx-include-dir=/usr/lib/gcc/armv7a-hardfloat-linux-gnueabihf/9.2.0/include/g++-v9 --with-python-dir=/share/gcc-data/ar
mv7a-hardfloat-linux-gnueabihf/9.2.0/python --enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --enable-checking=release --with-bugurl=https://bugs.
gentoo.org/ --with-pkgversion='Gentoo 9.2.0-r2 p3' --disable-esp --enable-libstdcxx-time --enable-poison-system-directories --with-sysroot=/usr/armv7a-hardfloat-linux-gnueabihf --disable-bootstrap --enable-__cxa_atexit --enable-clocale=gnu --d
isable-multilib --disable-altivec --disable-fixed-point --with-float=hard --with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16 --enable-libgomp --disable-libmudflap --disable-libssp --disable-systemtap --enable-vtable-verify --enable-lto
--without-isl --enable-default-pie --enable-default-ssp
Модель многопоточности: posix
gcc версия 9.2.0 (Gentoo 9.2.0-r2 p3)

P.S. 5.5-merged (build with same tools) has no any errors in dmesg, but does not work propertly, long story short - there is no outgoing traffic.

5.4-wifi works but not 5.5-merged? I have only gcc 8.2 (ubuntu 18.4 has no gcc9)

Has 5.5 problems from.beginning or after some time?

I didn’t really tested it in 5.4-wifi, my goal was to test vlans and bridges. But as i remember i wasn’t able to connect and use it, and dmesg was with lots of

kalHifAhbKalWakeLockTimeout

are there There is 5.4 dmesg: dmesg-5.4-wifi (162.4 КБ)

5.5: Right after boot it works, for now i found 3 states.

  1. Everything works. 1-3 minutse after boot (wifi init).
  2. Outgoing traffic disapears. Some times first partially (i.e. i can ping, but can’t connect via ssh), but then always fully. When client is connected i can tcpdump incoming traffic, but no outgoing. In case ou using bridge outgoing traffic is always present on bridge.
  3. Unable to connect to ap. After about 10+ minutes after wifi init, may be depends on ap usage, but i’m not sure. And there are no message in dmesg about wifi.

made only quick test directly after boot running my wifi.sh with -wifi kernels and then merging to main/merged. i have made no longtime test due to missing time.

something is wrong with download-link…i cannot download it :frowning:

Away from pc, will try to upload tommorow.

2nd attempt: dmesg54 (162.0 КБ)

Messages start after you enable client-mode

[MTK-WIFI] WIFI_write: WIFI_write 1

After that you start ap-mode

[MTK-WIFI] WIFI_write: WIFI_write A 

Could you try skip first initialization (echo 1 > /dev/wmtWifi) and testing ap-mode only?

Afair you need to reset controller (echo 0) if setting mode again. But don’t know how stable it works after doing this.

For download it seems forum blocks unknown file extensions (created one with dot in kernelversion before). Maybe filename works if you add .txt or .log

i booted 5.4-main and started Ap with wifi.sh, but got not this message in dmesg…

@DeadMeat

Have it now ~6h running with multiple connects to ap0 still working,no new messages in dmesg. I guess your timeout is caused by initialisation in clientmode and then switching to ap-mode

Ok, i’ll try it again in ap only mode, but it doesn’t helped in 5.5-merged, i’ve tried to enable ap mode without client mode, and all sympthoms are the same.

Have 5.5-merged running for 40 minutes. Started wifi ap mode directly after boot. Still working,no timeout in dmesg. Have connected 4 times to ap and run ssh-connection over it. Do you made more traffic?

edit: now 4h up with additional 3 ap-connects + ssh working, no new message in dmesg

edit2:

root@bpi-r2:~# dmesg | tail -10                                                 
[   64.068177] [STP] mtk_wcn_stp_psm_enable:[W] STP Not Ready, Dont do Sleep/Wap
[   68.417566] [MTK-WIFI] WIFI_open: WIFI_open: major 155 minor 0 (pid 603)     
[   68.417635] [MTK-WIFI] WIFI_write: WIFI_write A                              
                                                                            
[   68.455054] kalFirmwareImageMapping firmware size 225840                     
[   69.628450] [MTK-WIFI] register_set_p2p_mode_handler: (pid 610) register set0
[   69.628557] [MTK-WIFI] WIFI_write: WMT turn on WIFI success!                 
[   69.629943] [MTK-WIFI] WIFI_write: Set wlan mode 0 --> 1                     
[   69.629989] [MTK-WIFI] WIFI_close: WIFI_close: major 155 minor 0 (pid 603)   
[   71.758733] IPv6: ADDRCONF(NETDEV_CHANGE): ap0: link becomes ready           
root@bpi-r2:~# uptime                                                           
 13:19:16 up  5:25,  2 users,  load average: 0.02, 0.02, 0.00                   
root@bpi-r2:~# uname -r                                                         
5.5.0-rc1-bpi-r2-merged                                                         
root@bpi-r2:~# 

unable to reproduce your timeout error at the moment

Cold you give me your config if it’s different from default? I and pls remind what gcc version do you use?

Default…afaik gcc 8

I’ve just recompiled the kernel with gcc version 6.5.0(same config), and got the same result.

[    0.000000] Booting Linux on physical CPU 0x0                                                                                                                                                                                                    
[    0.000000] Linux version 5.5.0-rc1-bpi-r2-merged (alex@tux-laptop) (gcc version 6.5.0 (Gentoo 6.5.0-r1 p2)) #12 SMP Sun Jan 5 22:33:10 PST 2020

nothing in dmesg:

[  286.762403] [WMT-DETECT][I]wmt_detect_open:open major 154 minor 0 (pid 4694)
[  286.762611] [WMT-DETECT][I]wmt_detect_unlocked_ioctl:cmd (-2147191037),arg(0)
[  286.762883] [WMT-DETECT][I]wmt_detect_unlocked_ioctl:cmd (1074034433),arg(30243)
[  286.762894] set current consys chipid (0x7623)
[  286.763044] [WMT-DETECT][I]wmt_detect_unlocked_ioctl:cmd (-2147191036),arg(30243)
[  286.763055] [WMT-MOD-INIT][I]do_common_drv_init:start to do common driver init, chipid:0x00007623
[  286.815317] [WMT-CONF][E]wmt_conf_parse_pair(323):unknown field 'mt6620.defAnt'.
[  286.815335] [WMT-CONF][E]wmt_conf_parse_pair(323):unknown field 'mt6628.defAnt'.
[  286.815343] [WMT-CONF][E]wmt_conf_parse_pair(323):unknown field 'mt6630.defAnt'.
[  286.829022] [WMT-MOD-INIT][I]do_common_drv_init:finish common driver init
[  286.829037] [WLAN-MOD-INIT][I]do_wlan_drv_init:start to do wlan module init 0x7623
[  286.835948] [MTK-WIFI] WIFI_init: mtk_wmt_WIFI_chrdev driver(major 155) installed.
[  286.835961] [WLAN-MOD-INIT][I]do_wlan_drv_init:WMT-WIFI char dev init, ret:0
[  286.836779] [WLAN-MOD-INIT][I]do_wlan_drv_init:WLAN-GEN2 driver init, ret:0
[  286.836790] [WLAN-MOD-INIT][I]do_wlan_drv_init:finish wlan module init
[  286.838757] [WMT-DETECT][I]wmt_detect_close:close major 154 minor 0 (pid 4694)
[  288.911964] [WMT-CORE][E]opfunc_hif_conf(874):WMT-CORE: WMT HIF info added
[  288.912676] vcn18: mode operation not allowed
[  288.914915] [WMT-CONSYS-HW][E]mtk_wcn_consys_hw_reg_ctrl(291):Read CONSYS chipId(0xfffff093)
[  289.006058] [WMT-CONF][E]wmt_conf_parse_pair(323):unknown field 'mt6620.defAnt'.
[  289.006077] [WMT-CONF][E]wmt_conf_parse_pair(323):unknown field 'mt6628.defAnt'.
[  289.006085] [WMT-CONF][E]wmt_conf_parse_pair(323):unknown field 'mt6630.defAnt'.
[  289.587637] [STP] mtk_wcn_stp_psm_enable:[W] STP Not Ready, Dont do Sleep/Wakeup
[  290.901154] [MTK-WIFI] WIFI_open: WIFI_open: major 155 minor 0 (pid 4669)
[  290.901260] [MTK-WIFI] WIFI_write: WIFI_write A

[  290.939924] kalFirmwareImageMapping firmware size 225840
[  292.175763] [MTK-WIFI] register_set_p2p_mode_handler: (pid 4702) register set p2p mode handler cfd2cd5d
[  292.181340] systemd-udevd[4704]: Using default interface naming scheme 'v243'.
[  292.184001] [MTK-WIFI] WIFI_write: WMT turn on WIFI success!
[  292.185862] [MTK-WIFI] WIFI_write: Set wlan mode 0 --> 1
[  292.185936] [MTK-WIFI] WIFI_close: WIFI_close: major 155 minor 0 (pid 4669)
[  292.187999] systemd-udevd[4704]: ethtool: autonegotiation is unset or enabled, the speed and duplex are not writable.
[  292.188959] systemd-udevd[4703]: Using default interface naming scheme 'v243'.
[  292.190714] systemd-udevd[4703]: ethtool: autonegotiation is unset or enabled, the speed and duplex are not writable.
[  292.328592] systemd-udevd[4704]: wlan0: Process 'net.sh wlan0 start' failed with exit code 1.
[  292.408645] systemd-udevd[4703]: ap0: Process 'net.sh ap0 start' failed with exit code 1.
[  309.747593] IPv6: ADDRCONF(NETDEV_CHANGE): ap0: link becomes ready
[  319.335450] br0: port 6(ap0) entered blocking state
[  319.335469] br0: port 6(ap0) entered disabled state
[  319.335962] device ap0 entered promiscuous mode
[  319.336233] br0: port 6(ap0) entered blocking state
[  319.336252] br0: port 6(ap0) entered forwarding state
[  545.347940] mt7530 mdio-bus:00 lan0: Link is Down
[  545.348140] br0: port 1(lan0) entered disabled state
[  719.821686] device ap0 left promiscuous mode
[  719.821909] br0: port 6(ap0) entered disabled state
[  822.075965] device ap0 entered promiscuous mode
[  856.229133] device ap0 left promiscuous mode

I’ve tested both bridge and bridgeless configurations - no difference.

No timeout message but no traffic? Could you try bridgeless after powercycle? do you use my config (wifi builtin)?

Currently uploading my image from tftp to my gdrive (directly in kernel folder)

The same!

thats how it looks like on smartphone. I’ve connetted in 5-8 xeconds after ap was started.

Do you mead ./build.sh importconfig? My config is based on it: i’ve added mt76x2e wifi driver( CONFIG_MT76x2_COMMON=m, CONFIG_MT76x2E=m); SierraWireless usb 4G modem (CONFIG_USB_SIERRA_NET=m) and cdc-wdm related stuff; and some netlink options (nftables, QoS options, etc).

Small peak at the start - is the moment whet it was worked.

Could you try my kernel i’ve uploaded to my gdrive

I,ve found uImage_5.5.0-rc1-merged in bababa-pi/kernel dir, but there are no modules, is it a kernel without modules?