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


推荐阅读
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • docker安装到基本使用
    记录docker概念,安装及入门日常使用Docker安装查看官方文档,在"Debian上安装Docker",其他平台在"这里查 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • python3.7 安装pip3_python3的pip3安装
    ---恢复内容开始---pip3的安装需要对应一整套python的编译工具库,所以安装好的pip3是这个样子:inearAi:~$pip3-Vpi ... [详细]
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社区 版权所有