網上關於在openwrt上使用mt7620的官方wifi驅動的文章已經,但在親自實踐中總是有些不足,本文記錄下調試過程,供有需要的人蔘考。
1.驅動版本
mtk是有提供官方的openwrt版本的,網上能找到的最新的是mtk-openwrt-sdk-20160324-8f8e4f1e.tar.bz2
2.驅動移植
將mtk-openwrt的package/ramips完整拷貝的cc版本的package/ramips下,參照https://github.com/nextLVL/openwrt_CC_miwifi_mini中將mt720的驅動補丁更新。完成後make menuconfig,在MTK Properties->Drivers->kmod-mt7620進行驅動配置,我的配置如下:
另外,還需選擇MTK Properties->Applications->uci2dat,用於將uci格式的參數轉換成mtk wifi驅動的配置文件。
當然,在進行這些配置之前,先要去掉openwrt所使用的開源wifi驅動:
target/linux/ramips/mt7620/target.mk中DEFAULT_PACKAGES += kmod-mt7620,替換原始的DEFAULT_PACKAGES += kmod-rt2800-pci kmod-rt2800-soc,並確定make menuconfig中kernel modules->Wireless Drivers->kmod->rt2800-pci和kmod-rt2800-soc已經沒有選擇。
之後編譯版本燒錄即可。
3.apcli配置
網上找的配置apcli的方法如http://blog.csdn.net/jk110333/article/details/39252487,但有些資源沒有提供清楚。
1)uci2dat需要修改,mtk openwrt中沒有對apcli參數進行轉換,參照https://github.com/widora/openwrt_widora/blob/148ebc8b338b65adea0cfc7fd8271790492fd72d/package/mt7628WIFI/src/uci2dat.c修改uci2dat
2)/etc/config/wireless配置如下
config wifi-device 'mt7620'
option type 'mt7620'
option vendor 'ralink'
option band '2.4G'
option channel '0'
option auotch '2'
config wifi-iface
option device 'mt7620'
option ifname 'ra0'
option network 'lan'
option mode 'ap'
option ssid 'mt7620-1234'
option disabled '0'
option encryption 'none'
option ApCliEnable '1'
option ApCliSsid 'APssid'
option ApCliAuthMode 'WPA2PSK'
option ApCliEncrypType 'AES'
option ApCliWPAPSK '12345678'
修改apcli相關參數即可,注意channel必須與ApCliSsid所在信道一樣。將network.wan.ifname設置成apcli0並重新生效network。
即使按照上面步驟完成了,也有可能apcli也可能不能成功連接上,console可能會出現類似the BSSID byte5 MUST be the multiple of 2的打印,只需將eeprom中wifi的mac修改成偶數即可。
3)另外,使用wifi命令使可能無法重新生效wifi配置,在package/ramips/drivers/mt7620/files/mt7620.sh修改disable_mt7620()函數,調用disable_ralink_wifi之前先調用ifconfig apcli0 down > /dev/null 2>&1即可