{"id":13587694,"url":"https://github.com/morrownr/7612u","last_synced_at":"2025-04-10T19:05:15.762Z","repository":{"id":61768697,"uuid":"336986748","full_name":"morrownr/7612u","owner":"morrownr","description":"Linux Support for USB WiFi Adapters that are based on the MT7612U Chipset","archived":false,"fork":false,"pushed_at":"2023-12-21T16:19:15.000Z","size":190,"stargazers_count":53,"open_issues_count":15,"forks_count":9,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-02-13T21:55:01.308Z","etag":null,"topics":["linux","mt7612u","usb-wifi-adapters"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/morrownr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-02-08T06:56:13.000Z","updated_at":"2024-02-13T21:55:03.404Z","dependencies_parsed_at":"2023-11-11T02:25:46.229Z","dependency_job_id":"1b8281f6-19bb-4638-b83a-e708e131c751","html_url":"https://github.com/morrownr/7612u","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morrownr%2F7612u","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morrownr%2F7612u/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morrownr%2F7612u/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morrownr%2F7612u/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/morrownr","download_url":"https://codeload.github.com/morrownr/7612u/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247740826,"owners_count":20988275,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","mt7612u","usb-wifi-adapters"],"created_at":"2024-08-01T15:06:19.311Z","updated_at":"2025-04-07T22:31:29.334Z","avatar_url":"https://github.com/morrownr.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"-----\n\n##### [Click for USB WiFi Adapter Information and Links for Linux](https://github.com/morrownr/USB-WiFi)\n\n-----\n\n### 7612u :rocket:\n\n### Linux Support for USB WiFi Adapters that are based on the MT7612U chipset.\n\nUSB WiFi adapters based on the mt7612u chipset have been supported\nin-kernel since Linux kernel v4.19 (2018), therefore, there is no need\nto install a driver if using a modern release of Ubuntu, Raspberry Pi\nOS, Linux Mint, Kali, Fedora or Manjaro. (and others)\n\nThe MT76 series of drivers support managed mode, master mode and monitor\nmodes in accordance with current Linux Wireless standards. Numerous\nadditional capabilities, including WPA3, are supported as well. \n\n-----\n\n### Driver information\n\nFor Linux users that like to work on driver code, here is the location\nof the MT76 driver in the Linux kernel repo:\n\n[MT76](https://github.com/torvalds/linux/tree/master/drivers/net/wireless/mediatek/mt76)\n\nIf you want to report a bug or submit a fix:\n\n[Reporting bugs and submitting fixes](https://wireless.wiki.kernel.org/en/users/documentation/reporting_bugs)\n\nIf you want to see the Linux Wireless Mediatek team site:\n\n[Linux Wireless Mediatek](https://wireless.wiki.kernel.org/en/users/drivers/mediatek)\n\n-----\n\n### Setting up an access point\n\nThe below document provides instructions for setting up an Access Point\nusing a Raspberry Pi 4B with the Raspberry Pi OS, `hostapd` and a USB\nWiFi adapter based on the mt7612u chipset.\n\n[Bridged_Wireless_Access_Point.md](https://github.com/morrownr/7612u/blob/main/Bridged_Wireless_Access_Point.md)\n\nThe adapter used in the above documents is an [Alfa AWUS036ACM](https://github.com/morrownr/USB-WiFi).\n\nThe Alfa AWUS036ACM works very well with the Raspberry Pi hardware. I\nhave tested the Alfa AWUS036ACM with many different computer systems and\nLinux distros. In my opinion, it is an outstanding USB WiFi adapter.\n\n[ALFA Network Linux support for MT7612U based products](https://docs.alfa.com.tw/Support/Linux/MT7612U/)\n\n-----\n\n### OpenWRT\n\nDriver package: kmod-mt76x2u\n\nNote: If your router has a USB port and supports OpenWRT, you can use\nadapters based on the mt7612u to add another 2.4 GHz or 5 GHz network.\nIt works well.\n\n-----\n\n### Known Issues\n\nKnown Issue 1. If your mt7612u based adapter is built with an LED, the\nLED does not come on automatically when the system is turned on. In\nlooking at the source code, it appears this behavior is intentional and\nI understand that because one of the first things I do is disable the\nLED, if possible, when I install a new adapter. There is a way to turn\nthe LED on if you so desire.\n\nTo turn on the LED, please follow instructions below: (does not work\nwith Secure Boot)\n\nStep 1: Open Terminal (Ctrl + Alt + t)\n\nStep 2: Change to root user\n\n```\n$ sudo -i\n```\n\nStep 3: Run both of the following commands\n\n```\nPHY_PATH=$(ls /sys/kernel/debug/ieee80211/phy*/mt76 -d)\necho 0x770 \u003e ${PHY_PATH}/regidx\n```\nStep 4: Run one of the following commands\n\n```\n# echo 0x800000 \u003e ${PHY_PATH}/regval # Turn LED ON\n# echo 0x820000 \u003e ${PHY_PATH}/regval # Turn LED OFF\n# echo 0x840000 \u003e ${PHY_PATH}/regval # Make LED BLINK\n```\n\nStep 5: Run:\n\n```\nexit\n```\n\nThe above can be automated. The following is one way to do it with\nRaspberry Pi OS and Ubuntu:\n\nThis method uses `/etc/rc.local`\n\nOpen Terminal (Ctrl + Alt + t)\n\nThis method is valid for many distros, even systemd-based distros. In\norder for this method to work, you must grant execute permissions to\n/etc/rc.local as follows:\n\n```\nsudo chmod +x /etc/rc.local\n```\n\nEdit /etc/rc.local :\n\n```\nsudo nano /etc/rc.local\n```\n\nadd before `exit 0`:\n\n```\n# Make LED BLINK\ncd /sys/kernel/debug/ieee80211/phy0/mt76\necho 0x770 \u003e regidx\necho 0x840000 \u003e regval\n```\n\nSave the file: Ctrl + x, y, Enter\n\n```\nsudo reboot\n```\n\n-----\n\nKnown Issue 2. When running in 5 GHz AP mode, some users have reported\nthe need to use the following parameter to disable Scatter-Gather.\n\nEdit: 2022-03-16 It appears this issue is specific to computers that use\nthe VL805 for USB3 support. The RasPi4B is likely the most popular\nsystem that uses the VL805. A [patch](https://github.com/raspberrypi/linux/commit/a538fd26f82b101cb6fb963042f3242768e628d4)\nwas recently merged that hopefully takes care of this issue.\n\nThe mt7612u driver currently supports one module parameter -\ndisable_usb_sg\n\nThis parameter is used to turn USB Scatter-Gather support on or off.\n\nInformation about the Scatter-Gather module parameter:\n\nBackground: Scatter and Gather (Vectored I/O) is a concept that was\nprimarily used in hard disks and it enhances large I/O request\nperformance.\n\nProblem reports seem to be limited to situations where the user is\nrunning an AP with a USB3 capable adapter in a USB3 port while operating\non the 5Ghz band. Symtoms include dramatically reduced throughput or\ncrashing if using two adapters. If you experience either of these\nproblems, try disable_usb_sg=1.\n\nMethod 1:\n\nNote: This is the quick way to set the paramter:\n\nOpen a terminal (Ctrl+Alt+t)\n\n```\nsudo -i\necho \"options mt76_usb disable_usb_sg=1\" \u003e\u003e /etc/modprobe.d/mt76_usb.conf\nexit\nsudo reboot\n```\n\nMethod 2:\n\nOpen a terminal (Ctrl + Alt + t)\n\n```\nsudo nano /etc/modprobe.d/mt76_usb.conf\n```\n\nadd:\n\n```\noptions mt76_usb disable_usb_sg=1\n```\n\nSave the file: Ctrl + Alt + o, Enter, Ctrl + Alt + x\n\nTo check setting:\n\n```\ngrep [[:alnum:]] /sys/module/mt76_usb/parameters/*\n\n```\n\n-----\n\nKnown Issue 3. Running Kali Linux in VirtualBox with mt7612u based adapters such as the Alfa ACM yield an adapter that cannot be found.\n\nOne solution:\n\nhttps://forums.kali.org/showthread.php?128646-SOLVED-Alfa-AWUS036ACM-amp-Kali-2022-4-on-VB\n\n-----\n\nKnown Issue 4. DFS channels are currently not supported in 5 GHz AP\nmode. The following PR shows a proposed fix.\n\nhttps://github.com/openwrt/mt76/pull/428\n\n-----\n\nWishlist for the MT7612u driver:\n\n1. AP mode DFS support\n2. LED on by default (keep the ability to turn it off)\n\n-----\n```\nAlfa AWUS036ACM Technical Information\n\n$ iw list\nWiphy phy0\n\tmax # scan SSIDs: 4\n\tmax scan IEs length: 2243 bytes\n\tmax # sched scan SSIDs: 0\n\tmax # match sets: 0\n\tRetry short limit: 7\n\tRetry long limit: 4\n\tCoverage class: 0 (up to 0m)\n\tDevice supports RSN-IBSS\n\tDevice supports AP-side u-APSD.\n\tDevice supports T-DLS.\n\tSupported Ciphers:\n\t\t* WEP40 (00-0f-ac:1)\n\t\t* WEP104 (00-0f-ac:5)\n\t\t* TKIP (00-0f-ac:2)\n\t\t* CCMP-128 (00-0f-ac:4)\n\t\t* CCMP-256 (00-0f-ac:10)\n\t\t* GCMP-128 (00-0f-ac:8)\n\t\t* GCMP-256 (00-0f-ac:9)\n\t\t* CMAC (00-0f-ac:6)\n\t\t* CMAC-256 (00-0f-ac:13)\n\t\t* GMAC-128 (00-0f-ac:11)\n\t\t* GMAC-256 (00-0f-ac:12)\n\tAvailable Antennas: TX 0x3 RX 0x3\n   \tConfigured Antennas: TX 0x3 RX 0x3\n\tSupported interface modes:\n\t\t * IBSS\n\t\t * managed\n\t\t * AP\n\t\t * AP/VLAN\n\t\t * monitor\n\t\t * mesh point\n     \t\t * P2P-client\n\t\t * P2P-GO\n\tBand 1:\n\t\tCapabilities: 0x1ff\n\t\t\tRX LDPC\n\t\t\tHT20/HT40\n\t\t\tSM Power Save disabled\n\t\t\tRX Greenfield\n\t\t\tRX HT20 SGI\n\t\t\tRX HT40 SGI\n\t\t\tTX STBC\n\t\t\tRX STBC 1-stream\n\t\t\tMax AMSDU length: 3839 bytes\n\t\t\tNo DSSS/CCK HT40\n\t\tMaximum RX AMPDU length 65535 bytes (exponent: 0x003)\n\t\tMinimum RX AMPDU time spacing: No restriction (0x00)\n\t\tHT TX/RX MCS rate indexes supported: 0-15\n\t\tBitrates (non-HT):\n\t\t\t* 1.0 Mbps (short preamble supported)\n\t\t\t* 2.0 Mbps (short preamble supported)\n\t\t\t* 5.5 Mbps (short preamble supported)\n\t\t\t* 11.0 Mbps (short preamble supported)\n\t\t\t* 6.0 Mbps\n\t\t\t* 9.0 Mbps\n\t\t\t* 12.0 Mbps\n\t\t\t* 18.0 Mbps\n\t\t\t* 24.0 Mbps\n\t\t\t* 36.0 Mbps\n\t\t\t* 48.0 Mbps\n\t\t\t* 54.0 Mbps\n\t\tFrequencies:\n\t\t\t* 2412 MHz [1] (23.0 dBm)\n\t\t\t* 2417 MHz [2] (23.0 dBm)\n\t\t\t* 2422 MHz [3] (23.0 dBm)\n\t\t\t* 2427 MHz [4] (23.0 dBm)\n\t\t\t* 2432 MHz [5] (23.0 dBm)\n\t\t\t* 2437 MHz [6] (23.0 dBm)\n\t\t\t* 2442 MHz [7] (23.0 dBm)\n\t\t\t* 2447 MHz [8] (23.0 dBm)\n\t\t\t* 2452 MHz [9] (23.0 dBm)\n\t\t\t* 2457 MHz [10] (23.0 dBm)\n\t\t\t* 2462 MHz [11] (23.0 dBm)\n\t\t\t* 2467 MHz [12] (disabled)\n\t\t\t* 2472 MHz [13] (disabled)\n\t\t\t* 2484 MHz [14] (disabled)\n\tBand 2:\n\t\tCapabilities: 0x1ff\n\t\t\tRX LDPC\n\t\t\tHT20/HT40\n\t\t\tSM Power Save disabled\n\t\t\tRX Greenfield\n\t\t\tRX HT20 SGI\n\t\t\tRX HT40 SGI\n\t\t\tTX STBC\n\t\t\tRX STBC 1-stream\n\t\t\tMax AMSDU length: 3839 bytes\n\t\t\tNo DSSS/CCK HT40\n\t\tMaximum RX AMPDU length 65535 bytes (exponent: 0x003)\n\t\tMinimum RX AMPDU time spacing: No restriction (0x00)\n\t\tHT TX/RX MCS rate indexes supported: 0-15\n\t\tVHT Capabilities (0x318001b0):\n\t\t\tMax MPDU length: 3895\n\t\t\tSupported Channel Width: neither 160 nor 80+80\n\t\t\tRX LDPC\n\t\t\tshort GI (80 MHz)\n\t\t\tTX STBC\n\t\t\tRX antenna pattern consistency\n\t\t\tTX antenna pattern consistency\n\t\tVHT RX MCS set:\n\t\t\t1 streams: MCS 0-9\n\t\t\t2 streams: MCS 0-9\n\t\t\t3 streams: not supported\n\t\t\t4 streams: not supported\n\t\t\t5 streams: not supported\n\t\t\t6 streams: not supported\n\t\t\t7 streams: not supported\n\t\t\t8 streams: not supported\n\t\tVHT RX highest supported: 0 Mbps\n\t\tVHT TX MCS set:\n\t\t\t1 streams: MCS 0-9\n\t\t\t2 streams: MCS 0-9\n\t\t\t3 streams: not supported\n\t\t\t4 streams: not supported\n\t\t\t5 streams: not supported\n\t\t\t6 streams: not supported\n\t\t\t7 streams: not supported\n\t\t\t8 streams: not supported\n\t\tVHT TX highest supported: 0 Mbps\n\t\tBitrates (non-HT):\n\t\t\t* 6.0 Mbps\n\t\t\t* 9.0 Mbps\n\t\t\t* 12.0 Mbps\n\t\t\t* 18.0 Mbps\n\t\t\t* 24.0 Mbps\n\t\t\t* 36.0 Mbps\n\t\t\t* 48.0 Mbps\n\t\t\t* 54.0 Mbps\n\t\tFrequencies:\n\t\t\t* 5180 MHz [36] (20.0 dBm)\n\t\t\t* 5200 MHz [40] (20.0 dBm)\n\t\t\t* 5220 MHz [44] (20.0 dBm)\n\t\t\t* 5240 MHz [48] (20.0 dBm)\n\t\t\t* 5260 MHz [52] (20.0 dBm) (radar detection)\n\t\t\t* 5280 MHz [56] (20.0 dBm) (radar detection)\n\t\t\t* 5300 MHz [60] (20.0 dBm) (radar detection)\n\t\t\t* 5320 MHz [64] (20.0 dBm) (radar detection)\n\t\t\t* 5500 MHz [100] (20.0 dBm) (radar detection)\n\t\t\t* 5520 MHz [104] (20.0 dBm) (radar detection)\n\t\t\t* 5540 MHz [108] (20.0 dBm) (radar detection)\n\t\t\t* 5560 MHz [112] (20.0 dBm) (radar detection)\n\t\t\t* 5580 MHz [116] (20.0 dBm) (radar detection)\n\t\t\t* 5600 MHz [120] (20.0 dBm) (radar detection)\n\t\t\t* 5620 MHz [124] (20.0 dBm) (radar detection)\n\t\t\t* 5640 MHz [128] (20.0 dBm) (radar detection)\n\t\t\t* 5660 MHz [132] (20.0 dBm) (radar detection)\n\t\t\t* 5680 MHz [136] (20.0 dBm) (radar detection)\n\t\t\t* 5700 MHz [140] (20.0 dBm) (radar detection)\n\t\t\t* 5745 MHz [149] (20.0 dBm)\n\t\t\t* 5765 MHz [153] (20.0 dBm)\n\t\t\t* 5785 MHz [157] (20.0 dBm)\n\t\t\t* 5805 MHz [161] (20.0 dBm)\n\t\t\t* 5825 MHz [165] (20.0 dBm)\n\tSupported commands:\n\t\t * new_interface\n\t\t * set_interface\n\t\t * new_key\n\t\t * start_ap\n\t\t * new_station\n\t\t * new_mpath\n\t\t * set_mesh_config\n\t\t * set_bss\n\t\t * authenticate\n\t\t * associate\n\t\t * deauthenticate\n\t\t * disassociate\n\t\t * join_ibss\n\t\t * join_mesh\n       \t\t * remain_on_channel\n\t\t * set_tx_bitrate_mask\n\t\t * frame\n\t\t * frame_wait_cancel\n\t\t * set_wiphy_netns\n\t\t * set_channel\n\t\t * set_wds_peer\n   \t\t * tdls_mgmt\n\t\t * tdls_oper\n\t\t * probe_client\n\t\t * set_noack_map\n\t\t * register_beacons\n\t\t * start_p2p_device\n\t\t * set_mcast_rate\n\t\t * connect\n\t\t * disconnect\n\t         * channel_switch\n\t\t * set_qos_map\n\t\t * set_multicast_to_unicast\n\tSupported TX frame types:\n\t\t * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0\n\t\t * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0\n\t\t * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0\n\t\t * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0\n\t\t * mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0\n\t\t * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0\n\t\t * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0\n\t\t * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0\n\tSupported RX frame types:\n\t\t * IBSS: 0x40 0xb0 0xc0 0xd0\n\t\t * managed: 0x40 0xd0\n\t\t * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0\n\t\t * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0\n\t\t * mesh point: 0xb0 0xc0 0xd0\n\t\t * P2P-client: 0x40 0xd0\n\t\t * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0\n\t\t * P2P-device: 0x40 0xd0\n\tsoftware interface modes (can always be added):\n\t\t * AP/VLAN\n\t\t * monitor\n\tvalid interface combinations:\n\t\t * #{ IBSS } \u003c= 1, #{ managed, AP, mesh point } \u003c= 2,\n\t\t   total \u003c= 2, #channels \u003c= 1, STA/AP BI must match\n\tHT Capability overrides:\n\t\t * MCS: ff ff ff ff ff ff ff ff ff ff\n\t\t * maximum A-MSDU length\n\t\t * supported channel width\n\t\t * short GI for 40 MHz\n\t\t * max A-MPDU length exponent\n\t\t * min MPDU start spacing\n\tDevice supports TX status socket option.\n\tDevice supports HT-IBSS.\n\tDevice supports SAE with AUTHENTICATE command\n\tDevice supports low priority scan.\n\tDevice supports scan flush.\n\tDevice supports AP scan.\n\tDevice supports per-vif TX power setting\n\tDriver supports full state transitions for AP/GO clients\n\tDriver supports a userspace MPM\n\tDevice supports active monitor (which will ACK incoming frames)\n\tDevice supports configuring vdev MAC-addr on create.\n\tSupported extended features:\n* [ VHT_IBSS ]: VHT-IBSS\n* [ RRM ]: RRM\n* [ FILS_STA ]: STA FILS (Fast Initial Link Setup)\n* [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records\n* [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211\n* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs\n* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling\n* [ AQL ]: Airtime Queue Limits (AQL)\n* [ SCAN_RANDOM_SN ]: use random sequence numbers in scans\n* [ SCAN_MIN_PREQ_CONTENT ]: use probe request with only rate IEs in scans\n* [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support\n* [ DEL_IBSS_STA ]: deletion of IBSS station support\n* [ SCAN_FREQ_KHZ ]: scan on kHz frequency support\n* [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support\n```\n\n-----\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorrownr%2F7612u","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmorrownr%2F7612u","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorrownr%2F7612u/lists"}