首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让Mediatek MT 7601 USB Wifi在Ubuntu18.04上工作?

如何让Mediatek MT 7601 USB Wifi在Ubuntu18.04上工作?
EN

Ask Ubuntu用户
提问于 2018-11-28 12:52:34
回答 1查看 10.5K关注 0票数 1

首先要说的是,我已经探索并尝试了其他类似问题中提出的解决办法,但到目前为止都没有奏效。我知道USB没有问题,因为它只是在同一台机器上的Windows 10中工作得很好。顺便说一句,它在MacOS10.13.6中也不起作用(这是一个2011年的MacBook Pro,内部的WiFi适配器坏了)。

代码语言:javascript
复制
lsusb

给出了以下内容: Bus 002设备006: ID148F:7601 MT7601U无线适配器公司

代码语言:javascript
复制
dmesg

在插入该设备后,就会给出:

代码语言:javascript
复制
[ 2265.257271] usb 1-1.3: new high-speed USB device number 11 using ehci-pci
[ 2265.376911] usb 1-1.3: New USB device found, idVendor=148f, idProduct=7601
[ 2265.376915] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2265.376917] usb 1-1.3: Product: 802.11 n WLAN
[ 2265.376919] usb 1-1.3: Manufacturer: MediaTek
[ 2265.376921] usb 1-1.3: SerialNumber: 1.0

如果我尝试iwconfig:

代码语言:javascript
复制
$ iwconfig
lo        no wireless extensions.

enp2s0f0  no wireless extensions.

我已经从Mediatek网站下载了固件,并将其放在正确的文件夹中,我还尝试编译或安装各种软件包,这些包要么会抛出编译错误,要么无法使WiFi正常工作。

有人对此有什么建议或最新的解决方案吗?

我试着按照S的指示去做@chili555 555‘S的回答:

