热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解

本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。

开发环境:ubuntu 18.04

硬件平台:imx6ull mini野火开发板

 

查看内核信息

uname -a

说明:因为自linux4.2版本以后,mt7601u的驱动已经集成在kernel的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中,之前使用linux内核为4.1.15的版本移植mt7601u驱动的时候,加载mt7601Usta.ko驱动老是报错,所以在这用野火提供的linux新内核版本4.19.71源码编译生成。

(1)首先进入野火提供的linux-4.19.71内核源码文件夹中执行,最好先编译一次内核

./make_deb.sh
make menuconfig KCONFIG_CONFIG=arch/arm/configs/npi_v7_defconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

(2)然后进入Device Drivers —>Network device support-> Wireless LAN -> MediaTek devices 选中MediaTek MT7601U(USB) support选项

(3)配置完成后选择 save 保存,再运行./make_deb.sh 脚本即可以新的配置编译内核,源码目录下的 build_image 路径下重新生成linux-image-4.19.71-imx-r1_1stable_armhf.deb  内核安装包

./make_deb.sh

(4)克隆ebf-image-builder项目镜像,等待克隆完成后,用上面编译出来的内核安装包替换Kernel 目录下的内核安装包 (linux-image-4.19.71-imx-r1_1stable_armhf.deb)。

git clone https://gitee.com/Embedfire/ebf-image-builder.git

(5)进入 ebf-image-builde 项目源码目录下,直接执行编译脚本,直至编译完成,生成imx6ull-debian-buster-console-armhf-2021-xx-xx-2gb.img镜像文件

cd ebf-image-builder
sudo ./publish/seeed-imx-stable.sh lite

(6)将imx6ull-debian-buster-console-armhf-2021-xx-xx-2gb.img镜像烧录到SD卡,开发板以SD卡启动方式启动,即可启动开发板。

(7)开发板启动后,查看是否存在MT7601U驱动

ifconfig -a

判断网卡是否在Linux下免驱,若出现wlan0开头的网卡名称,一般就是新增的无线网卡。可以在插入网卡前执行一次ifconfig -a,插入网卡后再执行一次命令,对比前后差异。

如果出现ifconfig: command not found,则先安装net-tools软件包

sudo apt-get install net-tools

其它判断方法

也可以用iwconfig命令,查看当前无线网卡信息。

iwconfig

同样的,如果出现iwconfig: command not found,需要安装wireless-tools这个包。

sudo apt-get install wireless-tools

如果编译安装了无线网卡驱动并重启后仍然无法正常使用网卡,可以通过

dmesg

查看驱动加载的详细信息,在这,截图可以看出mt7601u已正常启动。

另外,USB无线网卡的型号,通过lsusb命令查看

sudo apt-get install usbutils
lsusb

正常会显示类似 Bus 001 Device 003: ID 148f:760b Ralink Technology, Corp. MT7601U Wireless Adapter 相关信息

 

(8)输入“wpa_supplicant -v”命令查看一下 wpa_supplicant 版本号,如果 wpa_supplicant 工作正常的话就会打印出版本号,如果找不到命令,则安装它

sudo apt-get install wireless-tools
sudo apt-get install iw
sudo apt-get install wpasupplicant

(9)编辑 /etc/wpa_supplicant/wpa_supplicant.conf文件,添加以下内容

ctrl_interface=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={ssid="TP-LINK-XXX"psk="xxxxxxxx"
}

ssid 是要连接的 WIFI 名称,psk 就是要连接的 WIFI 密码,根据实际情况填写。

注意:wpa_supplicant.conf 文件对于格式要求比较严格,“=”前后一定不能有空格,也不要用 TAB 键来缩进,比如第 4 行和 5 行的缩进应该采用空格,否则的话会出现 wpa_supplicant.conf文件解析错误。wpa_supplicant.conf 文件内容要自己手动输入,不要偷懒复制粘贴!

 

