热门标签 | 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 通百度网站。


推荐阅读
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文探讨了如何通过预处理器开关选择不同的类实现,并解决在特定情况下遇到的链接器错误。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • 版本控制工具——Git常用操作(下)
    本文由云+社区发表作者:工程师小熊摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复 ... [详细]
  • 本文详细介绍了 Python 中的条件语句和循环结构。主要内容包括:1. 分支语句(if...elif...else);2. 循环语句(for, while 及嵌套循环);3. 控制循环的语句(break, continue, else)。通过具体示例,帮助读者更好地理解和应用这些语句。 ... [详细]
  • Android 6.0 切换指定 Wi-Fi 的解决方案
    本文详细介绍了在 Android 6.0 系统中切换到指定 Wi-Fi 的方法,包括常见的问题、原因分析及解决方案。通过官方文档和代码示例,帮助开发者更好地理解和实现这一功能。 ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • 本文详细介绍如何使用 Python 集成微信支付的三种主要方式:Native 支付、APP 支付和 JSAPI 支付。每种方式适用于不同的应用场景,如 PC 网站、移动端应用和公众号内支付等。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 本文深入探讨了 Delphi 中类对象成员的核心概念,包括 System 单元的基础知识、TObject 类的定义及其方法、TClass 的作用以及对象的消息处理机制。文章不仅解释了这些概念的基本原理,还提供了丰富的补充和专业解答,帮助读者全面理解 Delphi 的面向对象编程。 ... [详细]
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社区 版权所有