Search Linux Wireless

Netgear A6210 with mt76x2u driver issues?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Sorry for sending this twice but I got an email rejection notice as
the original email had snippets of html. I am resending this as pure
plain text. Original email continues below.

I apologize for cold emailing you but I have been encountering some
issues running a Netgear A6210 USB WiFi dongle with Ubuntu 18.04.05
with kernel v5.4.

Recently, due to network issues, I tried to use this USB adapter to
attempt to be both client to a WiFi and also act as an access point to
a bunch of devices.

Running lsusb -t shows the following.
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/7p, 5000M
    |__ Port 3: Dev 2, If 0, Class=Vendor Specific Class, Driver=mt76x2u, 5000M
    |__ Port 4: Dev 3, If 0, Class=Video, Driver=uvcvideo, 5000M
    |__ Port 4: Dev 3, If 3, Class=Audio, Driver=snd-usb-audio, 5000M
    |__ Port 4: Dev 3, If 1, Class=Video, Driver=uvcvideo, 5000M
    |__ Port 4: Dev 3, If 2, Class=Audio, Driver=snd-usb-audio, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 480M
    |__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 4, If 0, Class=Human Interface Device,
Driver=usbhid, 12M
        |__ Port 1: Dev 4, If 1, Class=Human Interface Device,
Driver=usbhid, 12M
        |__ Port 3: Dev 5, If 0, Class=Human Interface Device,
Driver=usbhid, 1.5M
        |__ Port 3: Dev 5, If 1, Class=Human Interface Device,
Driver=usbhid, 1.5M
        |__ Port 4: Dev 6, If 2, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 4: Dev 6, If 0, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 4: Dev 6, If 3, Class=Human Interface Device,
Driver=usbhid, 12M
        |__ Port 4: Dev 6, If 1, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 2: Dev 2, If 2, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 2: Dev 2, If 0, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 2: Dev 2, If 3, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 2: Dev 2, If 1, Class=Audio, Driver=snd-usb-audio, 12M

The iw list of the Netgear A6210 USB adapter shows the following.

    Wiphy phy0
    max # scan SSIDs: 4
    max scan IEs length: 2243 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.
    Supported Ciphers:
        * WEP40 (00-0f-ac:1)
        * WEP104 (00-0f-ac:5)
        * TKIP (00-0f-ac:2)
        * CCMP-128 (00-0f-ac:4)
        * CCMP-256 (00-0f-ac:10)
        * GCMP-128 (00-0f-ac:8)
        * GCMP-256 (00-0f-ac:9)
        * 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 0x3 RX 0x3
    Configured Antennas: TX 0x3 RX 0x3
    Supported interface modes:
         * IBSS
         * managed
         * AP
         * AP/VLAN
         * monitor
         * mesh point
    Band 1:
        Capabilities: 0x1ff
            RX LDPC
            HT20/HT40
            SM Power Save disabled
            RX Greenfield
            RX HT20 SGI
            RX HT40 SGI
            TX STBC
            RX STBC 1-stream
            Max AMSDU length: 3839 bytes
            No DSSS/CCK HT40
        Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
        Minimum RX AMPDU time spacing: 4 usec (0x05)
        HT TX/RX MCS rate indexes supported: 0-15
        Bitrates (non-HT):
            * 1.0 Mbps (short preamble supported)
            * 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] (18.0 dBm)
            * 2417 MHz [2] (18.0 dBm)
            * 2422 MHz [3] (18.0 dBm)
            * 2427 MHz [4] (18.0 dBm)
            * 2432 MHz [5] (18.0 dBm)
            * 2437 MHz [6] (18.0 dBm)
            * 2442 MHz [7] (18.0 dBm)
            * 2447 MHz [8] (18.0 dBm)
            * 2452 MHz [9] (18.0 dBm)
            * 2457 MHz [10] (18.0 dBm)
            * 2462 MHz [11] (18.0 dBm)
            * 2467 MHz [12] (18.0 dBm) (no IR)
            * 2472 MHz [13] (18.0 dBm) (no IR)
            * 2484 MHz [14] (18.0 dBm) (no IR)
    Band 2:
        Capabilities: 0x1ff
            RX LDPC
            HT20/HT40
            SM Power Save disabled
            RX Greenfield
            RX HT20 SGI
            RX HT40 SGI
            TX STBC
            RX STBC 1-stream
            Max AMSDU length: 3839 bytes
            No DSSS/CCK HT40
        Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
        Minimum RX AMPDU time spacing: 4 usec (0x05)
        HT TX/RX MCS rate indexes supported: 0-15
        VHT Capabilities (0x318001b0):
            Max MPDU length: 3895
            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: not supported
            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: not supported
            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] (18.0 dBm) (no IR)
            * 5200 MHz [40] (18.0 dBm) (no IR)
            * 5220 MHz [44] (18.0 dBm) (no IR)
            * 5240 MHz [48] (18.0 dBm) (no IR)
            * 5260 MHz [52] (18.0 dBm) (no IR, radar detection)
            * 5280 MHz [56] (18.0 dBm) (no IR, radar detection)
            * 5300 MHz [60] (18.0 dBm) (no IR, radar detection)
            * 5320 MHz [64] (18.0 dBm) (no IR, radar detection)
            * 5500 MHz [100] (18.0 dBm) (no IR, radar detection)
            * 5520 MHz [104] (18.0 dBm) (no IR, radar detection)
            * 5540 MHz [108] (18.0 dBm) (no IR, radar detection)
            * 5560 MHz [112] (18.0 dBm) (no IR, radar detection)
            * 5580 MHz [116] (18.0 dBm) (no IR, radar detection)
            * 5600 MHz [120] (18.0 dBm) (no IR, radar detection)
            * 5620 MHz [124] (18.0 dBm) (no IR, radar detection)
            * 5640 MHz [128] (18.0 dBm) (no IR, radar detection)
            * 5660 MHz [132] (18.0 dBm) (no IR, radar detection)
            * 5680 MHz [136] (18.0 dBm) (no IR, radar detection)
            * 5700 MHz [140] (18.0 dBm) (no IR, radar detection)
            * 5745 MHz [149] (18.0 dBm) (no IR)
            * 5765 MHz [153] (18.0 dBm) (no IR)
            * 5785 MHz [157] (18.0 dBm) (no IR)
            * 5805 MHz [161] (18.0 dBm) (no IR)
            * 5825 MHz [165] (18.0 dBm) (no IR)
    Supported commands:
         * new_interface
         * set_interface
         * new_key
         * start_ap
         * new_station
         * new_mpath
         * set_mesh_config
         * set_bss
         * authenticate
         * associate
         * deauthenticate
         * disassociate
         * join_ibss
         * join_mesh
         * 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
         * connect
         * disconnect
         * set_qos_map
         * set_multicast_to_unicast
    Supported TX frame types:
         * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90