(10)wpa_supplicant.conf 文件编写好后,再在开发板根文件系统下创建一个“/var/run/wpa_supplicant”目录,wpa_supplicant 工具要用到此目录,命令如下:

sudo mkdir /var/run/wpa_supplicant -p

一切准备好以后就可以使用 wpa_supplicant 工具让MT7601U USB WIFI 连接到wifi上,输入如下命令:

sudo wpa_supplicant -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0 &

当 MT7601U 连接上 WIFI 热点以后,连接成功会输出“wlan0: CTRL-EVENT-CONNECTED”字样,详细信息如下:

debian@npi:~$ Successfully initialized wpa_supplicant
rfkill: Cannot open RFKILL control device
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
wlan0: Trying to associate with f4:ee:14:2c:e4:58 (SSID='TP-LINK_888' freq=2412)
Failed to add supported operating classes IE
wlan0: Associated with f4:ee:14:2c:e4:58
wlan0: WPA: Key negotiation completed with f4:ee:14:2c:e4:58 [PTK=CCMP GTK=CCMP]
wlan0: CTRL-EVENT-CONNECTED - Connection to f4:ee:14:2c:e4:58 completed [id=0 i]

 

(11)接下来就是最后一步了,设置 wlan0 的 IP 地址,这里使用 udhcpc 命令从路由器申请 IP 地址,输入如下命令:

sudo udhcpc -i wlan0 //从路由器获取 IP 地址

IP地址获取成功以后,会输出以下信息:

debian@npi:~$ sudo udhcpc -i wlan0
udhcpc: started, v1.30.1
udhcpc: sending discover
wlan0: Trying to associate with f4:ee:14:2c:e4:58 (SSID='TP-LINK_888' freq=2412 MHz)
Failed to add supported operating classes IE
wlan0: Associated with f4:ee:14:2c:e4:58
wlan0: WPA: Key negotiation completed with f4:ee:14:2c:e4:58 [PTK=CCMP GTK=CCMP]
wlan0: CTRL-EVENT-CONNECTED - Connection to f4:ee:14:2c:e4:58 completed [id=0 id_str=]
udhcpc: sending discover
udhcpc: sending select for 192.168.1.108
udhcpc: lease of 192.168.1.108 obtained, lease time 7200
debian@npi:~$

wlan0 的 IP 地址获取成功,IP 地址为 192.168.1.108。可以输入如下命令查看一下 wlan0 网卡的详细信息:

sudo ifconfig wlan0

可以通过电脑 ping 一下 wlan0 的 192.168.1.108 这个 IP 地址,如果能 ping 通就说明 MT7601U USB WIFI 工作正常。也可以直接在开发板上使用 wlan0 来 ping 一下百度网站,输入如下命令:

ping -I 192.168.1.108 www.baidu.com

-I 是指定执行 ping 操作的网卡 IP 地址,我们要使用 wlan0 去 ping 百度网站,因此要通过“-I”指定 wlan0 的 IP 地址。如果 WIFI 工作正常的话就可以 ping 通百度网站。


推荐阅读
  • CentOS7系统目录LINUX有四种基本文件系统类型普通文件:如文本文件、C语言元代码、SHELL脚本、二进制的可执行文件等,可用cat、less、 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • docker安装到基本使用
    记录docker概念,安装及入门日常使用Docker安装查看官方文档,在"Debian上安装Docker",其他平台在"这里查 ... [详细]
  • 系统安装Debian系统的安装方式和Ubuntu系统的安装方式几乎是一样的,毕竟Ubuntu系统是基于Debian的,就如同CentOS基于Redhat ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • Windows简单部署Exceptionless
    部署准备Elasticsearch、Exceptionless.API、Exceptionless.UI、URLRewrite、.NET运行时 1、安装ElasticSearch1 ... [详细]
  • Linux 中使用 clone 函数来创建线程
    2019独角兽企业重金招聘Python工程师标准Linux上创建线程一般使用的是pthread库实际上libc也给我们提供了创建线程的函数那就是cloneintclone(i ... [详细]
author-avatar
风雨无痕630_748
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有