Ac-wlan pcie-card

I can try if i find some time to disassemble my test-r2 case :slight_smile:

root@bpi-r2:~# lspci                                                            
00:00.0 PCI bridge: MEDIATEK Corp. Device 0801 (rev 01)                         
00:01.0 PCI bridge: MEDIATEK Corp. Device 0801 (rev 01)                         
01:00.0 Network controller: Qualcomm Atheros QCA986x/988x 802.11ac Wireless Netr
02:00.0 IDE interface: ASMedia Technology Inc. ASM1061 SATA IDE Controller (rev)
root@bpi-r2:~# iw list
Wiphy phy0
        max # scan SSIDs: 16                                                    
        max scan IEs length: 195 bytes                                          
        max # sched scan SSIDs: 0                                               
        max # match sets: 0                                                     
        max # scan plans: 1                                                     
        max scan plan interval: -1                                              
        max scan plan iterations: 0                                             
        Retry short limit: 7                                                    
        Retry long limit: 4                                                     
        Coverage class: 0 (up to 0m)                                            
        Device supports RSN-IBSS.                                               
        Device supports AP-side u-APSD.                                         
        Supported Ciphers:                                                      
                * WEP40 (00-0f-ac:1)                                            
                * WEP104 (00-0f-ac:5)                                           
                * TKIP (00-0f-ac:2)                                             
                * CCMP-128 (00-0f-ac:4)                                         
                * CMAC (00-0f-ac:6)                                             
                * CMAC-256 (00-0f-ac:13)                                        
                * GMAC-128 (00-0f-ac:11)                                        
                * GMAC-256 (00-0f-ac:12)                                        
        Available Antennas: TX 0x7 RX 0x7                                       
        Configured Antennas: TX 0x7 RX 0x7                                      
        Supported interface modes:                                              
                 * managed                                                      
                 * AP                                                           
                 * monitor                                                      
        Band 1:                                                                 
                Capabilities: 0x19ef                                            
                        RX LDPC                                                 
                        HT20/HT40                                               
                        SM Power Save disabled                                  
                        RX HT20 SGI                                             
                        RX HT40 SGI                                             
                        TX STBC                                                 
                        RX STBC 1-stream                                        
                        Max AMSDU length: 7935 bytes                            
                        DSSS/CCK HT40                                           
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)           
                Minimum RX AMPDU time spacing: 8 usec (0x06)                    
                HT TX/RX MCS rate indexes supported: 0-23                       
                Bitrates (non-HT):                                              
                        * 1.0 Mbps                                              
                        * 2.0 Mbps (short preamble supported)                   
                        * 5.5 Mbps (short preamble supported)                   
                        * 11.0 Mbps (short preamble supported)                  
                        * 6.0 Mbps                                              
                        * 9.0 Mbps                                              
                        * 12.0 Mbps                                             
                        * 18.0 Mbps                                             
                        * 24.0 Mbps                                             
                        * 36.0 Mbps                                             
                        * 48.0 Mbps                                             
                        * 54.0 Mbps                                             
                Frequencies:                                                    
                        * 2412 MHz [1] (20.0 dBm)                               
                        * 2417 MHz [2] (20.0 dBm)                               
                        * 2422 MHz [3] (20.0 dBm)                               
                        * 2427 MHz [4] (20.0 dBm)                               
                        * 2432 MHz [5] (20.0 dBm)                               
                        * 2437 MHz [6] (20.0 dBm)                               
                        * 2442 MHz [7] (20.0 dBm)                               
                        * 2447 MHz [8] (20.0 dBm)                               
                        * 2452 MHz [9] (20.0 dBm)                               
                        * 2457 MHz [10] (20.0 dBm)                              
                        * 2462 MHz [11] (20.0 dBm)                              
                        * 2467 MHz [12] (20.0 dBm)                              
                        * 2472 MHz [13] (disabled)                              
                        * 2484 MHz [14] (disabled)                              
        Band 2:                                                                 
                Capabilities: 0x19ef                                            
                        RX LDPC                                                 
                        HT20/HT40                                               
                        SM Power Save disabled                                  
                        RX HT20 SGI                                             
                        RX HT40 SGI                                             
                        TX STBC                                                 
                        RX STBC 1-stream                                        
                        Max AMSDU length: 7935 bytes                            
                        DSSS/CCK HT40                                           
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)           
                Minimum RX AMPDU time spacing: 8 usec (0x06)                    
                HT TX/RX MCS rate indexes supported: 0-23                       
                VHT Capabilities (0x338001b2):                                  
                        Max MPDU length: 11454                                  
                        Supported Channel Width: neither 160 nor 80+80          
                        RX LDPC                                                 
                        short GI (80 MHz)                                       
                        TX STBC                                                 
                        RX antenna pattern consistency                          
                        TX antenna pattern consistency                          
                VHT RX MCS set:                                                 
                        1 streams: MCS 0-9                                      
                        2 streams: MCS 0-9                                      
                        3 streams: MCS 0-9                                      
                        4 streams: not supported                                
                        5 streams: not supported                                
                        6 streams: not supported                                
                        7 streams: not supported                                
                        8 streams: not supported                                
                VHT RX highest supported: 0 Mbps                                
                VHT TX MCS set:                                                 
                        1 streams: MCS 0-9                                      
                        2 streams: MCS 0-9                                      
                        3 streams: MCS 0-9                                      
                        4 streams: not supported                                
                        5 streams: not supported                                
                        6 streams: not supported                                
                        7 streams: not supported                                
                        8 streams: not supported                                
                VHT TX highest supported: 0 Mbps                                
                Bitrates (non-HT):                                              
                        * 6.0 Mbps                                              
                        * 9.0 Mbps                                              
                        * 12.0 Mbps                                             
                        * 18.0 Mbps                                             
                        * 24.0 Mbps                                             
                        * 36.0 Mbps                                             
                        * 48.0 Mbps                                             
                        * 54.0 Mbps                                             
                Frequencies:                                                    
                        * 5180 MHz [36] (30.0 dBm) (no IR)                      
                        * 5200 MHz [40] (30.0 dBm) (no IR)                      
                        * 5220 MHz [44] (30.0 dBm) (no IR)                      
                        * 5240 MHz [48] (30.0 dBm) (no IR)                      
                        * 5260 MHz [52] (30.0 dBm) (no IR, radar detection)     
                        * 5280 MHz [56] (30.0 dBm) (no IR, radar detection)     
                        * 5300 MHz [60] (30.0 dBm) (no IR, radar detection)     
                        * 5320 MHz [64] (30.0 dBm) (no IR, radar detection)     
                        * 5500 MHz [100] (disabled)                             
                        * 5520 MHz [104] (disabled)                             
                        * 5540 MHz [108] (disabled)                             
                        * 5560 MHz [112] (disabled)                             
                        * 5580 MHz [116] (disabled)                             
                        * 5600 MHz [120] (disabled)                             
                        * 5620 MHz [124] (disabled)                             
                        * 5640 MHz [128] (disabled)                             
                        * 5660 MHz [132] (disabled)                             
                        * 5680 MHz [136] (disabled)                             
                        * 5700 MHz [140] (disabled)                             
                        * 5720 MHz [144] (30.0 dBm) (no IR)                     
                        * 5745 MHz [149] (30.0 dBm) (no IR)                     
                        * 5765 MHz [153] (30.0 dBm) (no IR)                     
                        * 5785 MHz [157] (30.0 dBm) (no IR)                     
                        * 5805 MHz [161] (30.0 dBm) (no IR)                     
                        * 5825 MHz [165] (30.0 dBm) (no IR)                     
                        * 5845 MHz [169] (30.0 dBm) (no IR)                     
                        * 5865 MHz [173] (disabled)                             
        Supported commands:                                                     
                 * new_interface                                                
                 * set_interface                                                
                 * new_key                                                      
                 * start_ap                                                     
                 * new_station                                                  
                 * set_bss                                                      
                 * authenticate                                                 
                 * associate                                                    
                 * deauthenticate                                               
                 * disassociate                                                 
                 * join_ibss                                                    
                 * remain_on_channel                                            
                 * set_tx_bitrate_mask                                          
                 * frame                                                        
                 * frame_wait_cancel                                            
                 * set_wiphy_netns                                              
                 * set_channel                                                  
                 * set_wds_peer                                                 
                 * probe_client                                                 
                 * set_noack_map                                                
                 * register_beacons                                             
                 * start_p2p_device                                             
                 * set_mcast_rate                                               
                 * testmode                                                     
                 * connect                                                      
                 * disconnect                                                   
                 * channel_switch                                               
                 * set_qos_map                                                  
                 * set_multicast_to_unicast                                     
        Supported TX frame types:                                               
                 * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa00
                 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 00
                 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 00
                 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 00
                 * mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90
                 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90
                 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0x0
                 * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90
        Supported RX frame types:                                               
                 * IBSS: 0x40 0xb0 0xc0 0xd0                                    
                 * managed: 0x40 0xd0                                           
                 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0                       
                 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0                  
                 * mesh point: 0xb0 0xc0 0xd0                                   
                 * P2P-client: 0x40 0xd0                                        
                 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0                   
                 * P2P-device: 0x40 0xd0                                        
        software interface modes (can always be added):                         
                 * monitor                                                      
        valid interface combinations:                                           
                 * #{ AP } <= 8, #{ managed } <= 1,                             
                   total <= 8, #channels <= 1, STA/AP BI must match             
        HT Capability overrides:                                                
                 * MCS: ff ff ff ff ff ff ff ff ff ff                           
                 * maximum A-MSDU length                                        
                 * supported channel width                                      
                 * short GI for 40 MHz                                          
                 * max A-MPDU length exponent                                   
                 * min MPDU start spacing                                       
        Device supports TX status socket option.                                
        Device supports HT-IBSS.                                                
        Device supports SAE with AUTHENTICATE command                           
        Device supports scan flush.                                             
        Device supports AP scan.                                                
        Device supports per-vif TX power setting                                
        Driver supports full state transitions for AP/GO clients                
        Driver supports a userspace MPM                                         
        Driver/device bandwidth changes during BSS lifetime (AP/GO mode)        
        Device supports static SMPS                                             
        Device supports configuring vdev MAC-addr on create.                    
        Supported extended features:                                            
                * [ VHT_IBSS ]: VHT-IBSS                                        
                * [ RRM ]: RRM                                                  
                * [ SET_SCAN_DWELL ]: scan dwell setting                        
                * [ FILS_STA ]: STA FILS (Fast Initial Link Setup)              
                * [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records            
                * [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211      
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs 

root@bpi-r2:~# dmesg | grep ath10k                                              
[   11.773886] ath10k_pci 0000:01:00.0: enabling device (0140 -> 0142)          
[   11.780500] ath10k_pci 0000:01:00.0: pci irq legacy oper_irq_mode 1 irq_mode0
[   12.060066] ath10k_pci 0000:01:00.0: qca988x hw2.0 target 0x4100016c chip_id0
[   12.069322] ath10k_pci 0000:01:00.0: kconfig debug 1 debugfs 1 tracing 0 dfs1
[   12.078796] ath10k_pci 0000:01:00.0: firmware ver 10.2.4-1.0-00041 api 5 fea2
[   12.125158] ath10k_pci 0000:01:00.0: board_file api 1 bmi_id N/A crc32 bebc78
[   13.242268] ath10k_pci 0000:01:00.0: unsupported HTC service id: 1536        
[   13.269623] ath10k_pci 0000:01:00.0: htt-ver 2.1 wmi-op 5 htt-op 2 cal otp m1
[   13.455080] ath10k_pci 0000:01:00.0 wlp1s0: renamed from wlan0               
root@bpi-r2:~# 
root@bpi-r2:~# ip addr show wlp1s0                                              
9: wlp1s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default q0
    link/ether b4:82:c5:60:6a:30 brd ff:ff:ff:ff:ff:ff                          
root@bpi-r2:~#

@cioby23 at least it is detected on r2 :wink: and 2.4G AP-mode works (have connected to it and run ssh-connection over it), have not tested 5G mode yet

Thanks for testing Frank. I also received confirmation from @igorpec on armbian forum that it works on BananaPi R2.

I have ordered one piece of it to replace my existing MT7612e card which does does not work at the moment and it does not support 2.4G & 5G at the same time

After installing 5.4 kernel from your repository I cannot use the MT7612e card anymore. When I try to load the module it fails with an error when about the firmware. This is the output from dmesg

dmesg | grep mt76
[    6.793162] mt76x2e 0000:01:00.0: enabling device (0140 -> 0142)
[    6.799319] mt76x2e 0000:01:00.0: ASIC revision: 76120044
[    7.452685] mt76x2e 0000:01:00.0: Direct firmware load for mt7662_rom_patch.bin failed with error -2
[    7.462076] mt76x2e: probe of 0000:01:00.0 failed with error -2

I donā€™t think you can make ap on both bands at same time with this card.

Thanks for hint about mt7612 firmware on 5.4. I will check it if i have time forā€¦

You have mt7662_rom_patch.bin in /lib/firmware? -2 is maybe ā€œno such fileā€

Yes the file is there. I have installed the firmware-misc-nonfree package from Debian repositories to load the firmware.

ls -ltrh /lib/firmware/ | grep mt76
-rw-r--r--  1 root root  26K Sep  1 16:48 mt7662_rom_patch.bin
-rw-r--r--  1 root root  80K Sep  1 16:48 mt7662.bin
-rw-r--r--  1 root root 360K Sep  1 16:48 mt7650.bin
-rw-r--r--  1 root root  45K Sep  1 16:48 mt7601u.bin

Is it directly in /lib/firmware or in subfolder mediatek? Youā€™ve searched with recursive flag (-r)

The previous output is only from the /lib/firmware folder. (-r) is for reverse sort (-R) is for recursive.

Indeed there is also a mediatek folder in under /lib/firmware folder. Below is its content.

/lib/firmware/mediatek# ls -ltrh
total 900K
-rw-r--r-- 1 root root 167K Sep  1 16:48 mt7668pr2h.bin
-rw-r--r-- 1 root root  21K Sep  1 16:48 mt7662u_rom_patch.bin
-rw-r--r-- 1 root root  90K Sep  1 16:48 mt7662u.bin
-rw-r--r-- 1 root root 374K Sep  1 16:48 mt7650e.bin
-rw-r--r-- 1 root root  77K Sep  1 16:48 mt7622pr2h.bin
-rw-r--r-- 1 root root  79K Sep  1 16:48 mt7610u.bin
-rw-r--r-- 1 root root  79K Sep  1 16:48 mt7610e.bin

Ok,then itā€™s strange that file is not foundā€¦You have driver as module? log says bootup time is 7 seconds which looks like builtin and before filesystems are mounted

I have atached the full boot log dmesg.log (38.1 KB)

Strange just found the driver does not exist under the /lib/modules/5.4.2-bpi-r2-main/kernel/drivers/net/wireless folder. When I ran build.sh it created the tar.gz file and two folders BPI-BOOT and BPI-ROOT under SD folder and I unpacked the tar.gz bpi-r2_5.4.2-main.tar.gz into the rootfs which it seems does not have the mt76x2e.ko driver in it

I checked the config and itā€™s enabled in the kernel but file is missing.

zgrep MT76x /proc/config.gz                                         
CONFIG_MT76x02_LIB=y
# CONFIG_MT76x0U is not set
# CONFIG_MT76x0E is not set
CONFIG_MT76x2_COMMON=y
CONFIG_MT76x2E=y
# CONFIG_MT76x2U is not set

Itā€™s not enabled as a loadable module but directly to the kernel. It says (y) instead of (m). I will try tomorrow and recompile the kernel with this driver as a module.

Hi,

[ 7.452685] mt76x2e 0000:01:00.0: Direct firmware load for mt7662_rom_patch.bin failed with error -2

And

[ 8.223316] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)

The kernel tries to init mt76 driver and to load firmware before rootfs is mounted. Compiling it as a module should help, as all modules can be loaded only afrer rootfs is mounted. Or you can probably to try built-in a firmware to kernel

now with full bootlog it is clear :slight_smile:

Imho firmware inside kernel is only possible with initrd which is much more complex setupā€¦or is there any easier way?

with my kernel you have no modulesā€¦also none from default. I guess it maybe a firewall issue. Maybe nftables have problems with later init of ap0 interface or similar.thats why recommend to test your kernel without modules

https://www.kernel.org/doc/html/v4.14/driver-api/firmware/built-in-fw.html

As I understood it can be built-in to Linux kernel image. Initramfs is near the same as regular modules/firmware, it can be extremely useful for various sata/sas/raid drivers or for network drivers in case of net-boot, at least itā€™s most widely used cases in my practice.

1 Like

I have changed in the kernel config the driver to be compiled as a module instead of being directly loaded and now I see the module in the tar.gz kernel image so I think it would work fine.

Iā€™ll test later today and upload the new kernel into the BananaPi R2. I guess that was the issue that it tries to load firmware before rootfs is mounted. Thanks for pointing this out.

UPDATE: Uploaded the new kernel with the mt76x2e module on the BPI-R2 box and it works properly now. Module and firmware are loaded properly and wifi interface is visible

 dmesg |grep mt76
[   11.787135] mt76x2e 0000:01:00.0: enabling device (0140 -> 0142)
[   11.793413] mt76x2e 0000:01:00.0: ASIC revision: 76120044
[   12.456280] mt76x2e 0000:01:00.0: ROM patch build: 20141115060606a
[   12.468727] mt76x2e 0000:01:00.0: Firmware Version: 0.0.00
[   12.474314] mt76x2e 0000:01:00.0: Build: 1
[   12.478429] mt76x2e 0000:01:00.0: Build Time: 201507311614____
[   12.507768] mt76x2e 0000:01:00.0: Firmware running!
[   12.543525] mt76x2e 0000:01:00.0 wlp1s0: renamed from wlan0

ip addr show wlp1s0
9: wlp1s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether f8:62:aa:50:16:10 brd ff:ff:ff:ff:ff:ff

Hi folks,

just a silly question, how can you apply a half sized card in a full sized place?

Thanks!

Iā€™ve just read this topic, and couldnā€™t figure out! Is this card working with BPI-r2 or any BPI router board : Mini PCIe Modul QCA9880 WPEA-352ACN Itā€™s sparklan, but actually chipset comes from Q/A.

I donā€™t think soā€¦i have tested similar card and reported it works

I also would like to get some recommendation for an ac card with 802.11s. :slight_smile:

Can I put the BPI-MT7615 in a BPI-R2 (it seems so big)?

The large mt7615 (like bpi,but also other vendors too) do not fit into bpi-r2 (or you need to cut off gpio pins and need newer r2 with smaller coils).

The asiarf mt7615 card fits and works in bpi-r2.but shipping is expensiveā€¦

1 Like