morrownr / USB-WiFi

USB WiFi Adapter Information for Linux
2.69k stars 180 forks source link

News: USB WiFi Adapters based on the mt7921au chipset (WiFi 6e) are now available... #87

Open morrownr opened 2 years ago

morrownr commented 2 years ago

Updated: 2023-02-26

July 2022 Comfast CF-953AX - chipset: mt7921au (single-state) (BT 5.2) http://en.comfast.com.cn/index.php?m=content&c=index&a=show&catid=13&id=182

July 2022 Comfast CF- 951AX - chipset: mt7921au (single-state) (BT 5.2) http://en.comfast.com.cn/index.php?m=content&c=index&a=show&catid=13&id=209

October 2022 Netgear A8000 AX3000 USB Adapter - chipset: mt7921au https://dongknows.com/netgear-a8000-ax3000-usb-adapter-is-here/

February 2023 ALFA AWUS036AXML https://www.alfa.com.tw/products/awus036axml?variant=39754360684616

EDIT: 2022-07-22 - Important info: The above adapters use the mt7921u driver. The mt7921 base driver has been in the Linux kernel since 5.12 so internal cards have been working well for some time with the exception of AP mode. The above are usb adapters and usb support was not added to the mt7921 driver until kernel 5.18. Most of the more popular distros provide instructions for upgrading kernels. I can provide instructions for Ubuntu based distros on request. AP mode support was added in kernel 5.19. It requires a firmware upgrade, see Main Menu 8.

EDIT: 2022-07-22 - We now have reports from @foen73 and @yaslama about the CF-953AX. Both report that it is a single-state adapter. That is very encouraging.

EDIT: 2022-08-03 - FYI: I see from an ad that the chipset is called mt7921au. This is the first time I have seen that specific name. It appears the mt7921au chipset has the same capabilities as the mt7921k that we have known about for some time.

EDIT: 2022-07-22 - Disclaimer: While we do have limited positive reports at this point, there could be issues that have not been discovered yet.

Regards,

Nick

morrownr commented 2 years ago

@bcdonadio

the regdomain for Brazil is completely outdated

I noticed some message traffic about this on linux-wireless recently. It appears there is an effort to make an update.

Which adapter do you have?

I have the cf-951ax. It seems most folks posting in this thread have the 953.

It seems to me that the non-functional on USB3 problem does not happen with the 953 so I am trying to find someone else with a 951 that can take a look and tell me if USB3 is working.

The USB3 problem is strange: I have tested on amd64 with Ubuntu 22.04 (kernel 5.19.3) and on a router with 32 bit arm and openWRT 22.03 rc6 (kernel 5.10). On both systems, an interface is created but managed and master modes do not function if the adapter is in a USB3 port. If I change the adapter to a USB2 port, things work. Well AX is not working but that is another issue. It seems that USB3 is working on the 953 if I am understanding the reports correctly so I am pondering if this is a faultly 951 adapter or if there is an engineering error? I am going to have to start digging deeper.

There are definitely bugs in the driver: Detecting and loading bluetooth support when the bluetooth hardware is not active. This trashes the system log and leads one to think bluetooth support is active to only find out it is not working.

Hopwfully we can figure out what is causing some of the bugs and get reports to the right places.

Nick

morrownr commented 2 years ago

aslama @leezu @deren @bcdonadio @amisix @adriangranados @UnknownProgrammer @coudu

Good day all,

Continuing to test on my Comast cf-951ax (mt9721au chipset) (mt7921u driver) Mint 21 upgrade to kernel 5.19.3.

I have noticed scanning for APs is not working well. Scanning is taking place but only some of the available APs are showing. If I cycle wifi, I can get some of my APs to show if only temporaily. I started a CPU monitor and I am seeing abnormal CPU useage during the scanning process. It is not normal. This could be a problem in the driver or it could be elsewhere. I am going to continue work to determine where the problem is. Is anyone else seeing this?

Recap of where I am to this point:

Please report issues you think need to be added to this list and I keep an updated list that I will post. Issues in addition to the above have been reported but the above 3 major issues may need to be fixed in order for us to better see other issues.

Overall, I think most will agree at this point that the Comfast cf-951ax and cf-953ax adapters are performing poorly. There may be multiple factors contributions. There are driver errors that need attention but there are probably apps and system utilities that are contributing also. 6 GHz band support has been light used in Linux so there has not been a lot of testing and reporting going. Determing what is causing the problems and getting that information to the appropriate people will allow support to stabilize sooner so I encourage everyone here to help with testing and reporting.

Thanks,

Nick

bcdonadio commented 2 years ago

@bcdonadio

Which adapter do you have?

I have the cf-951ax. It seems most folks posting in this thread have the 953.

It seems to me that the non-functional on USB3 problem does not happen with the 953 so I am trying to find someone else with a 951 that can take a look and tell me if USB3 is working.

@morrownr Yeah, I got the 953 as well, this issue might very well be restricted only to this 951 variation.

Just for reference, the USB VID I get on mine is 0e8d:7961 with the following lsusb output on Fedora 36 with kernel 5.18.19-200.fc36.x86_64:

