i.MX283A移植小米随身wifi

手上正好有几年前买的小米随身wifi,移植过程也是比较艰辛(底子薄),疯狂的查资料浏览网页主要是出错就变成无头苍蝇了.

一、准备工作

1、MT7601驱动下载

下载链接MediaTek | MT7601U

DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2

2、小米随身wifi

二、配置内核

1、make menuconfig 配置内核

[*] Networking support  --->
        -*-   Wireless  --->
               <*>   cfg80211 - wireless configuration API             
<*>   Generic IEEE 802.11 Networking Stack (mac80211)

随身wifiesim拆除 随身wifi内置esim改sim_随身wifiesim拆除

Device Drivers  --->
              [*] Network device support  --->
                     [*]   Wireless LAN  --->

                                                                             

随身wifiesim拆除 随身wifi内置esim改sim_随身wifiesim拆除_02

MT7601驱动源文件可以看到Ralink的痕迹,估计mt7601的驱动在此基础上增加的,所以最好添加该驱动支持。

随身wifiesim拆除 随身wifi内置esim改sim_wifi_03

 

2、重新编译内核,不做这一步后面编译驱动会有类型未定义的报错。

三、制作驱动文件

1、查看USB wifi 厂家信息

插入usb WiFi 启动开发板linux,lsusb查看usb驱动

Bus 001 Device 002: ID 2717:4106看到的是该驱动的厂家设备信息

2、添加USB wifi的设备ID

解压源码到linux下,在common/rtusb_dev_id.c中

/* module table */
USB_DEVICE_ID rtusb_dev_id[] = {
         {USB_DEVICE(0x2717,0x4106)}, /* xiaomi wifi */
#ifdef RT6570
         {USB_DEVICE(0x148f,0x6570)}, /* Ralink 6570 */
#endif /* RT6570 */
         {USB_DEVICE(0x148f, 0x7650)}, /* MT7650 */
#ifdef MT7601U       //该宏定义在编译时可能未生效
         {USB_DEVICE(0x148f,0x6370)}, /* Ralink 6370 */
         {USB_DEVICE(0x148f,0x7601)}, /* MT 6370 */      
         {USB_DEVICE(0x2955,0x1001)}, /* xiaodu wifi */
         {USB_DEVICE(0x148f,0x760b)}, /* 360 wifi gen 2 */
#endif /* MT7601U */    
         { }/* Terminating entry */
};

3、修改Makefile文件

打开源码根目录下的Makefile

(1)平台换成:三星

PLATFORM = SMDK

(2)内核源码路径设置

LINUX_SRC = //linux内核源码树

(3)交叉工具链路径设置

CROSS_COMPILE = //交叉编译环境

随身wifiesim拆除 随身wifi内置esim改sim_程序人生_04

 

在文件中可以看出编译完成后会把.ko会复制出去,最好注释掉。

4、添加wpa_supplicant支持

确保config.mk文件中WPA_SUPPLICANT=y  默认是y  基本不用修改

5、清理&编译

make clean && make -j4

生成os/linux/mt7601Usta.ko就是驱动模块

做到这一步驱动就移植好了,后面就是怎么使用usbwifi了。本人由于安装驱动后会打印提示错误信息一直以为驱动有问题,又折腾了一天。其实能扫描出wifi 驱动基本上是没有问题的

提示错误信息如下(这估计是小米wifi本身导致的)

Current MAC: =8c:be:be:01:3e:3c

ERROR!!! MT7601 E2PROM: WRONG VERSION 0xd, should be 12

不定时的打印

Err;FC.ToDs

四、使用wifi配置

修改wpa_supplicant.conf文件,添加要连接的wif

执行以下命令

insmod mt7601Usta.ko            //安装驱动程序,注意要到自己的路径下安装
ifconfig ra0 up                 //开启无线网卡
wpa_supplicant -B -c /etc/wpa_supplicant.conf -i ra0    //连接无线网络
wpa_cli -i ra0 status           //查看连接状态
udhcpc -i ra0 //开启dhcp 不然获取不到ip地址

 EasyARM-i.MX283A 制作的根文件系统时,自带了wpa_supplicant工具