Temat: Sprzętowy wyłącznik WiFi WDR4300

Wita.
Posiadam ruter TL-WDR4300 z gargoyle 1.5.10.
Z tylu ruter posada wyłącznik który w orygilanym sofcie służył do wyłączania WiFi w gargoyle ten wyłącznik nie działa.

Czy istnieje jakiś skrypt który uruchamia ten wyłącznik ?
W jaki prosty sposób można wysterować ten wyłącznik do wyłączania WiFi ?

| C2600 @ OpenWrt 21.02 / LuCi -> sieć gościnna, WINS serwer, VLAN, DLNA, multiwan
| WDR4300 @ OpenWrt 21.02 / LuCI -> extroot, sieć gościnna, WINS serwer
| MR3020 @ MiFi 17.01 -> E3372 HiLink
| WR842ND v2 @ Gargoyle PL 1.13.0 -> testy

2

Odp: Sprzętowy wyłącznik WiFi WDR4300

http://eko.one.pl/?p=openwrt-wdr3600#przyciski

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

3

Odp: Sprzętowy wyłącznik WiFi WDR4300

A gdzie mam ten skrypt umieścić i jak nazwać ten plik żeby to działało zawsze nawet po restarcie rutera ?

| C2600 @ OpenWrt 21.02 / LuCi -> sieć gościnna, WINS serwer, VLAN, DLNA, multiwan
| WDR4300 @ OpenWrt 21.02 / LuCI -> extroot, sieć gościnna, WINS serwer
| MR3020 @ MiFi 17.01 -> E3372 HiLink
| WR842ND v2 @ Gargoyle PL 1.13.0 -> testy

4

Odp: Sprzętowy wyłącznik WiFi WDR4300

On zadziała (skrypt) tylko jak go uruchomisz. W AA switch nie jest obsługiwany tak jak inne przyciski, więc jak chcesz żeby to działało na zasadzie - przełącz i się wyłączy to musisz sobie napisać skrypt które będzie działał w tle to to robił.

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

5

Odp: Sprzętowy wyłącznik WiFi WDR4300

OK
Rozumiem już co i jak. Dzięki za pomoc.

| C2600 @ OpenWrt 21.02 / LuCi -> sieć gościnna, WINS serwer, VLAN, DLNA, multiwan
| WDR4300 @ OpenWrt 21.02 / LuCI -> extroot, sieć gościnna, WINS serwer
| MR3020 @ MiFi 17.01 -> E3372 HiLink
| WR842ND v2 @ Gargoyle PL 1.13.0 -> testy

6 (edytowany przez jaros85 2013-08-08 22:05:54)

Odp: Sprzętowy wyłącznik WiFi WDR4300

Witam.
Postanowiłem napisać mały skrypt obsługujący ten wyłącznik wifi.
Niestety coś jest nie tak.

#!/bin/sh
tmp=0
while :
do
    WIFI=$(if grep -qe "RFKILL.*in  hi" /sys/kernel/debug/gpio; then echo 1; else echo 0; fi)
    if [[ "$WIFI" = "0" ] -eq ["$tmp" = "0"]]; then 
        echo "WiFi: on"
        wifi up
        tmp=1
    elif [[ "$WIFI" = "1" ] -eq ["$tmp" = "1"]]; then
        echo "WiFI: off"
        wifi down
        tmp=0
    fi

    sleep 2
done& 

Niestety mam komunikat sh: missing ]] ale skrypt się wykonuje. Działa źle bo włącza i wyłącza radio co chwilę
Nie mogę się połapać gdzie tych nawiasów brakuje ?

| C2600 @ OpenWrt 21.02 / LuCi -> sieć gościnna, WINS serwer, VLAN, DLNA, multiwan
| WDR4300 @ OpenWrt 21.02 / LuCI -> extroot, sieć gościnna, WINS serwer
| MR3020 @ MiFi 17.01 -> E3372 HiLink
| WR842ND v2 @ Gargoyle PL 1.13.0 -> testy

7

