Hirdetés

Új hozzászólás Aktív témák

  • vargalex

    Topikgazda

    válasz vargalex #2674 üzenetére

    Sziasztok!

    Nos, köszönet juhosg-nek, a wifi-s probléma úgy látszik, hogy megoldódott. Ma elvégeztem én is a tesztet (sajnos a jelentkezők közül a küldött script eredményét még csak poli27 küldte vissza, igaz a megoldást ő még nem erősítette meg), a kollégám routerét használva a korábban tesztelt teljes területen volt wifi jel a megoldás aktiválása után.

    Akkor a probléma magyarázata röviden:

    A boardokon van egy-egy külső LNA (Low Noise Amplifier) chip mindkét bejövő jelen. A chip feladata, hogy erősítse a bejövő jelet, és így javítja a vételi érzékenységet. Valószínűleg az LNA chip vezérlő lábát a kék LED-es boardokon még fixen magasra húzták (azaz be volt kapcsolva az LNA), a későbbi hardware revíziónál pedig átkötötték a 18-19-es GPIO vonalra. Ezt a két GPIO vonalat a gyári firmware nyilván vezérli, ezért jó a wifi, az OpenWrt viszont nem. Utóbbi egyszerűen azért (és ezért is volt ilyen nehézkes a megoldás megtalálása), mert az OpenWrt fejlesztők, ha kapnak egyáltalán, akkor az első példányok egyikéből kapnak, így nálunk sem volt reprodukálható a hiba, mivel nem volt hibás példányuk.
    Juhosg már elkészítette a megfelelő patch-et, tehát, amint commit-olja, az új build-ekben már automatikus lesz a beállítás.
    De a firmware cseréjéig is van megoldás. Egyszerűen a /etc/rc.local-ba (LuCI-ban a Rendszer->Rendszerindítás oldalon a Helyi indítóscript-be) az exit 0 sor elé tegyük be a következőt:

    echo 18 > /sys/class/gpio/export
    echo high > /sys/class/gpio/gpio18/direction
    echo 19 > /sys/class/gpio/export
    echo high > /sys/class/gpio/gpio19/direction

    Ha valakit esetleg érdekel, a következő script derített fényt a megoldásra:

    #!/bin/sh

    check_signals()
    {
    for i in $(seq 1 5); do
    iw dev wlan0 station dump | grep signal
    done
    }

    for g in $(seq 0 31); do
    echo ${g} > /sys/class/gpio/export 2>/dev/null

    [ -e /sys/class/gpio/gpio${g}/direction ] || {
    echo "GPIO${g} is not available, skipping"
    continue
    }

    for s in low high; do
    echo "GPIO${g} signal ${s}:"
    echo ${s} > /sys/class/gpio/gpio${g}/direction
    sleep 1
    check_signals
    done

    echo ""
    done

    Ez az összes GPIO porton végigmegy, és ha állítható, akkor beállítja először alacsony, majd magas állapotra. A kimenet részlete, amin látszik a változás (a GPIO18 magasra állításánál a [ ]-ben található első értéket, a GPIO19 magasra állításánál pedig a második értéket érdemes figyelni):

    GPIO18 signal low:
    signal: -65 [-65, -73] dBm
    signal avg: -66 [-67, -72] dBm
    signal: -63 [-63, -73] dBm
    signal avg: -66 [-67, -72] dBm
    signal: -63 [-63, -73] dBm
    signal avg: -65 [-66, -72] dBm
    signal: -63 [-63, -73] dBm
    signal avg: -65 [-66, -72] dBm
    signal: -63 [-63, -73] dBm
    signal avg: -65 [-66, -72] dBm
    GPIO18 signal high:
    signal: -33 [-33, -70] dBm
    signal avg: -61 [-62, -72] dBm
    signal: -33 [-33, -70] dBm
    signal avg: -61 [-62, -72] dBm
    signal: -33 [-33, -70] dBm
    signal avg: -61 [-62, -72] dBm
    signal: -33 [-33, -70] dBm
    signal avg: -61 [-62, -72] dBm
    signal: -33 [-33, -70] dBm
    signal avg: -61 [-62, -72] dBm

    GPIO19 signal low:
    signal: -41 [-43, -77] dBm
    signal avg: -59 [-60, -72] dBm
    signal: -41 [-43, -77] dBm
    signal avg: -59 [-60, -72] dBm
    signal: -41 [-43, -77] dBm
    signal avg: -59 [-60, -72] dBm
    signal: -41 [-43, -77] dBm
    signal avg: -59 [-60, -72] dBm
    signal: -41 [-43, -77] dBm
    signal avg: -59 [-60, -72] dBm
    GPIO19 signal high:
    signal: -41 [-46, -49] dBm
    signal avg: -56 [-58, -69] dBm
    signal: -41 [-46, -49] dBm
    signal avg: -56 [-58, -69] dBm
    signal: -41 [-46, -49] dBm
    signal avg: -56 [-58, -69] dBm
    signal: -41 [-46, -49] dBm
    signal avg: -56 [-58, -69] dBm
    signal: -41 [-46, -49] dBm
    signal avg: -56 [-58, -69] dBm

    A pillanatnyi értéknél jobban látszik a változás, mint az átlagosnál, de ez várható is.
    Kérlek, hogy mindenképpen jelezzetek vissza az eredményről!

    [ Szerkesztve ]

    Alex

Új hozzászólás Aktív témák