代码语言:javascript
复制
     $ make
    make -C tools
    make[1]: Entering directory '/home/baldwin/mt7601usta/src/tools'
    gcc -g bin2h.c -o bin2h
    make[1]: Leaving directory '/home/baldwin/mt7601usta/src/tools'
    /home/baldwin/mt7601usta/src/tools/bin2h
    cp -f os/linux/Makefile.6 /home/baldwin/mt7601usta/src/os/linux   /Makefile
    make -C /lib/modules/4.15.0-39-generic/build SUBDIRS=/home/baldwin  /mt7601usta/src/os/linux modules
    make[1]: Entering directory '/usr/src/linux-headers-4.15.0-39-generic'
     CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../os/linux /rt_profile.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../sta/assoc.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../sta/auth.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../sta/auth_rsp.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../sta/sync.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../sta/sanity.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../sta/rtmp_data.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../sta/connect.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../sta/wpa.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../sta/sta_cfg.o
     /home/baldwin/mt7601usta/src/os/linux/../../sta/sta_cfg.c: In           function ‘Set_EncrypType_Proc’:
    /home/baldwin/mt7601usta/src/os/linux/../../sta/sta_cfg.c:1104:5: warning:   this ‘else’ clause does not guard... [-Wmisleading-indentation]
        else
         ^~~~
        /home/baldwin/mt7601usta/src/os/linux/../../sta/sta_cfg.c:1107:2:    note: ...this statement, but the latter is misleadingly indented as if it were    guarded by the ‘else’
      if (pAd->StaCfg.BssType == BSS_ADHOC)
      ^~
    /home/baldwin/mt7601usta/src/os/linux/../../sta/sta_cfg.c: In function      ‘RtmpIoctl_rt_ioctl_siwfreq’:
    /home/baldwin/mt7601usta/src/os/linux/../../sta/sta_cfg.c:6018:5:     warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]
         else
         ^~~~
    /home/baldwin/mt7601usta/src/os/linux/../../sta/sta_cfg.c:6021:2:   note: ...this statement, but the latter is misleadingly indented as if it were  guarded by the ‘else’
      return NDIS_STATUS_SUCCESS;
      ^~~~~~
    /home/baldwin/mt7601usta/src/os/linux/../../sta/sta_cfg.c: In function      ‘RtmpIoctl_rt_ioctl_giwrate’:
    /home/baldwin/mt7601usta/src/os/linux/../../sta/sta_cfg.c:7928:5:  warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
          if (rate_index >= rate_count)
          ^~
    /home/baldwin/mt7601usta/src/os/linux/../../sta/sta_cfg.c:7931:2:  note: ...this statement, but the latter is misleadingly indented as if it were  guarded by the ‘if’
      *(ULONG *)pData = ralinkrate[rate_index] * 500000;
      ^
     CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common /crypt_md5.o
     CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/crypt_sha2.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/crypt_hmac.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/crypt_aes.o
       CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common   /crypt_arc4.o
       CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/mlme.o
       CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_wep.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/action.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_data.o
       CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/rtmp_init.o
    /home/baldwin/mt7601usta/src/os/linux/../../common/rtmp_init.c: In  function ‘NICInitializeAsic’:
    /home/baldwin/mt7601usta/src/os/linux/../../common/rtmp_init.c:1656:1:  warning: the frame size of 1048 bytes is larger than 1024 bytes [-Wframe- larger-than=]
     }
     ^
       CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common /rtmp_init_inf.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_tkip.o
       CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_aes.o
       CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_sync.o
       CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/eeprom.o
       CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_sanity.o
       CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common /cmm_info.o
     /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_info.c: In    function ‘GetEncryptType’:
    /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_info.c:1752:5:      warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
         if(enc == Ndis802_11Encryption3Enabled)
         ^~
    /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_info.c:1754:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
       if(enc == Ndis802_11Encryption4Enabled)
       ^~
    /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_info.c: In function ‘GetAuthMode’:
    /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_info.c:1764:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
         if(auth == Ndis802_11AuthModeShared)
         ^~
    /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_info.c:1766:2:    note: ...this statement, but the latter is misleadingly indented as if it were   guarded by the ‘if’
      if(auth == Ndis802_11AuthModeAutoSwitch)
      ^~
     /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_info.c:1776:5:   warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
         if(auth == Ndis802_11AuthModeWPA2PSK)
         ^~
    /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_info.c:1778:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
       if(auth == Ndis802_11AuthModeWPA1WPA2)
      ^~
    /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_info.c: In  function ‘Show_PMK_Proc’:
    /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_info.c:4198:5:  warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
 for (idx = 0; idx < 32; idx++)
 ^~~
   /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_info.c:4201:2:  note: ...this statement, but the latter is misleadingly indented as if it were  guarded by the ‘for’
      return 0;
      ^~~~~~
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_cfg.o
     CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_wpa.o
    /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_wpa.c: In    function ‘WPAStart2WayGroupHS’:
     /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_wpa.c:1257:5:      warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
        if ((!pEntry) || !IS_ENTRY_CLIENT(pEntry))
         ^~
     /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_wpa.c:1262:2:    note: ...this statement, but the latter is misleadingly indented as if it were  guarded by the ‘if’
       os_alloc_mem(NULL, (PUCHAR *)&mpool, TX_EAPOL_BUFFER);
      ^~~~~~~~~~~~
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_radar.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/spectrum.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/rtmp_timer.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/rt_channel.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_profile.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_asic.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/scan.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/cmm_cmd.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/uapsd.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/ps.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../rate_ctrl/ra_ctrl.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../rate_ctrl/alg_legacy.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../rate_ctrl/alg_ags.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../chips/rtmp_chip.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/txpower.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../mac/rtmp_mac.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../mgmt/mgmt_hw.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../..       /mgmt/mgmt_entrytb.o
   /home/baldwin/mt7601usta/src/os/linux/../../mgmt/mgmt_entrytb.c: In    function ‘MacTableInsertEntry’:
     /home/baldwin/mt7601usta/src/os/linux/../../mgmt/mgmt_entrytb.c:103:2: warning: this ‘if’ clause does not guard...  [-Wmisleading-indentation]
      if (pAd->MacTab.Size >= MAX_LEN_OF_MAC_TABLE)
      ^~
    /home/baldwin/mt7601usta/src/os/linux/../../mgmt/mgmt_entrytb.c:106:3:   note: ...this statement, but the latter is misleadingly indented as if it were   guarded by the ‘if’
      FirstWcid = 1;
       ^~~~~~~~~
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../phy/rtmp_phy.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../phy/rlt_phy.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../phy/rlt_rf.o
      CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/ba_action.o
       CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../mgmt/mgmt_ht.o
       CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../common/rt_os_util.o
       CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../os/linux/sta_ioctl.o
       CC [M]  /home/baldwin/mt7601usta/src/os/linux/../../os/linux  /rt_linux.o
    /home/baldwin/mt7601usta/src/os/linux/../../os/linux/rt_linux.c: In function ‘__RTMP_OS_Init_Timer’:
    /home/baldwin/mt7601usta/src/os/linux/../../os/linux/rt_linux.c:120:3: error: implicit declaration of function ‘init_timer’; did you mean  ‘init_timers’? [-Werror=implicit-function-declaration]
       init_timer(pTimer);
       ^~~~~~~~~~
        init_timers
    /home/baldwin/mt7601usta/src/os/linux/../../os/linux/rt_linux.c:121:9: error: ‘OS_NDIS_MINIPORT_TIMER {aka struct timer_list}’ has no member named  ‘data’
        pTimer->data = (unsigned long)data;
             ^~
     /home/baldwin/mt7601usta/src/os/linux/../../os/linux       /rt_linux.c:122:20: error: assignment from incompatible pointer type    [-Werror=incompatible-pointer-types]
      pTimer->function = function;
                ^
     cc1: some warnings being treated as errors
     scripts/Makefile.build:332: recipe for target '/home/baldwin/mt7601usta/src/os/linux/../../os/linux/rt_linux.o' failed
     make[2]: *** [/home/baldwin/mt7601usta/src/os/linux/../../os/linux/rt_linux.o] Error 1
      Makefile:1551: recipe for target '_module_/home/baldwin/mt7601usta /src/os/linux' failed
      make[1]: *** [_module_/home/baldwin/mt7601usta/src/os/linux] Error 2
       make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-39-   generic'
     Makefile:418: recipe for target 'LINUX' failed
     make: *** [LINUX] Error 2