Odp: Sprzętowy wyłącznik WiFi WDR4300

Używaj składni ash, bardziej ogólnej.

if [ "$WIFI" = "0" -a "$tmp" = "0" ]; then

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

8 (edytowany przez jaros85 2013-08-09 07:39:43)

Odp: Sprzętowy wyłącznik WiFi WDR4300

Trochę pomogło.
Teraz już nie wyłącza się wifi cały czas ale i tak nie działa.
Mam komunikat sh: missing ] czyli brakuje mu tylko jednego nawiasu.

Dodam że ten komunikat wyświetla się podwójnie co 2 sekundy.
Czyli tak jak by się czepiał obydwu funkcji warunkowych.

Dodam że jak usunę spację if ["$WIFI" = ... między nawiasem kwadratowym i cudzysłowem mam komunikat:
line 19:  [0: not found  wydaje mi się że spacja w tym miejscu nie powinna mieć żadnego znaczenia.

| C2600 @ OpenWrt 21.02 / LuCi -> sieć gościnna, WINS serwer, VLAN, DLNA, multiwan
| WDR4300 @ OpenWrt 21.02 / LuCI -> extroot, sieć gościnna, WINS serwer
| MR3020 @ MiFi 17.01 -> E3372 HiLink
| WR842ND v2 @ Gargoyle PL 1.13.0 -> testy

9

Odp: Sprzętowy wyłącznik WiFi WDR4300

Pokaż cały kod jaki teraz masz.

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

10

Odp: Sprzętowy wyłącznik WiFi WDR4300

Całość wygląda teraz tak:

#!/bin/sh
tmp=0
while :
do
    WIFI=$(if grep -qe "RFKILL.*in  hi" /sys/kernel/debug/gpio; then echo 1; else echo 0; fi)
   if [ "$WIFI" = "0" -a "$tmp" = "0"]; then
        echo "WiFi: on"
        wifi up
        tmp=1
    elif [ "$WIFI" = "1" -a "$tmp" = "1"]; then
        echo "WiFI: off"
        wifi down
        tmp=0
    fi

    sleep 2
done& 

W kodzie niema else ale chyba nie przez to nie działa.
Wstawiłem takie poprawki o których pisałeś niczym więcej ten kod się nie różni.

| C2600 @ OpenWrt 21.02 / LuCi -> sieć gościnna, WINS serwer, VLAN, DLNA, multiwan
| WDR4300 @ OpenWrt 21.02 / LuCI -> extroot, sieć gościnna, WINS serwer
| MR3020 @ MiFi 17.01 -> E3372 HiLink
| WR842ND v2 @ Gargoyle PL 1.13.0 -> testy

11

Odp: Sprzętowy wyłącznik WiFi WDR4300

Źle. "0"]; ma być "0" ];, błąd składniowy. Spacja jest potrzebna.

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

12

Odp: Sprzętowy wyłącznik WiFi WDR4300

Dzięki.
Faktycznie brakowało mi spacji.
teraz skrypt działa. Mam tylko mały problem skrypt działa przez chwilę może koło minuty wyłącza się i włącza wifi jak przełączę wyłącznik.
Po chwili przestaje reagować na przełącznik tak jakby skrypt się skończył lub zawiesił.
Przeglądałem uruchomione procesy ale też za dużo nie znalazłem.

| C2600 @ OpenWrt 21.02 / LuCi -> sieć gościnna, WINS serwer, VLAN, DLNA, multiwan
| WDR4300 @ OpenWrt 21.02 / LuCI -> extroot, sieć gościnna, WINS serwer
| MR3020 @ MiFi 17.01 -> E3372 HiLink
| WR842ND v2 @ Gargoyle PL 1.13.0 -> testy

13

Odp: Sprzętowy wyłącznik WiFi WDR4300

O czymś takim jak drgania styków słyszałeś? Jeżeli się raz odpali zrób sleep na jakiś czas, niech się zdarzenia uspokoją.

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

14

Odp: Sprzętowy wyłącznik WiFi WDR4300