Bus 002 Device 010: ID 0e8d:7961 MediaTek Inc. Wireless_Device
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.20
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0         9
  idVendor           0x0e8d MediaTek Inc.
  idProduct          0x7961 
  bcdDevice            1.00
  iManufacturer           6 MediaTek Inc.
  iProduct                7 Wireless_Device
  iSerial                 8 000000000
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x01fa
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          9 Config_01
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              160mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         3
      bFunctionClass        224 Wireless
      bFunctionSubClass       1 Radio Frequency
      bFunctionProtocol       1 Bluetooth
      iFunction               5 BT_FUNCTION
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              1 BT_ACL_If
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              2 BT_SCO_If
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               4
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               4
        bMaxBurst               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              2 BT_SCO_If
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               4
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               4
        bMaxBurst               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              2 BT_SCO_If
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0011  1x 17 bytes
        bInterval               4
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0011  1x 17 bytes
        bInterval               4
        bMaxBurst               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              2 BT_SCO_If
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0019  1x 25 bytes
        bInterval               4
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0019  1x 25 bytes
        bInterval               4
        bMaxBurst               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       4
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              2 BT_SCO_If
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0021  1x 33 bytes
        bInterval               4
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0021  1x 33 bytes
        bInterval               4
        bMaxBurst               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       5
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              2 BT_SCO_If
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0031  1x 49 bytes
        bInterval               4
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0031  1x 49 bytes
        bInterval               4
        bMaxBurst               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       6
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              2 BT_SCO_If
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x003f  1x 63 bytes
        bInterval               4
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x003f  1x 63 bytes
        bInterval               4
        bMaxBurst               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              3 BT_ISO_If
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x8a  EP 10 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x0a  EP 10 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
        bMaxBurst               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              3 BT_ISO_If
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x8a  EP 10 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x0a  EP 10 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
        bMaxBurst               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           9
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              4 WiFi_If
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x08  EP 8 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x05  EP 5 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x06  EP 6 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x07  EP 7 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x09  EP 9 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval               1
        bMaxBurst               0
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength       0x0016
  bNumDeviceCaps          2
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x0000f11e
      BESL Link Power Management (LPM) Supported
    BESL value      256 us 
    Deep BESL value    61440 us 
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat         180 micro seconds
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)

And this is the pretty consistent, stable iperf performance I get against a wired target trough my Omada EAP245 AP running 802.11ac on 5,180MHz with a 80MHz bandwidth and WPA2-PSK:

iperf3 -c 192.168.130.20
Connecting to host 192.168.130.20, port 5201
[  5] local 192.168.128.131 port 37502 connected to 192.168.130.20 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  55.1 MBytes   462 Mbits/sec    2    535 KBytes       
[  5]   1.00-2.00   sec  57.5 MBytes   482 Mbits/sec    1    430 KBytes       
[  5]   2.00-3.00   sec  52.5 MBytes   440 Mbits/sec    4    170 KBytes       
[  5]   3.00-4.00   sec  42.5 MBytes   357 Mbits/sec    3    161 KBytes       
[  5]   4.00-5.00   sec  43.8 MBytes   367 Mbits/sec    2    239 KBytes       
[  5]   5.00-6.00   sec  56.2 MBytes   472 Mbits/sec    1    274 KBytes       
[  5]   6.00-7.00   sec  51.2 MBytes   430 Mbits/sec    3    182 KBytes       
[  5]   7.00-8.00   sec  52.5 MBytes   440 Mbits/sec    0    339 KBytes       
[  5]   8.00-9.00   sec  56.2 MBytes   472 Mbits/sec    3    170 KBytes       
[  5]   9.00-10.00  sec  45.0 MBytes   377 Mbits/sec    1    274 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   513 MBytes   430 Mbits/sec   20             sender
[  5]   0.00-10.01  sec   509 MBytes   427 Mbits/sec                  receiver

Modulation and encoding details:

freq: 5180
    RX: 396960996 bytes (284877 packets)
    TX: 68096 bytes (434 packets)
    signal: -45 dBm
    rx bitrate: 866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2
    tx bitrate: 780.0 MBit/s VHT-MCS 9 80MHz VHT-NSS 2

    bss flags:  short-slot-time
    dtim period:    2
    beacon int: 40
bcdonadio commented 2 years ago

Ah, that previous run was bidirectional. Here's the unidirectional performance:

iperf3 -c 192.168.130.20 -R
Connecting to host 192.168.130.20, port 5201
Reverse mode, remote host 192.168.130.20 is sending
[  5] local 192.168.128.131 port 34248 connected to 192.168.130.20 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  86.9 MBytes   729 Mbits/sec                  
[  5]   1.00-2.00   sec  89.3 MBytes   749 Mbits/sec                  
[  5]   2.00-3.00   sec  89.7 MBytes   752 Mbits/sec                  
[  5]   3.00-4.00   sec  87.4 MBytes   733 Mbits/sec                  
[  5]   4.00-5.00   sec  87.5 MBytes   734 Mbits/sec                  
[  5]   5.00-6.00   sec  90.8 MBytes   762 Mbits/sec                  
[  5]   6.00-7.00   sec  90.6 MBytes   760 Mbits/sec                  
[  5]   7.00-8.00   sec  91.4 MBytes   767 Mbits/sec                  
[  5]   8.00-9.00   sec  87.8 MBytes   736 Mbits/sec                  
[  5]   9.00-10.00  sec  85.8 MBytes   720 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   890 MBytes   747 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   887 MBytes   744 Mbits/sec                  receiver

