1. 程式人生 > >MT7601驅動移植

MT7601驅動移植

1、解壓MT7601驅動
*tar -xvf DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2
cd DPO_MT7601U_LinuxSTA_3.0.0.4_20130913*

2、修改Makefile
該版本的驅動包支援多種不同平臺的編譯配置,預設的Makefile編譯平臺是PC,見Makefile 第30行:
#PLATFORM: Target platform
PLATFORM = PC
修改PC平臺(Makefile第198行)對應的交叉編譯引數和核心路徑,如下:
這裡寫圖片描述
修改為:
這裡寫圖片描述


儲存關閉

3、檢查wifi結點名稱
Android下的HAL和指令碼中的wifi裝置結點名稱用的wlan0,嵌入Linux裝置中wifi裝置結點名稱一般使用的ra0,所以,需要根據實際應用物件,進行修改,名稱定義位置:
*cd DPO_MT7601U_LinuxSTA_3.0.0.4_20130913
vi include/rtmp_def.h +1604*
如下:
這裡寫圖片描述
所以,如果是為Android平臺編譯7601驅動,就需要開啟編譯巨集引數:ANDROID_SUPPORT。這個引數是在os/linux/config.mk中定義的,見config.mk 第373行:
ifeq ($(HAS_ANDROID_SUPPORT),y)
WFLAGS += -DANDROID_SUPPORT
endif
即由HAS_ANDROID_SUPPORT=n或者HAS_ANDROID_SUPPORT=y來決定wifi結點名稱是使用“wlan”,還是”ra”。該驅動包中預設使用的是Linux環境中的”ra”結點名稱。

4、編譯程式碼生成mt7601Usta.ko驅動模組
由於我是為ARM平臺的裝置編譯,上面修改的是PC平臺的編譯引數,而Makefile中依賴了ARCH引數,所以還應該指定ARCH=arm,下面就可以編譯模組了:
make ARCH=arm CHIPSET=7601U
如果以上修改沒有問題,編譯通過之後即可以得到station模式的wifi驅動模組mt7601Usta.ko,如下:
這裡寫圖片描述

5、注意事項
在編譯時出錯,如下圖所示:
這裡寫圖片描述
原因是在修改Makefile的PC平臺編譯引數時指定了linux-3.0.y核心路徑:”LINUX_SRC = /lodb3/Hi3518_SDK_V1.0.8.1/osdrv/kernel/linux-3.0.y”,但該路徑下的核心沒有提前編譯,導致7601所依賴的核心配置檔案和模組版本資訊缺失而無法編譯通過。解決辦法:重新編譯核心,核心編譯通過後再編譯7601驅動模組即可。

6、編譯mt7601Uap.ko
編譯前的修改方法同上,此處不贅述。