0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90
0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0
0xb0 0xc0 0xd0 0xe0 0xf0
         * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90
0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80
0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80
0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90
0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80
0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
    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):
         * AP/VLAN
         * monitor
    valid interface combinations:
         * #{ IBSS } <= 1, #{ managed, AP, mesh point } <= 2,
           total <= 2, #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 low priority scan.
    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
    Device supports active monitor (which will ACK incoming frames)
    Device supports configuring vdev MAC-addr on create.
    Device supports VHT-IBSS.

Looking at the lines
valid interface combinations:
     * #{ IBSS } <= 1, #{ managed, AP, mesh point } <= 2,
       total <= 2, #channels <= 1, STA/AP BI must match

I assumed it should be able to do what I wanted, since I was able to
do this on my laptop with a builtin Intel WiFi adapter before.

Creating the 2 interfaces for the Netgear A6210 was not a problem.
I simply did this.
iw phy phy0 interface add sta0 type managed
iw phy phy0 interface add ap0 type __ap

wpa_supplicant.conf is very generic.

    # Giving configuration update rights to wpa_cli
    ctrl_interface=/run/wpa_supplicant
    ctrl_interface_group=wifi
    update_config=1

    # AP scanning
    ap_scan=1

    # ISO/IEC alpha2 country code in which the device is operating
    country=GB

    # network section generated by wpa_passphrase
    network={
        ssid="Test"
        psk="testtest"
    }

So with the above configurations, I then attempt to connect with the 2 commands.

    wpa_supplicant -i sta0 -c ./test.conf
    create_ap ap0 sta0 internal password

Everything looks like it is fine. The connection to the Test WiFi
network is fine and I can connect to the internet. The create_ap
command works fine, it shows that the AP is created and enabled.

wpa_supplicant output

    # wpa_supplicant -i sta0 -c ./example.conf
    Successfully initialized wpa_supplicant
    sta0: SME: Trying to authenticate with fc:ec:da:8a:84:de
(SSID='Test' freq=2412 MHz)
    sta0: Trying to associate with fc:ec:da:8a:84:de (SSID='Test' freq=2412 MHz)
    sta0: Associated with fc:ec:da:8a:84:de
    sta0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
    sta0: WPA: Key negotiation completed with fc:ec:da:8a:84:de
[PTK=CCMP GTK=CCMP]
    sta0: CTRL-EVENT-CONNECTED - Connection to fc:ec:da:8a:84:de