Clearly above the 480Mbps of USB2.0. Stock kernel, no modifications and the firmware was already up to date and in the right place. Literally plug and play.

morrownr commented 2 years ago

aslama @leezu @deren @amisix @adriangranados @UnknownProgrammer @coudu

@bcdonadio

Whew you are smoking! Good job with that cf-953ax!

Something just happened here. My working theory for now is that my cf-951ax had something left over from manufacturing that was causing connection issues with one of more usb pins. I have been plugging and unplugging the adapter a lot which may have cleaned the problem. Look at this:

$ iperf3 -c 192.168.1.1
Connecting to host 192.168.1.1, port 5201
[  5] local 192.168.1.185 port 51698 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  71.6 MBytes   601 Mbits/sec    0   1.86 MBytes       
[  5]   1.00-2.00   sec  76.2 MBytes   640 Mbits/sec    0   1.86 MBytes       
[  5]   2.00-3.00   sec  76.2 MBytes   640 Mbits/sec    0   1.86 MBytes       
[  5]   3.00-4.00   sec  77.5 MBytes   650 Mbits/sec    0   1.86 MBytes       
[  5]   4.00-5.00   sec  75.0 MBytes   629 Mbits/sec    0   1.86 MBytes       
[  5]   5.00-6.00   sec  77.5 MBytes   650 Mbits/sec    0   1.86 MBytes       
[  5]   6.00-7.00   sec  76.2 MBytes   640 Mbits/sec    0   1.86 MBytes       
[  5]   7.00-8.00   sec  76.2 MBytes   640 Mbits/sec    0   1.86 MBytes       
[  5]   8.00-9.00   sec  76.2 MBytes   640 Mbits/sec    0   1.86 MBytes       
[  5]   9.00-10.00  sec  75.0 MBytes   629 Mbits/sec    0   1.86 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   758 MBytes   636 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   756 MBytes   634 Mbits/sec                  receiver

WiFi AP: 80211AC, 80 MHz channel width, channel 60 which is an unused DFS channel in my area.

The problem with scanning channels is gone also.

The problem with bluetooth is still there.

Thanks for all of the good info. We need reports from 80211AX capable users and 6 GHz capable users.

Nick

bcdonadio commented 2 years ago

I can try AX tomorrow, I have one AP installed by the pool that does OFDM on both bands. Testing 6GHz will take a little bit longer because I need to disable the kernel's regulatory features. I took a quick look at the code and I think I know what to do, but if you happen to have a cookbook ready I would appreciate it. Fixing the regulatory domain database isn't enough until that version gets widely adopted because the kernel picks up hints from other adapters, other nearby APs and even cellular network beacons.

morrownr commented 2 years ago

I took a quick look at the code and I think I know what to do, but if you happen to have a cookbook ready I would appreciate it.

I would help if I could but my knowledge in that area is not high. If you can test AX tomorrow and 6 GHz wherever able, that would be great. Hopefully we see others rolling in with results also. These adapters and others with the mt7921au chipset that are on the way are not plug and play for average users at this point. Upgrading kernels, firmware and various parts of the many distros is for the technically inclined right now.

adriangranados commented 2 years ago

Fixing the regulatory domain database isn't enough until that version gets widely adopted because the kernel picks up hints from other adapters, other nearby APs and even cellular network beacons.

I don't think the mt7921u driver uses LAR. We managed to enable the 6 GHz channels by manually installing the latest wireless-regdb package. This is on a Raspberry Pi running kernel 5.19.

bcdonadio commented 2 years ago

Fixing the regulatory domain database isn't enough until that version gets widely adopted because the kernel picks up hints from other adapters, other nearby APs and even cellular network beacons.

I don't think the mt7921u driver uses LAR. We managed to enable the 6 GHz channels by manually installing the latest wireless-regdb package. This is on a Raspberry Pi running kernel 5.19.

Awesome, that's really good to know. If that's the case all I need to do is add the actual rule that the law allows into regdb, sign it with my own key and generate a kernel that just has an additional accepted public key in the keyring instead of messing with the logic. I cannot escape the fact that the regdom will be determined to be BR (or restricted to the lowest common denominator) whether I want it or not because of the AP clients, but I can update the rules myself while Seth does not publishes a new revision of the database if LRA does not provide channel info directly.

The regdb wiki on the rule processing logic isn't that encouraging though about the need to have any kind of driver support for cfg80211 to block channels, but I will do the easy way first before digging in too much.

rah66 commented 2 years ago

FCC-ID Comfast CF-951AX Internal foto https://fccid.io/OYR-CF-951AX/Internal-Photos/Internal-Photos-6146617.pdf

morrownr commented 2 years ago

@rah66

I see where the FCC request and approval is for only the 2.4 and 5 GHz bands. Did Comfast make adapters with a chipset where they did not know the capability of the chipset? This is all very fishy.

joshschmelzle commented 2 years ago

I'll leave this here too. https://www.pacermonitor.com/public/case/37901438/COMCAST_CORPORATION_v_SHENZHEN_FOUR_SEAS_GLOBAL_LINK_NETWORK_TECHNOLOGY_CO,_LTD

