1. 程式人生 > >MTK WIFI小筆記

MTK WIFI小筆記

一、前言

    這幾天一直在修改WIFI,把自己遇到的問題以及相關知識做一個小小的筆記,畢竟好記
    性不如爛博文。

二、WIFI相關問題注意事項

    在遇到WIFI問題的時候,要注意以下事項:
    1.天線:首先我們要確認測試機和對比機的天線是否一樣,如果不一樣就沒有可對比性。
    2.WIFI的FW版本:FW指的是Firmware,WIFI的FW版本號怎麼看呢,進入MTK的工程
    模式-Connectivity-WiFi,PS:這個時候要保證WIFI是關閉狀態的,有些手機還是即
    使WIFI是關閉狀態的,還是彈出讓你關閉WLAN的提示,這個時候。你就要去WLAN設定裡
    把WIFI共享熱點關閉;如果還是提示,你就在設定中把WIFI被搜尋到這個功能關閉。如
    果FW的版本號不一致,可以和MTK溝通,看一下是不是FW版本造成的。
    3.WIFI的CHIP:CHIP值的檢視和FW是一樣的,CHIP的不同會造成WIFI效能的差異,
    一般來說MT6630的效能就會MT6571的效能好。

三、抓取LOG

    如果上面的問題都檢查過了,就行改抓取LOG了。WIFI的問題需要抓取MTK log和
    sniffer log。MTK log就不多說了,開啟直接抓就行了,sinffer log的抓取
    需要工具,可以參看MTK的FAQ :FAQ06838。

四、我遇到的問題

    此次遇到的問題是,在遮蔽室裡,WIFI的上傳和下載速率測試,測試機比對比機機
    慢了將近一倍,檢視MTK log中的kernel.log,
    測試機:01-20 11:50:21.820672  3241  3241 D [  166.670547](0)
    [3241:tx_thread][name:wlan_gen2&]: (RLM INFO) STA 40mAllowed=0

    對比機:01-20 11:50:21.820672  3241  3241 D [  166.670547](0)
    [3241:tx_thread][name:wlan_gen2&]: (RLM INFO) STA 40mAllowed=1

    可以看到對比機的40mAllowed=1,而測試機40mAllowed=0;這是因為測試的40MHz
    沒有開啟。因為MTK6737T平臺預設的20MHz,因為20MHz的抗干擾性比較好,因此默 
    認使用的是20MHz。如何開啟40MHz?首先判斷測試機使用的是gen2下的程式碼還是gen3 
    下的程式碼(路徑:kernel-3.18/drivers/misc/mediatek/connectivity/wlan/) 
    如何判斷呢?其實從上面的LOG中可以看到[name:wlan_gen2&]。可以看出來走的是gen2 
    的程式碼。那麼怎麼開啟呢?

    gen2修改:在gen2/include/config.h檔案中,搜尋20bw,會搜尋到一下資訊:
    #define CFG_FORCE_USE_20BW   1
    我們只需要將1修改成0就行了,具體原因下面解釋。

    gen3修改:如果使用的是gen3下的程式碼,那麼就在wlanInitFeatureOption() 中:
    /* Max bandwidth setting
         * 0: 20Mhz
         * 1: 40Mhz
         * 2: 80Mhz
         * 3: 160Mhz
         * 4: 80+80Mhz
         * Note: For VHT STA, BW 80Mhz is a must!
         */
        prWifiVar->ucStaBandwidth = (UINT_8) wlanCfgGetUint32(prAdapter, "StaBw", MAX_BW_160MHZ);
        prWifiVar->ucSta2gBandwidth = (UINT_8) wlanCfgGetUint32(prAdapter, "Sta2gBw", MAX_BW_20MHZ);
         == > 這裡需要開啟 40MHz support 
        prWifiVar->ucSta5gBandwidth = (UINT_8) wlanCfgGetUint32(prAdapter, "Sta5gBw", MAX_BW_80MHZ);

        原因解釋: force 20MHz 的巨集關閉後,driver 中就不會強制使用 20MHz 。 
        此時連線AP的時候就會根據AP端的設定,因此我們在測試的時候,還需要把 
        AP設定成僅支援 40MHz。

五、後語

    自己以前沒有遇到過wifi相關的問題,這次遇到就做一下簡記,以便以後工作中遇 
    到此類問題能夠更好的解決。這次內容比較少,以後遇到了,在往裡面新增吧。

後續

開啟40MHZ造成的問題

開啟40Mhz之後會造成WIFI認證測試的一些測試項Fail,因此MTK給的建議是
不開啟40MHZ,因為20MHZ的抗干擾性比較好,在現實生活中20MHZ和40MHZ的速度差不多的。