completed [id=0 id_str=]

create_ap output

    # create_ap ap0 sta0 internal password Config dir:
/tmp/create_ap.ap0.conf.EmWaK62U
    PID: 5027
    command failed: Operation not supported (-95)
    Creating a virtual WiFi interface... ap1 created.
    Sharing Internet using method: nat
    hostapd command-line interface: hostapd_cli -p
/tmp/create_ap.ap0.conf.EmWaK62U/hostapd_ctrl
    Configuration file: /tmp/create_ap.ap0.conf.EmWaK62U/hostapd.conf
    Using interface ap1 with hwaddr 78:d2:94:4a:e0:4c and ssid "internal"
    ap1: interface state UNINITIALIZED->ENABLED
    ap1: AP-ENABLED

So I then try to connect my devices onto "internal" and none of my
devices can connect.

If I did the reverse, which is to create_ap first, then connect to the
wpa_supplicant, the following happens.

create_ap

    # create_ap ap0 sta0 internal password Config dir:
/tmp/create_ap.ap0.conf.BWI2H1Dx
    PID: 8258
    command failed: Operation not supported (-95)
    Creating a virtual WiFi interface... ap1 created.
    Sharing Internet using method: nat
    hostapd command-line interface: hostapd_cli -p
/tmp/create_ap.ap0.conf.BWI2H1Dx/hostapd_ctrl
    Configuration file: /tmp/create_ap.ap0.conf.BWI2H1Dx/hostapd.conf
    Using interface ap1 with hwaddr 78:d2:94:4a:e0:4c and ssid "internal"
    ap1: interface state UNINITIALIZED->ENABLED
    ap1: AP-ENABLED
    ap1: STA 98:01:a7:48:0f:d8 IEEE 802.11: authenticated
    ap1: STA 98:01:a7:48:0f:d8 IEEE 802.11: associated (aid 1)
    ap1: AP-STA-CONNECTED 98:01:a7:48:0f:d8
    ap1: STA 98:01:a7:48:0f:d8 RADIUS: starting accounting session
57A210FFA9AEB7DF
    ap1: STA 98:01:a7:48:0f:d8 WPA: pairwise key handshake completed (RSN)

As you can see, create_ap not only is created, but I manage to connect
a tablet onto the access point.
If I now try to run wpa_supplicant, this now happens.

    # wpa_supplicant -i sta0 -c ./example.conf
    Successfully initialized wpa_supplicant
    sta0: SME: Trying to authenticate with fc:ec:da:8a:84:de
(SSID='Test' freq=2412 MHz)
    sta0: SME: Trying to authenticate with fc:ec:da:8a:84:de
(SSID='Test' freq=2412 MHz)
    sta0: SME: Trying to authenticate with fc:ec:da:8a:84:de
(SSID='Test' freq=2412 MHz)
    sta0: SME: Trying to authenticate with fc:ec:da:8a:84:de
(SSID='Test' freq=2412 MHz)
    sta0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="Test"
auth_failures=1 duration=10 reason=CONN_FAILED
    sta0: CTRL-EVENT-SSID-REENABLED id=0 ssid="Test"
    sta0: SME: Trying to authenticate with fc:ec:da:8a:84:de
(SSID='Test' freq=2412 MHz)
    sta0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="Test"
auth_failures=2 duration=23 reason=CONN_FAILED
    sta0: CTRL-EVENT-SSID-REENABLED id=0 ssid="Test"
    sta0: SME: Trying to authenticate with fc:ec:da:8a:84:de
(SSID='Test' freq=2412 MHz)
    sta0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="Test"
auth_failures=3 duration=46 reason=CONN_FAILED

This will go on forever never being able to authenticate.