bjlockie commented 2 years ago

https://www.veralaw.com/?p=1859 Short version: Comcast claimed Comfast is a similar name and infringes on their trademark.

bjlockie commented 2 years ago

I see where the FCC request and approval is for only the 2.4 and 5 GHz bands.

What really bugs me is when ads say 5.8GHz. :-) Pretty much anything made in China.

morrownr commented 2 years ago

https://www.veralaw.com/?p=1859 Short version: Comcast claimed Comfast is a similar name and infringes on their trademark.

That was probably a winnable case on the part of Comfast, but when you are a no-show, you lose.

rah66 commented 2 years ago

@rah66

I see where the FCC request and approval is for only the 2.4 and 5 GHz bands. Did Comfast make adapters with a chipset where they did not know the capability of the chipset? This is all very fishy.

The fact that there is 6E on MT7921AUN is a 100% fact. I wanted to know about Bluetooth - maybe someone understands circuitry and can determine its ability / impossibility to run on this model.

Bad example: https://aliexpress.ru/item/1005004374949551.html

morrownr commented 2 years ago

I wanted to know about Bluetooth

I finally had time yesterday to start testing the Bluetooth problems with my CF-951AX adapter. I have detailed the testing in issue #107 .

bjlockie commented 2 years ago

How many wifi 5 and earlier adapters supported bluetooth?

morrownr commented 2 years ago

How many wifi 5 and earlier adapters supported bluetooth?

Not sure of an exact number but modern chipsets like the rtl8822bu and 8821cu have bt capability. For me, bt is not unusual, just unexpected.

bjlockie commented 2 years ago

The chipsets have Bluetooth but do USB adapters?

morrownr commented 2 years ago

The chipsets have Bluetooth but do USB adapters?

The following link shows an adapter that gives you BT and WiFi. It is based on the rtl8821cu chipset:

https://www.amazon.com/Bluetooth-Adapter-Wireless-External-Receiver/dp/B07YDFZWT8

Warning for anyone that reads this message. I posted the link to explain something. I don't recommend Linux users buy the pictured adapter. My experience while helping users of the 8821cu and 8811cu based adapters leads me to think that some adapters based on these chipsets have faulty internal firmware. This specific adapter is a multi-state adapter so that is one more reason to avoid it.

black-jmyntrn commented 1 year ago

shouldnt all line items have a driver assigned to them?

T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=01 Dev#= 3 Spd=480 MxCh= 0 D: Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0e8d ProdID=7961 Rev= 1.00 S: Manufacturer=MediaTek Inc. S: Product=Wireless_Device S: SerialNumber=000000000 C: #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=100mA A: FirstIf#= 0 IfCount= 3 Cls=e0(wlcon) Sub=01 Prot=01 I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=125us E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms I: If#= 1 Alt= 6 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=83(I) Atr=01(Isoc) MxPS= 63 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 63 Ivl=1ms I: If#= 2 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=8a(I) Atr=03(Int.) MxPS= 64 Ivl=125us E: Ad=0a(O) Atr=03(Int.) MxPS= 64 Ivl=125us I: If#= 2 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=8a(I) Atr=03(Int.) MxPS= 64 Ivl=125us E: Ad=0a(O) Atr=03(Int.) MxPS= 64 Ivl=125us I:* If#= 3 Alt= 0 #EPs= 9 Cls=ff(vend.) Sub=ff Prot=ff Driver=mt7921u E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=07(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=09(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=86(I) Atr=03(Int.) MxPS= 2 Ivl=125us

morrownr commented 1 year ago

Hi @black-jmyntrn

Recommend you start a new issue. This issue is so long most folks will never see it.

You really need to include some information so that we know what you are doing.

What adapter is this? What hardware is the adapter plugged into? What distro and version are you using? What kernel is installed? $ uname -r Are you using managed, master or monitor mode or something else?

black-jmyntrn commented 1 year ago

hi @morrownr ahhh, thanks for the clarity.

Adapter: comfast cf-953ax Hardware in use: Raspberry Pi 4 Distro and Version: OpenWrt SNAPSHOT r21247-2403428c75 / Kernel: 5.15.77 Right now trying to get AP to work, but noticed some lines had no driver. On the other thread you'd mentioned 5.19 is the only one to have AP work.

amisix commented 1 year ago

@black-jmyntrn - We were unable to get the AP to work in OpenWrt also. https://github.com/morrownr/USB-WiFi/issues/110#issuecomment-1309594332 Want to come over to our thread?

copyliu commented 1 year ago

the latest openwrt snapshot included newest 7921 firmware https://github.com/openwrt/mt76/commit/4a27f23fc4f22510db81513680666be7e72ccb61 (newer than linux kernel master repo)

it seems stable then before but bridge mode also crash

morrownr commented 1 year ago

hi @morrownr ahhh, thanks for the clarity.

Adapter: comfast cf-953ax Hardware in use: Raspberry Pi 4 Distro and Version: OpenWrt SNAPSHOT r21247-2403428c75 / Kernel: 5.15.77 Right now trying to get AP to work, but noticed some lines had no driver. On the other thread you'd mentioned 5.19 is the only one to have AP work.

