参考朱老师物联网大讲堂《项目积木1:USB WIFI网卡在X210上的移植和使用最全攻略》
编译平台:ubuntu18.04
移植的平台:S5PV210(内核2.6.35.7)
移植时需要确认的事项
1.进入开发板linux命令行下执行
lsusb
得到
这个就是当前在USB总线上的ID号,前一半是厂商ID(VID),后一半是产品ID(PID)
2.插入无线网卡后再执行lsusb得到
一插入无线网卡系统就自动识别了 new usb device了
此时多出的ID号就是新的设备的ID号
3.解压设备驱动
tar -jxvf DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2
从设备驱动的名字可以看到,这款设备是一个STA(station的设备,也就是只支持这款网卡用作station,而不是接入点AP)
解压后,在命令行下执行:
grep "rtusb_dev_id" * -nR
其实目的就是为了找到这个数组rtusb_dev_id[]
要找的目标在common/rtusb_dev_id.c
第37行,打开目标文件
需要确认这里的ID号要与之前在开发板命令行显示的ID号相符,如果这里没有的话就要自己按照格式去添加。
USB设备是靠VID和PID去匹配驱动和设备的
修改Makefile
1.PLATFORM修改
S5PV210属于三星的开发板,所以PLATFORM是SMDK,如果是其他开发板就要修改为对应的平台
2.修改内核源码树路径以及交叉编译工具链路径
根据PLATFORM的选择,找到合适的修改位置:
内核源码树路径 LINUX_SRC
交叉编译工具链路径CROSS_COMPLIE
显然我这里是不对的,需要进行修改。对应我自己的情况修改如下:
275 ifeq ($(PLATFORM),SMDK)
276 #LINUX_SRC = /home/bhushan/itcenter/may28/linux-2.6-samsung
277 #CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
278 #LINUX_SRC = /home/gigi/x210bsp/kernel
279 #CROSS_COMPILE = arm-linux-
280 LINUX_SRC = /root/driver/kernel
281 CROSS_COMPILE = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-
282 endif
添加wpa_supplicant支持
在ubuntu目录下执行
find -name "config.mk"
找到config.mk文件在这个目录下./os/linux/config.mk
进入config.mk
文件进行如下修改
保存退出。
make 得到.ko文件
执行make后,在目录os/linux
下得到mt7604Usta.ko文件
进入目录os/linux
,在命令行执行
modinfo mt7601Usta.ko
确认信息
vermagic的信息一定要与你开发板内核版本一致,不然驱动安装就不正常了。