Lekko zmodernizowałem skrypt.
Po tmp=1 i tmp=0 dodałem sleep 1 tak dla pewności żeby wyeliminować drganie styków.

Mam trochę inny problem teraz. Jak uruchomię skrypt przez putty wszystko działa do czasu aż nie wyłączę putty. Po rozłączeniu skrypt przestaje działać.
Czy jeżeli uruchomię ten skrypt przy starcie systemu to będzie już działał cały czas ? Znaczek & jakoś nie wysyła skryptu w tło ziała cały czas normalnie.

| C2600 @ OpenWrt 21.02 / LuCi -> sieć gościnna, WINS serwer, VLAN, DLNA, multiwan
| WDR4300 @ OpenWrt 21.02 / LuCI -> extroot, sieć gościnna, WINS serwer
| MR3020 @ MiFi 17.01 -> E3372 HiLink
| WR842ND v2 @ Gargoyle PL 1.13.0 -> testy

15

Odp: Sprzętowy wyłącznik WiFi WDR4300

Jak najbardziej masz z & na końcu uruchomić żeby w tło poleciało.

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

16 (edytowany przez jaros85 2014-07-20 19:39:55)

Odp: Sprzętowy wyłącznik WiFi WDR4300

Ze względu na częste pytania przedstawiam sposób uruchomienia wyłącznika WiFi w moim WDR4300 pewnie w WDR3600 będzie tak samo.
Ostateczna i działająca moja wersja skryptu.

1.
Plik umieszczamy gdzie tylko dusza zapragnie ja to mam w /root/skrypty/wifi.sh
Plik musi mieć uprawnienia 755 czyli do wykonywania przez wyszystkich

#!/bin/sh
tmp=0
while :
do
    WIFI=$(if grep -qe "RFKILL.*in  hi" /sys/kernel/debug/gpio; then echo 1; else echo 0; fi)
   if [ "$WIFI" = "0" -a "$tmp" = "0" ]; then
       wifi up
       tmp=1
    sleep 1
    elif [ "$WIFI" = "1" -a "$tmp" = "1" ]; then
       wifi down
       tmp=0
    sleep 1
    fi

    sleep 2
done & 

2.
Następnie do pliku
/etc/rc.local
dodajemy wpis wskazujący na plik z naszym skryptem koniecznie na końcu polecenia znaczek & co powoduje że skrypt będzie działać w tle.

/root/skrypty/wifi.sh &
exit 0

3.
I już.
Przy następnym włączeniu rutera nasz skrypt wystartuje i będzie cały czas działać w tle.
Pierwsze uruchomienie skryptu powoduje wyłączenie a następnie włączenie WiFi. Później skrypt będzie przełączał WiFi w zależności od położenia wyłącznika.

Należy pamiętać że domyślnie w obrazach od Cezarego przycisk RESET włącza i wyłącza WiFi po naciśnięciu.
Jeżeli chce ktoś ten przycisk wykorzystać do WPS zalecam zapoznać się z tym wątkiem.

http://eko.one.pl/?p=openwrt-wps

| C2600 @ OpenWrt 21.02 / LuCi -> sieć gościnna, WINS serwer, VLAN, DLNA, multiwan
| WDR4300 @ OpenWrt 21.02 / LuCI -> extroot, sieć gościnna, WINS serwer
| MR3020 @ MiFi 17.01 -> E3372 HiLink
| WR842ND v2 @ Gargoyle PL 1.13.0 -> testy

17

Odp: Sprzętowy wyłącznik WiFi WDR4300

Wszystko, pięknie działa....

jaros85 napisał/a:

Należy pamiętać że domyślnie w obrazach od Cezarego przycisk RESET włącza i wyłącza WiFi po naciśnięciu.
Jeżeli chce ktoś ten przycisk wykorzystać do WPS zalecam zapoznać się z tym wątkiem.
http://eko.one.pl/?p=openwrt-wps

Z tym sobie poradzić nie mogę, nie wiem gdzie zmienić te parametry i co wpisać....