It is true that kernel 5.19 is needed for regular distros to support AP mode but not with OpenWRT. Many of the OpenWRT devs are also Mediatek devs and they use OpenWRT as a downstream testing location. They backported the mt7921u driver for kernel 5.10 so you can use 22.03.x. There is a bug where the firmware does not get loaded when you loaded the kmod-mt7921u package so you either have to also install kmod-mt7921e or manually install the firmware. The Main Menu has a selection that shows how to install or upgrade Mediatek firmware and there is a section on OpenWRT.

morrownr commented 1 year ago

the latest openwrt snapshot included newest 7921 firmware openwrt/mt76@4a27f23 (newer than linux kernel master repo)

it seems stable then before but bridge mode also crash

Interesting. OpenWRT is a downstream testing location so it is normal to see new stuff here before it shows in the kernel.

My own status here: My adapter is a CF-951AX using the mt7921au chipset.

I am using RasPiOS on my Pi4B with my guide that is available on the Main Menu. Since the RasPiOS is using kernel 5.15, I had to compile a new 5.19 kernel as well as several other things like hostapd, wpa_supplicant. I have guides for doing them as well but the guides aren't posted yet. It is a lot of work but the RasPiOS currently needs a lot of upgrades to do WiFi 6 AP mode. I also recently figured out the WiFi 6 settings for hostapd.conf so my Pi4B is now serving up WiFi 6 on 5 GHz. It is quite stable. I will work on WiFi 6e when I have another adapter that can do 6 GHz.

I use OpenWRT on a ZyXEL NBG6817 router. It has 2 usb ports so I plug the adapter into a usb3 port and install the appropriate OpenWRT 22.03 for the ZyXEL. I install the kmod-mt7921u package for the driver and the kmod-mt7921e package for the firmware (that is a bug that has been reported). I have no problem with the adapter in 2.4 or 5 GHz bands but Luci can't do 6 GHz yet so you have to edit /etc/config/wireless. I can't test 6 GHz yet because I do not have another 6 GHz adapter. Something you may have to do is take a trip to France (FR) for 6 GHz to work as things are not totally worked out to support this in several countries.

coudu commented 1 year ago

There is a bug where the firmware does not get loaded when you loaded the kmod-mt7921u package so you either have to also install kmod-mt7921e or manually install the firmware.

If you are on a recent snapshot/compiling from master branch the kmod-mt7921-firmware package is now installed as a dependency of any kmod-mt7921e, kmod-mt7921u or kmod-mt7921s (it's infact a dependency of kmod-mt7921-common which is a dependency of the 3 mt7921 kmods packages).

morrownr commented 1 year ago

If you are on a recent snapshot/compiling from master branch the kmod-mt7921-firmware package is now installed as a dependency of any kmod-mt7921e, kmod-mt7921u or kmod-mt7921s (it's infact a dependency of kmod-mt7921-common which is a dependency of the 3 mt7921 kmods packages).

That is good to hear. Now if we could get the RasPi devs to get the RasPiOS up to speed in several areas, things would be easier as far as WiFi 6 is concerned.

rriski commented 1 year ago

Hi,

Has anyone managed to get CF-953AX running in dual-band mode with OpenWrt? As far as I'm aware the device has two antennas but I'm not sure if it possible to serve an AP on two bands (e.g. 2GHz and 5Ghz or 2GHZ and 6GHz) with the device. I'm able to serve an AP on a single band (2GHz or 5GHz, didn't manage to get 6Ghz working yet) using OpenWrt compiled on this commit running on the NanoPi R5S using kernel 6.1-rc4. Has anyone managed to get a dual-band home network going with this device?

I suspect tri-band AP operation is not possible as there are only two radios?

black-jmyntrn commented 1 year ago

no, when I click add I get an error in luci This is an image

morrownr commented 1 year ago

Hi,

Hi @rriski

Has anyone managed to get CF-953AX running in dual-band mode with OpenWrt? As far as I'm aware the device has two antennas but I'm not sure if it possible to serve an AP on two bands (e.g. 2GHz and 5Ghz or 2GHZ and 6GHz) with the device.

Historically speaking, usb wifi adapters contain one radio and can only work in one band at a time. While it has been possible to establish more than one interface of different types, the interfaces would have to both use the same channel. In other words, dual band as it pertains to adapters and cards means that they are capable of multiple bands but can only operate in one band at any specific time. On the other hand, dual band routers and APs have two fully separate and independent radios, one for each band supported and they truly can operate in multiple bands at the same time.

With that said, in reading some of the wording with patches that are going into mt7921u, I am beginning to ponder whether the mt7921au chipset has some capabilities that we have not seen before, such as what you are talking about. However, those capabilities would appear to not be in the current publicly available firmware and driver so maybe someday. Right now I think we have to treat any adapter with the mt7921au chipset as one radio, one band.

I'm able to serve an AP on a single band (2GHz or 5GHz, didn't manage to get 6Ghz working yet)

Luci cannot handle 6 GHz band yet... or at least in 22.03.x. I haven't tried master. For 6 GHz, you need to revert to...

# nano /etc/config/wireless

... for editing and you need some lines such as:

option     band          '6g'
option     htmode      'HE80'
option     channel     '69'
option     encryption 'sae'

