Arm板Linux移植随身WIFI并连接上网络,如米WIFI
本文是本人博客的版本迁移,将叙述本人2015年Arm板linux系统上实现米wifi驱动的移植以及到连接上wifi的全过程,360wifi等类似,本文中会有提到
PS:交叉编译等本文不多做讲解
在执行之前,先确定你linux系统下armlinux系统的源码目录在哪里(Ps:我的源码目录为/usr/linux2.6.32.2)
首先
得先获取无线网卡驱动的源码,后,解压到linux系统上,(ps:这里我是解压在/usr目录下)
以下为无线网卡驱动的源码下载地址,大家可以去下载:
1 | http://download.csdn.net/detail/u013267687/8671849 |
解压完后
在WIFI驱动的源代码根目录下,执行gedit MakeFile,进行修改,修改内容如下:
找到“PLATFORM = PC”语句将其注释掉,即修改为:“#PLATFORM = PC”
找到“#PLATFORM = SMDK”语句将其注释的语句解除,即“PLATFORM = SMDK”
修改完以上内容还需修改一处:
找到“ifeq ($(PLATFORM),SMDK)”语句,将其后两句语句修改为如下内容:
LINUX_SRC = /usr/linux-2.6.32.2 //注意,此处为你的源码目录
CROSS_COMPILE = arm-linux-
修改完以上后,即可保存关闭该文件
后进入
/usr/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/common目录,执行
1 | gedit rtusb_dev_id.c”命令 |
修改该文件:
找到
1 |
|
如图:
这里要注意的是,如果你是其他的随身wifi设备的话,可以根据以下提示内容进行添加:
{USB_DEVICE(0x148f,0x760b)},/* 360 Wifi 2 Gen */
{USB_DEVICE(0x2955,0x1001)},/* Xiao Du Wifi */
{USB_DEVICE(0x2a5f,0x1000)},/* Quan Min Wifi */
随后转到驱动源码根目录下执行,make指令
随后linux就会根据你刚刚修改的配置进行相应的编译,生成.ko文件
路径在界面中可以找到,如图:
随后我们到该目录下将“mt7601Usta.ko”文件拷贝到ARM板中
但是在这操作过程中有一个很重要的点别漏了,否则无线网卡一样无法驱动成功
需要做的是,将该驱动源码根目录下的“RT2870STA.dat”文件拷贝到板中的”/etc/Wireless/RT2870STA/“目录下。
随后在Arm板的linux系统中安装刚刚编译好的驱动“insmod mt7601Usta.ko”,安装是否成功除了可以看提示外,还可以使用命令“lsmod”查看是否有安装该设备
PS:这里安装失败的话,一般是内核版本的问题,请检查你的内核版本是否与你linux下的armlinux的内核版本是否一致,或者arm-linux-gcc的版本是否符合要求,该问题在这里不多做解决的讲解
安装成功后,即可插上相应的设备(随身WIFI)
不久,就会提示识别成功,出现一大段码,我就不贴出了
做到这里,你已经成功的将随身wifi移植到你的ARM板上了,但是你会发现,重启之后,该设备驱动又不见了,这是由于arm板每次重启就会还原一次这些驱动设备,所以,你需要修改初始化文件:
可以修改/etc/init.d目录下的rcS文件,在其中加入安装.ko文件的指令(PS:注意你的.ko文件的路径)
至此,已经驱动算是相对完整的成功了,也不担心重启还原的问题了,接下来,就讲解一下如何使用它来连接热点,即WIFI
以上内容完成后,可以使用
1 | ifconfig -a |
就可以查看到你的无线网卡设备,即你的随身wifi,一般默认的设备名为“ra0”,默认是没有配置其他信息的,所以我们需要给它简单的配置一下,方便后期开发
但是在使用之前需要将arm板上的集成网卡先关闭掉,一般默认的名字为“eth0”,但是在关闭之前,我们得先执行以下操作
1 | ifconfig eth0 192.168.1.xxx |
xxx的取值为2-255,不要取230,或者身边已有的ip,因为,在同一网段上,不允许有两个相同的ip出现,而一般板上的初始ip为230, 所以要避开这些点,方便后期开发(PS:此处为建议)
之后关闭该网卡
1 | ifconfig eth0 down” |
后打开你的无线网卡
1 | ifconfig ra0 192.168.1.xxx up |
解释同上
此时网卡已经启动
但是你会发现用普通的wifi指令会提示找不到设备,如“scan-wifi”,因为随身wifi属于用户装置的设备,无法使用这些指令进行操控
所以在这里,我们得使用“iwlist”
输入iwlist的时候,你可以看到iwlist的各种功能,你可以根据功能提示进行相应的操作
比如,我们需要查看周围的热点信息,我们可以使用指令
1 | iwlist ra0 scan | less |
后界面中即会显示附近的热点信息
但是连接WIFI需要热点需要使用“iwconfig”这个操作指令
现在以连接假设附近有一个essid为“Test”的开放网络为例:
1 | iwconfig ra0 essid “Test” |
该指令结束后,即可在界面中查看到连接是否成功的信息
ps:其他更多热点加密方式的连接,请大家另外查询更多的指令信息,这里不多做讲解
最后
完成以上部分,你的随身wifi就移植成功,并且能正常使用,接下的怎么应用怎么开发,就看你了~