然后,以防万一它还是起作用了:

代码语言:javascript
复制
$ sudo modprobe mt7601Usta

    modprobe: FATAL: Module mt7601Usta not found in directory /lib/modules  /4.15.0-39-generic

最新评论信息:$ sudo &找到mt7601u.ko

代码语言:javascript
复制
/lib/modules/4.15.0-38-generic/kernel/drivers/net/wireless/mediatek  /mt7601u/mt7601u.ko
/lib/modules/4.15.0-39-generic/kernel/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko

    $ sudo modprobe mt7601u && dmesg | grep mt76
[ 1102.391048] mt7601u 1-1.3:1.0: ASIC revision: 76010001 MAC revision:     76010500
[ 1102.432663] mt7601u 1-1.3:1.0: EEPROM ver:0c fae:00
[ 1102.610548] mt7601u 1-1.3:1.0: Error: RX urb failed:-71
[ 1102.610690] mt7601u 1-1.3:1.0: Error: MCU resp urb failed:-71
[ 1102.610703] mt7601u 1-1.3:1.0: Error: MCU resp evt:0 seq:5-4!
[ 1102.614793] mt7601u 1-1.3:1.0: Error: RX urb failed:-71
[ 1102.615055] mt7601u 1-1.3:1.0: Error: MCU resp urb failed:-71
[ 1102.615063] mt7601u 1-1.3:1.0: Error: MCU resp evt:0 seq:5-4!
[ 1102.619034] mt7601u 1-1.3:1.0: Error: RX urb failed:-71
[ 1102.619356] mt7601u 1-1.3:1.0: Error: MCU resp urb failed:-71
[ 1102.619375] mt7601u 1-1.3:1.0: Error: MCU resp evt:0 seq:5-4!
[ 1102.623360] mt7601u 1-1.3:1.0: Error: RX urb failed:-71
[ 1102.623598] mt7601u 1-1.3:1.0: Error: MCU resp urb failed:-71
[ 1102.623619] mt7601u 1-1.3:1.0: Error: MCU resp evt:0 seq:5-4!
[ 1102.627523] mt7601u 1-1.3:1.0: Error: RX urb failed:-71
[ 1102.627782] mt7601u 1-1.3:1.0: Error: MCU resp urb failed:-71
[ 1102.627785] mt7601u 1-1.3:1.0: Error: MCU resp evt:0 seq:5-4!
[ 1102.627787] mt7601u 1-1.3:1.0: Error: mt7601u_mcu_wait_resp timed out
[ 1102.795071] mt7601u: probe of 1-1.3:1.0 failed with error -110
[ 1102.795178] usbcore: registered new interface driver mt7601u

现在我试着:

代码语言:javascript
复制
$ md5sum /lib/firmware/mt7610u.bin
696cedb8e76ecc0cda9f9b0d3972c64d  /lib/firmware/mt7610u.bin

然后:

代码语言:javascript
复制
$ sudo dpkg -s linux-firmware | grep Version
Version: 1.173.2

遵循下面的建议并安装了最新版本的固件:

代码语言:javascript
复制
$ dmesg | grep ath
$ md5sum /lib/firmware/mt7610u.bin
696cedb8e76ecc0cda9f9b0d3972c64d  /lib/firmware/mt7610u.bin

这仍然和以前一样。

EN

回答 1

Ask Ubuntu用户

发布于 2018-11-29 16:12:55

您的固件文件mt7610u.bin具有不同的md5sum,并且可能与linux固件中包含的最新版本不同。让我们安装后一个包,看看神秘的错误是否消失。

通过以太网、捆绑或任何可能的方式工作的互联网连接,打开一个终端并做:

代码语言:javascript
复制
cd /tmp
wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.175.1_all.deb
sudo dpkg -i linux-firmware*.deb

重新启动并检查:

代码语言:javascript
复制
dmesg | grep ath
票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1096799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档