WiFi 6e mandates WPA3 ('sae') so you have no option for anything less and if you specify anything less, it won't work.

Keep us posted on your progress.

morrownr commented 1 year ago

i forgot to mention that you may need to take a trip to France (FR) or Germany (GE) for AP mode to work in many countries right now as there are a lot of legal details in many countries that are just not sorted out yet:

option     country    'FR'
morrownr commented 1 year ago

Hi @black-jmyntrn

no, when I click add I get an error in luci

Hopefully some of what I posted above is of help to you. OpenWRT 22.03.x does a good job with CF-95xAX adapters in WiFi 6 mode, to include using Luci but if you start trying to use WiFi 6e (6 GHz), all bets are off as Luci is simply not ready for it yet. Manual editing via ssl works.

It see both your radios are on channel 36. You might want to move radio 0 to a different channel.

Regards

black-jmyntrn commented 1 year ago

where can I find the 5.19 kernel, all I've found is 5.18, and want to build my own image, just coming up short.

morrownr commented 1 year ago

where can I find the 5.19 kernel, all I've found is 5.18, and want to build my own image, just coming up short.

Is this question for OpenWRT?

black-jmyntrn commented 1 year ago

where can I find the 5.19 kernel, all I've found is 5.18, and want to build my own image, just coming up short.

Is this question for OpenWRT?

that is correct

morrownr commented 1 year ago

Well, the mt7921u driver has been backported for 5.10 (22.03.x) so OpenWRT already has the driver. Install the package.

black-jmyntrn commented 1 year ago

Well, the mt7921u driver has been backported for 5.10 (22.03.x) so OpenWRT already has the driver. Install the package.

but AP not working is why the ask.

this is what i used to get the files per your doc.. cd /lib/firmware;mkdir mediatek; cd /lib/firmware/mediatek ;wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin;wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/mediatek/WIFI_RAM_CODE_MT7961_1.bin;

morrownr commented 1 year ago

this is what i used to get the files per your doc...

I haven't tested grabbing the firmware files with wget. Here is another way:

Install the following package:

kmod-mt7921e

That package actually has the firmware in it. Putting it there was a mistake that has been corrected in master but it is what it is on 23.03.x...so you could delete what you have uploaded and the install above package. Reboot and see what happens. Of course, you have to install kmod-mt7921u also.

Keep in mind that OpenWRT will support WiFi 6 with Luci but not WiFi 6e yet so I recommend you test WiFi 6 and then if you want to try WiFi 6e, you will have to manually edit /etc/config/wireless.

black-jmyntrn commented 1 year ago

I have the below installed and I can connect one device to wifi my note20 but when laptop is connected the interface dies.

define 6e to you? for me wifi 6 in luci is selecting ax mode, band 5, channel 36 and width 80, all i was attempting. 6e would be selecting band 6 which I'm not attempting. do I have that right?

the below is installed properly now. kmod-mt7921-common | 5.10.146+2022-09-06-d7054646-4 kmod-mt7921e | 5.10.146+2022-09-06-d7054646-4 kmod-mt7921u | 5.10.146+2022-09-06-d7054646-4

thats why when you said 5.19 works, I wanted to try it on for size as nothing Ive installed keeps wifi up with two wifi 6 devices try to connect.