Furthermore, there is a case where I can crash the driver.
To do that, what I do is I run wpa_supplicant first. Immediately after
I see it has initialized wpa_supplicant and is trying to authenticate,
I immediately run create_ap on another terminal window. Create_ap will
finish first usually and be able to start the ap. But the wireless
network will not be running. Checking dmesg will show this.

    [ 1692.699658] wpa_supplicant  D    0  2613   2612 0x00004000
    [ 1692.699664] Call Trace:
    [ 1692.699673]  __schedule+0x292/0x710
    [ 1692.699681]  ? work_busy+0x90/0x90
    [ 1692.699686]  schedule+0x33/0xa0
    [ 1692.699693]  schedule_timeout+0x1d3/0x320
    [ 1692.699700]  ? ttwu_do_activate+0x5a/0x70
    [ 1692.699707]  ? work_busy+0x90/0x90
    [ 1692.699713]  wait_for_completion+0xba/0x140
    [ 1692.699718]  ? wake_up_q+0x80/0x80
    [ 1692.699726]  __flush_work+0x18a/0x1c0
    [ 1692.699734]  ? worker_detach_from_pool+0xb0/0xb0
    [ 1692.699740]  __cancel_work_timer+0x136/0x1b0
    [ 1692.699746]  ? schedule_preempt_disabled+0xe/0x10
    [ 1692.699754]  ? hrtimer_try_to_cancel+0x2a/0x110
    [ 1692.699760]  cancel_work_sync+0x10/0x20
    [ 1692.699769]  mt76x02u_stop_pre_tbtt_timer+0x2a/0x40 [mt76x02_usb]
    [ 1692.699777]  mt76x02u_pre_tbtt_enable+0x23/0x40 [mt76x02_usb]
    [ 1692.699791]  mt76x02_mac_set_beacon_enable+0x33/0x2c0 [mt76x02_lib]
    [ 1692.699804]  mt76x02_bss_info_changed+0x107/0x110 [mt76x02_lib]
    [ 1692.699872]  ieee80211_bss_info_change_notify+0xab/0x190 [mac80211]
    [ 1692.699936]  ieee80211_offchannel_stop_vifs+0x175/0x1b0 [mac80211]
    [ 1692.699998]  __ieee80211_start_scan+0x346/0x750 [mac80211]
    [ 1692.700061]  ieee80211_request_scan+0x30/0x50 [mac80211]
    [ 1692.700129]  ieee80211_scan+0x69/0x90 [mac80211]
    [ 1692.700204]  nl80211_trigger_scan+0x5cd/0x740 [cfg80211]
    [ 1692.700215]  genl_family_rcv_msg+0x21c/0x490
    [ 1692.700224]  ? free_one_page+0xbc/0x480
    [ 1692.700233]  genl_rcv_msg+0x4c/0x90
    [ 1692.700239]  ? genl_family_rcv_msg+0x490/0x490
    [ 1692.700247]  netlink_rcv_skb+0x51/0x120
    [ 1692.700254]  genl_rcv+0x28/0x40
    [ 1692.700260]  netlink_unicast+0x1a4/0x250
    [ 1692.700268]  netlink_sendmsg+0x2eb/0x3f0
    [ 1692.700277]  sock_sendmsg+0x63/0x70
    [ 1692.700283]  ____sys_sendmsg+0x200/0x280
    [ 1692.700291]  ___sys_sendmsg+0x88/0xd0
    [ 1692.700297]  ? sock_do_ioctl+0x4d/0x150
    [ 1692.700304]  ? __check_object_size+0x4d/0x1b0
    [ 1692.700310]  ? sock_ioctl+0x34f/0x3c0
    [ 1692.700317]  ? __sys_recvfrom+0xe9/0x160
    [ 1692.700325]  __sys_sendmsg+0x63/0xa0
    [ 1692.700330]  ? __sys_sendmsg+0x63/0xa0
    [ 1692.700339]  __x64_sys_sendmsg+0x1f/0x30
    [ 1692.700347]  do_syscall_64+0x57/0x190
    [ 1692.700355]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    [ 1692.700362] RIP: 0033:0x7f7020b67b94
    [ 1692.700377] Code: Bad RIP value.
    [ 1692.700382] RSP: 002b:00007ffc2f22d978 EFLAGS: 00000246
ORIG_RAX: 000000000000002e
    [ 1692.700389] RAX: ffffffffffffffda RBX: 000055f6ab3c29f0 RCX:
00007f7020b67b94
    [ 1692.700393] RDX: 0000000000000000 RSI: 00007ffc2f22d9b0 RDI:
0000000000000005
    [ 1692.700398] RBP: 000055f6ab411700 R08: 0000000000000000 R09:
0000000000000000
    [ 1692.700402] R10: 000055f6ab3c0010 R11: 0000000000000246 R12:
000055f6ab3c2900
    [ 1692.700406] R13: 00007ffc2f22d9b0 R14: 0000000000000000 R15:
000055f6ab3c2d48

So I'm sort of arriving at a conclusion that for some reason, this
Netgear A6210 is not able to create both an access point and connect
to a WiFi network at the same time. Yet iw list suggests that the
driver can. Is there something I'm misunderstanding?

Or am I doing something incorrectly? If I am, please do point it out.

Lastly, if there is any information missing and you need, please feel
free to ask and I will do my best to provide it, or reproduce the
issue and provide the information you need.


Best regards,
Chris

ps. Apologies for resending this. I got a rejection notice for one of
the recipients because it contained some html.



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux