姓名:張猛
引用自:http://www.embedu.org/Column/Column911.htm
【嵌牛導讀】:要實現視頻信息的實時無線傳輸产阱,這里用到了wifi模塊,wifi模塊采用的是聯發(fā)科的MT7601U模塊酿矢,在USBwif模塊編譯怎燥、加載過程中還是遇到了很多問題蜜暑,這里也是通過分享自己看過的帖子,對驅動編譯和加載過程的一個梳理吧隐绵。
【嵌牛鼻子】:wifi? ?USB? ?驅動? ?加載
【嵌牛提問】:拿到一個陌生的wifi驅動,如何看懂其代碼的大概意思棺禾,并能修改使得它能在自己的平臺上能順利編譯生成.KO驅動文件峭跳,并能被海思平臺識別。
【嵌牛正文】:
1.購買模塊的時候悬襟,賣家一般都會給提供驅動文件拯刁,以及一些其他的資料,這里賣家提供了兩個驅動包割捅,由于Mt7601U支持兩種模式帚桩,AP模式和STA模式,但是這兩個模式并不能同時加載颊乘,我們選擇加載的是STA模式醉锄。
接下來我的操作就是參考下面的內容
將USB-Wifi_driver拷貝到工作目錄中恳不。
解壓驅動源碼包
tar -jxvf USB-Wifi_driver.bz2
解壓完后可以看到目錄DPO_MT7601U_LinuxSTA_3.0.0.4_20130913
2. 移植RT2780驅動
2.1 修改Makefile
2.1.1修改DPO_MT7601U_LinuxSTA_3.0.0.4_20130913目錄下的Makefile
viMakefile
修改49行中的
#PLATFORM = SMDK
為
PLATFORM = SMDK
2.1.2在275行烟勋,修改linux源碼目錄和交叉工具鏈
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 endif
改為
275 ifeq ($(PLATFORM),SMDK)
276LINUX_SRC = /home/linux/work/4412/linux-3.0-fs4412_V3
277 CROSS_COMPILE = arm-cortex_a8-linux-gnueabi-
278 endif
2.1.3修改include/rtmp_def.h文件中第1604行
將上圖中1604行和1605行中的ra改成wlan
改完如下圖所示:
2.1.4查看os/linux/config.mk文件
確保config.mk文件中WPA_SUPPLICANT配置如下圖所示卵惦。
3編譯源碼
在DPO_MT7601U_LinuxSTA_3.0.0.4_20130913目錄下執(zhí)行以下命令編譯源碼
make clean
make -j2
編譯成功后如下圖所示
其中生成的mt7601Usta.ko文件即是我們所需要的驅動程序
將/home/linux/work/4412/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/mt7601Usta.ko拷貝我們的根文件系統中(開發(fā)板的根文件系統)丛塌。
4.拷貝所需的數據文件RT2870STA.dat
在開發(fā)板的根文件系統中創(chuàng)建目錄/etc/Wireless/RT2870STA/(注意,此目錄為開發(fā)板的根文件系統)
mkdiretc/Wireless/RT2870STA/ -p
將源碼目錄中的RT2870STA.dat(如下圖所示)拷貝到剛才創(chuàng)建的etc/Wireless/RT2870STA/目錄中
5.測試
請確保以上幾步已經完成
5.1插上USB-Wifi模塊
將USB-Wifi模塊插到開發(fā)板的USB接口上印衔,可以在端口上看到如下打印信息
5.2加載USB-Wifi模塊
加載驅動程序mt7601Usta.ko
在開發(fā)板上執(zhí)行以下命令
insmodmt7601Usta.ko
加載過程如下圖所示
加載成后如下如所示
5.3配置wlan0網絡
在開發(fā)板上執(zhí)行以下命令
ifconfig wlan0 up