`Thu Nov 24 22:16:50 2022 daemon.notice hostapd: Configuration file: /var/run/hostapd-phy1.conf (phy wlan1) --> new PHY
Thu Nov 24 22:16:50 2022 kern.info kernel: [   12.718691] br-lan: port 2(wlan1) entered blocking state
Thu Nov 24 22:16:50 2022 kern.info kernel: [   12.724123] br-lan: port 2(wlan1) entered disabled state
Thu Nov 24 22:16:50 2022 kern.info kernel: [   12.729564] device wlan1 entered promiscuous mode
Thu Nov 24 22:16:50 2022 daemon.notice hostapd: wlan1: interface state UNINITIALIZED->COUNTRY_UPDATE
Thu Nov 24 22:16:50 2022 kern.info kernel: [   12.834565] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
Thu Nov 24 22:16:50 2022 kern.info kernel: [   12.841090] br-lan: port 2(wlan1) entered blocking state
Thu Nov 24 22:16:50 2022 kern.info kernel: [   12.846437] br-lan: port 2(wlan1) entered forwarding state
Thu Nov 24 22:16:50 2022 daemon.notice netifd: bridge 'br-lan' link is up
Thu Nov 24 22:16:50 2022 daemon.notice netifd: Interface 'lan' has link connectivity
Thu Nov 24 22:16:50 2022 daemon.notice hostapd: wlan1: interface state COUNTRY_UPDATE->ENABLED
Thu Nov 24 22:16:50 2022 daemon.notice hostapd: wlan1: AP-ENABLED
Thu Nov 24 22:16:50 2022 daemon.notice netifd: radio1 (3057): Failed to create interface wlan0
Thu Nov 24 22:16:50 2022 daemon.notice hostapd: Configuration file: /var/run/hostapd-phy0.conf (phy wlan0) --> new PHY
Thu Nov 24 22:16:50 2022 kern.err kernel: [   12.881882] ieee80211 phy1: brcmf_cfg80211_change_iface: iface validation failed: err=-16
Thu Nov 24 22:16:50 2022 kern.err kernel: [   12.890588] ieee80211 phy1: brcmf_cfg80211_change_iface: iface validation failed: err=-16
Thu Nov 24 22:16:50 2022 kern.err kernel: [   13.002144] ieee80211 phy1: brcmf_cfg80211_change_iface: iface validation failed: err=-16
Thu Nov 24 22:19:29 2022 kern.err kernel: [   13.114194] ieee80211 phy1: brcmf_cfg80211_change_iface: iface validation failed: err=-16
Thu Nov 24 22:19:29 2022 kern.err kernel: [   13.226313] ieee80211 phy1: brcmf_cfg80211_change_iface: iface validation failed: err=-16
Thu Nov 24 22:19:29 2022 kern.err kernel: [   13.338401] ieee80211 phy1: brcmf_cfg80211_change_iface: iface validation failed: err=-16
Thu Nov 24 22:19:29 2022 kern.err kernel: [   13.450187] ieee80211 phy1: brcmf_cfg80211_change_iface: iface validation failed: err=-16
Thu Nov 24 22:19:29 2022 kern.err kernel: [   13.562160] ieee80211 phy1: brcmf_cfg80211_change_iface: iface validation failed: err=-16
Thu Nov 24 22:19:29 2022 kern.err kernel: [   13.674009] ieee80211 phy1: brcmf_cfg80211_change_iface: iface validation failed: err=-16
Thu Nov 24 22:19:29 2022 kern.err kernel: [   13.782581] ieee80211 phy1: brcmf_cfg80211_change_iface: iface validation failed: err=-16
Thu Nov 24 22:19:30 2022 daemon.notice netifd: Wireless device 'radio0' is now up
Thu Nov 24 22:19:30 2022 daemon.notice netifd: Network device 'wlan1' link is up
Thu Nov 24 22:19:30 2022 daemon.err hostapd: nl80211: Could not configure driver mode
Thu Nov 24 22:19:30 2022 daemon.notice hostapd: nl80211: deinit ifname=wlan0 disabled_11b_rates=0
Thu Nov 24 22:19:30 2022 daemon.err hostapd: nl80211 driver initialization failed.
Thu Nov 24 22:19:30 2022 daemon.notice hostapd: wlan0: CTRL-EVENT-TERMINATING
Thu Nov 24 22:19:30 2022 daemon.err hostapd: hostapd_free_hapd_data: Interface wlan0 wasn't started
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057): Command failed: ubus call hostapd config_add {"iface":"wlan0", "config":"/var/run/hostapd-phy0.conf"} (Invalid argument)
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057): Usage: ubus [<options>] <command> [arguments...]
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057): Options:
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):  -s <socket>:     Set the unix domain socket to connect to
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):  -t <timeout>:        Set the timeout (in seconds) for a command to complete
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):  -S:          Use simplified output (for scripts)
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):  -v:          More verbose output
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):  -m <type>:       (for monitor): include a specific message type
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):           (can be used more than once)
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):  -M <r|t>     (for monitor): only capture received or transmitted traffic
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057): Commands:
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):  - list [<path>]          List objects
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):  - call <path> <method> [<message>]   Call an object method
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):  - subscribe <path> [<path>...]   Subscribe to object(s) notifications
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):  - listen [<path>...]         Listen for events
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):  - send <type> [<message>]        Send an event
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):  - wait_for <object> [<object>...]    Wait for multiple objects to appear on ubus
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):  - monitor                Monitor ubus traffic
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057):
Thu Nov 24 22:19:30 2022 daemon.notice netifd: radio1 (3057): Device setup failed: HOSTAPD_START_FAILED
Thu Nov 24 22:19:30 2022 daemon.notice netifd: Wireless device 'radio1' set retry=0
Thu Nov 24 22:19:30 2022 daemon.crit netifd: Wireless device 'radio1' setup failed, retry=0
Thu Nov 24 22:19:30 2022 kern.info kernel: [   14.548918] ax88179_178a 2-2:1.0 eth1: ax88179 - Link status is: 1
Thu Nov 24 22:19:30 2022 daemon.notice netifd: Wireless device 'radio1' is now down

wireless.radio1=wifi-device
wireless.radio1.type='mac80211'
wireless.radio1.path='scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.3'
wireless.radio1.band='5g'
wireless.radio1.country='FR'
wireless.radio1.cell_density='0'
wireless.radio1.channel='36'
wireless.radio1.ldpc='0'
wireless.radio1.tx_stbc='0'
wireless.radio1.rx_stbc='0'
wireless.radio1.max_amsdu='0'
wireless.radio1.htmode='VHT80'
wireless.default_radio1=wifi-iface
wireless.default_radio1.device='radio1'
wireless.default_radio1.network='lan'
wireless.default_radio1.mode='ap'
wireless.default_radio1.encryption='sae'
wireless.default_radio1.key='*'
wireless.default_radio1.ssid='black.jmyntrn.com6'`
morrownr commented 1 year ago

for me wifi 6 in luci is selecting ax mode, band 5, channel 36 and width 80

Same here. Selecting FR with WiFi 6 is not something I have tested or looked up. When I and other talk about taking a trip to FR, we are speaking only of WiFi 6e which is band 6, not 5.

