1 (edytowany przez build000 2015-05-16 22:21:15)

Temat: WNDR4300 - obecność radio1 za każdym razem po aktualizacji - jak ?

http://wiki.openwrt.org/toh/netgear/wndr4300 napisał/a:

(...)
5G radio

Sometimes the 5G wifi interface (a separate AR9580 chip attached on PCIe) will completely disappear, because the PCIE_RC strap bit gets stuck at '0'. This can be checked by running "devmem 0x180600b0" and looking at bit 6:

    GOOD: 0x002F055A
    BAD: 0x002F051A

On OpenWRT this causes the kernel to completely ignore the PCIe interface and everything attached to it, so only the onchip 2.4GHz radio will work. On the original firmware it may cause the unit to get stuck in a reboot loop.

If this happens, just power the unit off for about 30 seconds. In fact it might be a good idea to power cycle the unit before OpenWRT's initial boot. See this thread for more information.
(...)

Jak wiadomo w tym sprzęciorku po zaktualizowaniu firmware z oryginalnego do openwrt, czy nawet z openwrt do nowszej/innej wersji openwrt (tylko gdy nie zachowujemy ustawień - z zachowaniem działa od strzału) radio 5 GHz zachowuje się identycznie - zawsze nie działa przy pierwszym starcie - opis objawów i sposobu na odblokowanie go powyżej w cytacie z wiki oraz potwierdzone w praktyce przeze mnie (trzeba po prostu wyłączyć od razu po pierwszym starcie po aktualizacji i odczekać te kilkanaście sekund, po czym włączyć i radio 5 GHz jest już dostępne). Przy oryginalnym firmware zresztą jest to samo - objawia się to wieloma restartami routera po pierwszym włączeniu gołego firmware, aż te radio w końcu zaskoczy.
Teraz pytanie - jak osiągnąć aby za każdym restartem po aktualizacji od razu działało ?
Z powyższego opisu wynika, że jest podobno sposób aby to osiągnąć (odnośnik w powyższym cytacie prowadzący do tematu na forum openwrt) ale nie wiem jak to zastosować w praktyce - z tego co zrozumiałem trzeba każdorazowo ten jeden raz po restarcie zastosować jakiś automat by startował z 30 sekundowym opóźnieniem.
Teraz kwestia już wspominana - jak to osiągnąć ?

Czy nie można tego jakoś dodać do /etc/uci-defaults aby po pierwszym właśnie starcie wykonywał coś w ten deseń (wzorowałem się na /etc/uci-defaults/02-networks):

#!/bin/sh

[ -e /etc/config/wireless ] && exit 0

CZYTAM_PAMIEC=`devmem 0x180600b0`

case "$CZYTAM_PAMIEC" in
  "0x002F055A") echo "radio1 jest ok" ;;
  "0x002F051A") echo "radio1 jest nieobecne - wykonuje reboot" && reboot ;;
  *) echo "nie wykonano skryptu"
esac

uci commit wireless

exit 0

Oczywiście składnia jest zapewne niepoprawna, ale chodzi o samą ideę działania.
Jak widać nie jest tam uwzględniony np. sleep=10 bo...no właśnie - jak opóźnić boot ???
Druga kwestia - czy opóźnienie boot ma sens ? - wszak w końcu jest uruchomiona wtedy część płyty głównej i pcie jest i tak wtedy zasilany, więc tak, czy siak, procek mapuje to złącze i odpowiednie wyniki przekazuje w dalszej części bootowania do sterowników...

2

Odp: WNDR4300 - obecność radio1 za każdym razem po aktualizacji - jak ?

Na prawdę nikt ?

3 (edytowany przez build000 2015-05-17 15:07:55)

Odp: WNDR4300 - obecność radio1 za każdym razem po aktualizacji - jak ?

Czy w Twoich obrazach Cezary (golec i z Luci BB) występuje ten sam problem ?
Czy mój sposób zadziała ? - pytam bo sporo mam potem do konfiguracji...
wink

4

Odp: WNDR4300 - obecność radio1 za każdym razem po aktualizacji - jak ?

Pojęcia nie mam, WNDR4300 na oczy nie widziałem.

Naprawdę to taki problem żeby po aktualizacji go zrestartować jeszcze raz?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5 (edytowany przez build000 2015-05-17 15:20:09)

Odp: WNDR4300 - obecność radio1 za każdym razem po aktualizacji - jak ?

No jest to deko wk... - na oryginalnym to nawet nie wspominam - chciałem go raz już przez okno wy... jak przez 15 minut nie chciał zaskoczyć, a zależało mi na neciku bo miałem pilną sprawę wink
Ponawiam pytanie - czy mój pomysł zadziała (chociaż w sensie czy zaskoczy z uci-defaults po pierwszym starcie po aktualizacji - chwilowo pomijam wcześniej zasugerowaną wątpliwość co do sensowności zastosowania tego)?

6 (edytowany przez build000 2015-05-17 17:27:32)

Odp: WNDR4300 - obecność radio1 za każdym razem po aktualizacji - jak ?

Odpowiem więc sobie sam - skrypt jako taki działa i powoduje restart urządzenia po pierwszym starcie na:
- zaktualizowanym obrazie - bez zachowania ustawień (jednak nie za każdym razem nie wykrywa radio1)
- zainstalowanym na nowo obrazie - z *img - czy to instalowanym z OFW, czy to również z z trybu recovery Netgear
Jednak ów skrypt nie rozwiązuje zasadniczego problemu - każdy kolejny restart nic nie daje - skrypt nadal wykrywa fakt nieobecności radio1 (niepoprawnego zaadresowania/wykrycia sprzętów na magistrali PCIE) i zapętla efekt restartu routera (jednak bez efektu po np. 20 restartach - sprawdzone przed chwilą).

Wracam więc do początku - jak spowodować by:
1) na chwilę utracić zasilanie (żeby zresetowały się rejestry procesora, magistrali PCIE, i.t.d., i.t.p.) i tym samym by kolejny start routera prawidłowo wykrywał obecność radio1 - nie wchodzi w grę wł/wył sprzętowym wyłącznikiem - to ma być automat
2) jeżeli nie jest możliwym fizycznie, technicznie, i.t.d. osiągnąć pkt. 1-ego jak to zrobić inaczej:
    a) jeżeli coś, gdzieś trzeba zmienić w kodzie jądra, openwrt, i.t.d. - to gdzie i jak ?
    b) jeżeli nie tam to np. jak rozbudować mój skrypt, żeby np. resetował magistralę PCIE i wykrywał ją na nowo,
        aby tym samym mieć szansę na pojawienie się karty 5GHz pod prawidłowym adresem (przykładowo
        - nie wiem czy spowoduje to zamierzony efekt końcowy) ?

7

Odp: WNDR4300 - obecność radio1 za każdym razem po aktualizacji - jak ?

1. Nie możesz, że ma jak
2. w kodzie platformy do obługi tego urządzenia. Lecz nie wiem czy to tylko kwestia sleepu czy zmiany czegoś jeszcze. Pisz do tego kto zrobił to urządzenie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8 (edytowany przez build000 2015-05-17 17:20:12)

Odp: WNDR4300 - obecność radio1 za każdym razem po aktualizacji - jak ?

Pisałem - już 2 tydzień bez odzewu - stąd pomysł by to ogarnąć jednak samemu.
Jeszcze wpadł mi do dyńki pomysł by w moim skrypcie przeadresować odpowiednio sterownik - tylko nie wiem
(...jeszcze big_smile ) jak i czy to coś zmieni docelowo.