1.下载小度wifi驱动,解压到/home/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913
2.cd /home/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913修改Makefile
找到“PLATFORM = PC”语句将其注释掉,即修改为:“#PLATFORM = PC”
找到“#PLATFORM = SMDK”语句将其注释的语句解除,即“PLATFORM = SMDK”
修改完以上内容还需修改一处:
找到“ifeq ($(PLATFORM),SMDK)”语句,将其后两句语句修改为如下内容:
1. feq ($(PLATFORM),SMDK)
2. LINUX_SRC =/home/openwrt/trunk/build_dir/target-mipsel_24kec+dsp_musl-1.1.10/linux-ramips_mt7620/linux-3.18.17 源码内核目录
3. CROSS_COMPILE = /home/openwrt/trunk/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_musl-1.1.10/bin/mipsel-openwrt-linux-
4. export ARCH=mips
5. endif
3.(可选)修改无线网卡名称 include/rtmp_def.h
1. # gedit include/rtmp_def.h
找到line 1604,将
1. #define INF_MAIN_DEV_NAME "ra"
2. #define INF_MBSSID_DEV_NAME "ra"
改成
1. #define INF_MAIN_DEV_NAME "xiaodu"
2. #define INF_MBSSID_DEV_NAME "xiaodu"
4.修改支持USB设备ID
先不要插上小度
1. # lsusb
再插上
1. # lsusb
对比发现,多了一个设备
1. Bus 002 Device 006: ID 2955:1001
5.添加设备 cd DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/
1. # gedit common/rtusb_dev_id.c
找到line 42
1. #ifdef MT7601U
2. {USB_DEVICE(0x148f,0x6370)}, /* Ralink 6370 */
3. {USB_DEVICE(0x148f,0x7601)}, /* MT 6370 */
在后面加上:
1. {USB_DEVICE(0x2955,0x1001)}, /* XiaoDu Wifi */
6.查看os/linux/config.mk文件
确保config.mk文件中WPA_SUPPLICANT配置如下图所示。
7.配置好编译环境,执行make
8.把make生成的在os/linux目录生成最后的ko文件mt7610Usta.ko传送到开发板的/lib/modules/3.18.17/目录下。同时要将源代码根目录的RT2870STA.dat文件传送到/etc/Wireless/RT2870STA/目录下,没有的话,新建目录。
9.安装模块。执行insmod mt7610Usta.ko
或依次执行
depmod
modprobe mt7610Usta
(或dmesg)
10.最后就是插入网卡,这个时候ifconfig是看不到网卡的,你要启用网卡,用以下命令:
ifconfig xiaodu0 up
再次ifconfig,就能看到xiaodu0的网卡了。
问题1:用OpenWrt的交叉编译器编译外部程序文件,遇到如下错误:
mips-openwrt-linux-gcc:warning: environment variable 'STAGING_DIR' not defined
解决:办法是在命令行输入:
exportSTAGING_DIR=(你的OpenWrt目录的绝对路径)/staging_dir
问题2:error: incompatible types when assigningto type ‘int’ from type ‘kuid_t’
pOSFSInfo->fsuid = current_fsuid();
解决:把rt_linux.c里面报错那里:
current_fsuid() 跟 current_fsgid()改成:
current_fsuid().val
current_fsgid().val
就可以了,函数名我记不大清楚了,就是编译报错那里。