Testowanie, debugowanie i dostrajanie Wi-Fi

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Ta strona opisuje, jak testować, debugować i dostrajać implementację Wi-Fi za pomocą narzędzi dostarczonych w AOSP.

Testowanie

Aby przetestować framework Wi-Fi, AOSP zapewnia mieszankę testów jednostkowych, testów integracyjnych (ACTS) i testów CTS.

Testy jednostkowe

AOSP obejmuje testy funkcjonalne i jednostkowe dla domyślnej struktury Wi-Fi: zarówno dla Menedżera Wi-Fi (kod po stronie aplikacji), jak i dla usługi Wi-Fi.

Testy Wi-Fi Managera:

  • Znajduje się w packages/modules/Wifi/framework/tests/
  • Uruchom przy użyciu następującego pliku wykonywalnego powłoki (przeczytaj plik, aby uzyskać więcej opcji wykonywania):

    atest FrameworksWifiApiTests
    

Testy usługi Wi-Fi:

  • Znajduje się w packages/modules/Wifi/service/tests/wifitests/
  • Uruchom przy użyciu następującego pliku wykonywalnego powłoki (przeczytaj plik, aby uzyskać więcej opcji wykonywania):

    atest FrameworksWifiTests
    

Pakiet testowy Android Comms

Pakiet Android Comms Test Suite (ACTS) przeprowadza automatyczne testy stosów łączności, takich jak Wi-Fi, Bluetooth i usługi komórkowe. Narzędzie do testowania wymaga adb i Pythona i można je znaleźć w tools/test/connectivity/acts .

Testy ACTS dla Wi-FI można znaleźć w tools/test/connectivity/acts_tests/tests/google/wifi , z przykładową konfiguracją testu w tym samym katalogu: example_config.json .

Testy CTS

Compatibility Test Suite (CTS) zawiera testy dla frameworka Wi-Fi. Znajdują się one w cts/tests/tests/net/src/android/net/wifi . Testy Wi-Fi CTS wymagają, aby testowane urządzenie było powiązane z punktem dostępowym na początku testu.

Ulepszone opcje rejestrowania do debugowania

Android 9 poprawia rejestrowanie Wi-Fi, aby ułatwić debugowanie problemów z Wi-Fi. W systemie Android 9 lub nowszym bufory pierścieniowe sterowników/oprogramowania układowego mogą być zawsze włączone. Raporty o błędach mogą być automatycznie wyzwalane po wykryciu złego stanu (tylko w kompilacjach userdebug i eng). Gdy używana jest warstwa HAL Wi-Fi (wersja 1.2 lub nowsza), bufory debugowania oprogramowania układowego są przechowywane w warstwie HAL zamiast w strukturze, aby zaoszczędzić koszty IPC.

Realizacja

Aby zapoznać się z implementacją referencyjną, zobacz domyślną implementację w HAL dostawcy.

Rejestrowanie oprogramowania układowego można wyłączyć, ustawiając zasób config_wifi_enable_wifi_firmware_debugging , na wartość false.

Test integracji (ACTS)

Test integracji można znaleźć pod adresem /tools/test/connectivity/acts_tests/tests/google/wifi/WifiDiagnosticsTest.py .

Zweryfikowane zrzuty oprogramowania układowego są utrwalane w odpowiednim katalogu tombstone we flashu dla kompilacji userdebug. Dumpstate zbiera dane z tego katalogu podczas tworzenia raportu o błędzie.

Test ręczny

Uruchom ten test ręczny, aby sprawdzić, czy stare pliki w katalogu tombstone są usuwane.

  1. Włącz Wi-Fi.
  2. Połączyć się z siecią.
  3. Wygeneruj raport o błędzie .
  4. Sprawdź plik zip z raportem błędów i sprawdź, czy /lshal-debug/android.hardware.wifi@1.2__IWifi_default.txt zawiera zarchiwizowane dzienniki oprogramowania układowego.

Strojenie konfiguracji

Aby kontrolować siłę sygnału, przy której urządzenie łączy się lub rozłącza z siecią, struktura Wi-Fi używa progów wejściowych i wyjściowych RSSI.

Progi wejścia i wyjścia są przechowywane jako przeciążalne parametry konfiguracyjne o następujących nazwach (gdzie bad parametr odnosi się do progu wyjścia RSSI):

  • config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz
  • config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
  • config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz
  • config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz

Parametry są przechowywane w <root>/frameworks/base/core/res/res/values/config.xml i mogą zostać przeciążone przy użyciu pliku nakładki <root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml .

Możesz przetestować nowe progi, konfigurując urządzenie za pomocą poleceń adb. (Alternatywnie możesz utworzyć kompilację z nowymi nakładkami, ale użycie poleceń adb zapewnia szybsze wykonanie testów).

adb shell settings put global wifi_score_params \
                             [rssi2|rssi5]=<bad>:<entry>:<low>:<good>

Na przykład następujące polecenie konfiguruje nowe parametry progowe (wartości użyte w tym przykładowym poleceniu są skonfigurowanymi wartościami domyślnymi w bazie kodu AOSP):

adb shell settings put global wifi_score_params \
                       rssi2=-85:-85:-73:-60,rssi5=-82:-82:-70:-57

Aby przywrócić wbudowane wartości parametrów (tj. usunąć nadpisania) użyj następującego polecenia adb:

adb shell settings delete global wifi_score_params