MT7601 无线wifi驱动移植

1、插上wifi后,lsusb,会显示wifi的ID,所以我们要在驱动里面添加合适的ID

官网下载后,确认USB的VID和PID,源码包中rtusb_dev_id.c文件,找到rtusb_dev_id[] ,在对应的WiFi厂家#ifdef添加比如我的WiFi硬件要添加的是USB_DEVICE(0x148f,0x7601)

2、修改makefile

(1)修改驱动工作的平台   PLATFORM = SMDK,makefile里面可以看出驱动默认是运行在什么平台,比如pc,linux,uinx等

(2)选择好平台后,在对应的ifeq里面修改内核源码树所在目录  LINUX_SRC = /root/x210_bsp/kernel

                                                                                                       CROSS_COMPILE = arm-linux-

3、make生成.ko

(1)编译前记得make clean下,防止拿到的驱动不干净,被别人编译过,没有删除干净

(2)modinfo mt7601.ko查看驱动信息,模块能看到适合linux的版本信息,是否合适

 

4、挂载nfs从电脑端得到驱动mt7601.ko

(1)mt7601.ko,将板子rootfs里面的一个没有使用的目录比如 /opt挂载到ubuntu的一个目录,比如/root/rootfs,到时候将mt7601.ko放在/root/rootfs/就能在板子的根文件系统目录opt里面得到

(2)安装模块在板子的根目录下 insmod mt7601.ko

 

5、设置路由器LAN,WAN口设置

(1)LAN口:路由器对下开发网络的配置

IP地址:192.168.1.1,这是设置路由器自己的IP,如果连接路由器的电脑想上网,就要设置IP为192.168.1.xxx

(2)WAN口:路由器自己要上网的配置

IP地址:比如静态设置成192.168.0.23,因为这个路由器通过有线网连接的另一个高一级路由器网段为192.168.0.x

 

6、wifi配置文件的配置:wpa_supplicant配置文件(管理wifi的)

(1)首先在根文件系统/etc下创建/etc/Wireless/RT2870STA/把WiFi驱动源码里面的RT2870STA.dat挂载后重Ubuntu里面cp到RT2870STA里面/etc/Wireless/RT2870STA/RT2870STA.dat

mkdir -p /etc/Wireless/RT2870STA

(2)编辑/etc/wpa_supplicant.conf,这个文件根文件系统里面本来就有

network-{             //指的是路由器的信息

key_mgmt=WPA-PSK            //路由器密码是用什么方式来管理的,及路由器的安全类型选项

ssid=" 360wifi"                        //我们要连接的无线网名,及路由器的ssid

psk="mima"                            //连接路由器的密码

}

 

 

7、网卡配置命令流程

(1)insmod 模块

(2)ifconfig ra0 up

(3)wpa_supplicant -B -c /etc/wpa_supplicant.conf -i ra0   //根文件系统命令行下执行后主动连接无线网络

(4)wpa_cli -i ra0 status                                                      // 根文件系统命令行下执行后查看连接状态

(5)ifconfig ra0 192.168.1.20                                              //手动配置ip

(6)route add default gw 192.168.1.1 dev ra0                    //配置网关,及路由器IP,这样板子ping外网时,路由器帮我们去通

注意:1    ra0的配置和上网前,要先关掉系统默认的eth0(ifconfig eth0 down)

2    想ping通路由器,板子的IP必须和路由器对下开发的IP在统一网段

          第一手动分配:ifconfig ra0 192.168.1.20

          第二dhcp动态分配:

3   wpa_supplicant后,只能ping通路由器,但是不能上外网,添加网关后才可以通外网,但是不能用域名形式访问,添加DNS后才可以,在/etc/resolv.conf里面添加DNS,命令:nameserver 192.168.1.1,这个DNS地址是由网络供应商提供给路由器的,我们可以在windos里面连接这个路由器,查看网络中心,就可以看到DNS有两个,一个是路由器网关一个是一个很奇怪的数,一般我们就用网关

 

8、dhcp动态分配ip

1、路由器有dhcp设置,可以看到是否支持dhcp(路由器内部就有一套dhcp代码),有我们的板子才可以动态分配

(1)原理:路由器中有一个软件维护的dhcp服务器,板子也有一个软件维护的dhcp客户端,在busybox里集成了

insmod 模块

ifconfig ra0 up

wpa_supplicant -B -c /etc/wpa_supplicant.conf -i ra0   //根文件系统命令行下执行后主动连接无线网络

wpa_cli -i ra0 status                                                      // 根文件系统命令行下执行后查看连接状态

这时本地没有IP,我们开始dhcp两种分配如下:

(1)命令:udhcpc -i ra0  这一步自动帮我们添加了DNS,我们可以打开/etc/resolv.conf去看到

(2)interface里面配置

auto ra0

iface ra0 inet dhcp

 

9、让板子开机启动就连接wifi

(1)开机就会执行init.d下面的rcS

(2)在init.d下新建一个S41wifi,里面添加上面的1234步,最后给S41wifi文件权限,chmod,才能执行

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(linux驱动)