I have not seen the need for the following lines with WiFi 6 or WiFi 6e.

wireless.radio1.ldpc='0' wireless.radio1.tx_stbc='0' wireless.radio1.rx_stbc='0' wireless.radio1.max_amsdu='0'

This is one of those situations where it might be best to burn fresh and save no settings. I was looking back but did not see what your hardware setup is. Is this a router?

black-jmyntrn commented 1 year ago

for me wifi 6 in luci is selecting ax mode, band 5, channel 36 and width 80

Same here. Selecting FR with WiFi 6 is not something I have tested or looked up. When I and other talk about taking a trip to FR, we are speaking only of WiFi 6e which is band 6, not 5.

I have not seen the need for the following lines with WiFi 6 or WiFi 6e.

wireless.radio1.ldpc='0' wireless.radio1.tx_stbc='0' wireless.radio1.rx_stbc='0' wireless.radio1.max_amsdu='0'

This is one of those situations where it might be best to burn fresh and save no settings. I was looking back but did not see what your hardware setup is. Is this a router?

this is on raspberry pi 4

amisix commented 1 year ago

@morrownr The settings below were necessary for me to get past multiple errors I experienced in OpenWrt on my Raspberry Pi 4B. I addressed them in Issue 110.

wireless.radio1.ldpc='0' wireless.radio1.tx_stbc='0' wireless.radio1.rx_stbc='0' wireless.radio1.max_amsdu='0'

morrownr commented 1 year ago

@amisix

Got it. The adventure continues with WiFi 6 and 6e.

FWIW: I was looking at the first Mediatek pull request for kernel 6.2 that came across this morning. It contains a lot of work and is ongoing.

Here in the USB WiFi niche, the comparison of the quality of Linux drivers are this point is astounding. I tested the Realtek driver for the 2nd gen Realtek rtl8832bu chipset yesterday. The driver totally destabilized my dev box and I was never able to get any functionality out of the adapter. Looking at logs was scary.

Linux users should totally avoid Realtek's WiFi 6 USB chipsets as the Linux support is so bad it is unexplainable. It is like adding the code for WiFi 6 support has taken the drivers off a cliff. I think I need to add additional warnings around here.

amisix commented 1 year ago

@morrownr I've paused working on my OpenWrt image because I encountered the same errors on 22.03.1 and 22.03.2 and couldn't ever get the card to initialize. Hoping as things mature these issues will get steadily resolved.

Mediatek is on point, that's great to hear.

Why does Realtek continue to shoot themselves in the foot? Clearly they don't care much about the linux environment and just want to sell cheapo Windows adapters to the unwashed masses, Destabilizing the box is bad form.

It looks like the choice is clear - want a functional AP in linux? Go Mediatek and don't look back, Intel AX200, AX201 & AX210 don't support AP mode and getting a Realtek adapter to even function sounds like an exercise in futility.

bjlockie commented 1 year ago

Why doesn't Intel support APs? They've had Linux drivers long enough.

amisix commented 1 year ago

I've been able to find a bit of info on it here. It looks like LAR (Location-Aware Regulatory) is a contributing factor. There's loads of people complaining about it. Changing the regulatory domain does not resolve the issue.

Since 2019 most Intel devices will no longer provide AP services on the 5 GHz band, due to the firmware mistakenly leaving the Location-Aware Regulatory (LAR) feature enabled even in AP mode

Apparently with the special country code 00 (global), all usable frequencies in the 5Ghz band will have the no-ir (no-initiating-radiation) flag set, which will prevent hostapd from using them. You will need to have wireless-regdb installed and have your country code set to make frequencies allowed in your country available for hostapd.

Note that recent Intel devices have a Location-Aware Regulatory (LAR) feature, which ignores the userspace regulatory database and instead deduces the regulatory region by listening to other nearby access points. This means the devices will not transmit on any 5 GHz frequencies until they have first seen other access points on the 5 GHz frequency bands, preventing any 5 GHz transmission at all in many cases. Older kernels had an option to disable this which was removed in 2019 due to it causing the firmware to crash. Since this removal, Intel cards supporting LAR can no longer be used as access points in the 5 GHz band.

Source: https://wiki.archlinux.org/title/software_access_point#Cannot_start_AP_mode_in_5_GHz_band

Also here: https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi

AP mode on 2.4GHz (on devices driven by iwlmvm, note no 5GHz AP support due to LAR)

black-jmyntrn commented 1 year ago

for me wifi 6 in luci is selecting ax mode, band 5, channel 36 and width 80

Same here. Selecting FR with WiFi 6 is not something I have tested or looked up. When I and other talk about taking a trip to FR, we are speaking only of WiFi 6e which is band 6, not 5. I have not seen the need for the following lines with WiFi 6 or WiFi 6e. wireless.radio1.ldpc='0' wireless.radio1.tx_stbc='0' wireless.radio1.rx_stbc='0' wireless.radio1.max_amsdu='0' This is one of those situations where it might be best to burn fresh and save no settings. I was looking back but did not see what your hardware setup is. Is this a router?

this is on raspberry pi 4

@morrownr where do I obtain the 5.19 kernel to compile openwrt for raspberry pi 4? many thanks! after you mentioned all works in 5.19 ive been trying to track it down