Cezary napisał/a:

Jak ktoś usiądzie i zrobi wsparcie to tak. OpenWrt jest o tyle ciekawym projektem, że nie ma tam określonych zakresów prac czy planowych list urządzeń które trzeba dodać. Wszystko jest na "huuuraaaa", jak ktoś zrobi to może zostać dodany, jak nie to nie. Także ktoś kto ma urządzenie musi to prostu zrobić.

Wiem to ciekawy projekt. Trzymam kciuki za ciebie i resztę brygady ( bo wiem co reprezentujesz ) . pomogłeś mi dużo. Powodzenia.
Trzymajcie sie wszyscy

Cezary napisał/a:
marek445 napisał/a:

witam, czy można wgrać openwrt do wersji rd03v2 używając uart?

No nie, to qualcomm jest, nie wspierany jeszcze.

czy będzie w przyszłości?

witam, czy można wgrać openwrt do wersji rd03v2 używając uart?

Wiem o tym wszystkim i wiem że na wszystko jest sposób tylko trzeba pomyśleć i pewne kwestie zrozumieć.

Zobaczymy czy licznik się wyzeruje po 24-tej. Dzięki Cezary bez Ciebie bym się meczył albo w ogóle bym tego nie zrobił. Należy Ci się dobre piwko.

Działa!! Właśnie syn wyszedł z krzykiem z pokoju że mu internet nie działa ani na telefonie ani na kompie.

OK to nic nie robię zobaczymy co będzie po upływie tego czasu.

root@OpenWrt:~# sh -x /usr/bin/timequotas.sh
+ HOST=B8:3B:CC:51:95:6B
+ HOST1=AC:FD:CE:EA:73:7E
+ LIMIT=160
+ F=/tmp/timequota-B8:3B:CC:51:95:6B
+ '[' -e /tmp/timequota-B8:3B:CC:51:95:6B ]
+ cat /tmp/timequota-B8:3B:CC:51:95:6B
+ USEDTIME=8
+ iw dev phy0-ap0 station dump
+ grep -i -A 1 B8:3B:CC:51:95:6B
+ awk '/inactive time/{print $3}'
+ T=
+ '[' -z  ]
+ iw dev phy1-ap0 station dump
+ grep -i -A 1 B8:3B:CC:51:95:6B
+ awk '/inactive time/{print $3}'
+ T=
+ '[' -z  ]
+ iw dev phy2-ap0 station dump
+ grep -i -A 1 B8:3B:CC:51:95:6B
+ awk '/inactive time/{print $3}'
+ T=1470
+ '[' -z 1470 ]
+ '[' -z 1470 ]
+ '[' -z 1470 ]
+ '[' -z 1470 ]
+ '[' -z 1470 ]
+ '[' -z 1470 ]
+ '[' 1470 -lt 60000 ]
+ USEDTIME=9
+ echo 9
+ '[' 9 -gt 160 ]
+ uci commit firewall
+ /etc/init.d/firewall restart
+ exit 0
root@OpenWrt:~#

nie tworzy żadnej regułki a w skryptach nic nie przestawiałem nie kąbinowałem jest wszystko tak jak wyżej. Uruchomiłem skrypt ręcznie wpisałem w ssh /usr/bin/timequotas.sh Nic mi nie wypisało żadnych błedów.

To w takim razie skrypt timequotas.sh nie tworzy regulek w firewollu dla HOST1 bo w /etc/config/firewall nie mam do tego HOST1 regulek

Właśnie go usunąłem i narazie się nie odbudowywuje. tylko mnie zastanawia jak wpisze: /usr/bin/timequota-clean.sh  to wyskakuje coś takiego:

root@OpenWrt:~# /usr/bin/timequotas-clean.sh
uci: Invalid argument
Section macB83BCC51956B is disabled, ignoring section

I teraz mnie ciekawi czy obydwa urządzenia bedą miały neta po 24-tej

MOże w timequota-clean.sh nie powinno być tego: uci set firewall.mac${HOST1//:/}.enabled=0

Ok mam tak:
timequotas.sh

#!/bin/sh
    HOST="B8:3B:CC:51:95:6B" 
    HOST1="AC:FD:CE:EA:73:7E" 

    # limit w minutach
    LIMIT=160

    F=/tmp/timequota-$HOST
    if [ -e $F ]; then
        USEDTIME=$(cat $F)
    else
        USEDTIME=0
    fi

    T=$(iw dev phy0-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy1-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy2-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy3-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')

    [ -z "$T" ] && T=$(iw dev phy0-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy1-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy2-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy3-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')


    [ -z "$T" ] && exit 0
    if [ $T -lt 60000 ]; then
        USEDTIME=$((USEDTIME + 1))
        echo $USEDTIME > $F
    fi
    if [ $USEDTIME -gt $LIMIT ]; then
        if [ "x$(uci -q get firewall.mac${HOST//:/}.enabled)" != "x1" ]; then 
            uci set firewall.mac${HOST//:/}=rule
            uci set firewall.mac${HOST//:/}.src='lan'
            uci set firewall.mac${HOST//:/}.dest='wan'
            uci set firewall.mac${HOST//:/}.src_mac=$HOST
            uci set firewall.mac${HOST//:/}.target='REJECT'
            uci set firewall.mac${HOST//:/}.enabled=1
        fi
        if [ "x$(uci -q get firewall.mac${HOST1//:/}.enabled)" != "x1" ]; then 
            uci set firewall.mac${HOST1//:/}=rule
            uci set firewall.mac${HOST1//:/}.src='lan'
            uci set firewall.mac${HOST1//:/}.dest='wan'
            uci set firewall.mac${HOST1//:/}.src_mac=$HOST1
            uci set firewall.mac${HOST1//:/}.target='REJECT'
            uci set firewall.mac${HOST1//:/}.enabled=1

        fi
   fi
            uci commit firewall
            /etc/init.d/firewall restart
    exit 0

timequotas-clean.sh

#!/bin/sh
    
    HOST1="AC:FD:CE:EA:73:7E"
    HOST="B8:3B:CC:51:95:6B"
    echo 0 > /tmp/timequota-$HOST
    uci set firewall.mac${HOST//:/}.enabled=0
    uci set firewall.mac${HOST1//:/}.enabled=0
    uci commit firewall
    /etc/init.d/firewall restart
    exit 0

Blokada działa ale w /tmp mam dwa pliki timequotas z adresami mac tymi co są wpisane w skrypt. Na timequotas-B8:3B:CC:51:95:6B licznik leci do przodu a na timequotas-AC:FD:CE:EA:73:7E licznik nie leci jest cały czas 0.

Nie nie to nie jest tak, zmieniłem teraz i w timequota.sh adres mac i w timequotas-clean.sh na mac AC:FD:CE:EA:73:7E
Mam jeszcze jednpo pytanie w takiej konfiguracji jak mam teraz to w  /tmp powinienem mieć dwa pliki z dwoma adresami mac? bo ja właśnie tak mam. Tylko w jednym pliku czas leci a w drugim jest caly czas 0.

w timequotas-clean.sh mam dwa hosty. tak to wygląda:

#!/bin/sh
    
    HOST1="AC:FD:CE:EA:73:7E"
    HOST="B8:3B:CC:51:95:6B"
    echo 0 > /tmp/timequota-$HOST
    uci set firewall.mac${HOST//:/}.enabled=0
    uci set firewall.mac${HOST1/:/}.enabled=0
    uci commit firewall
    /etc/init.d/firewall restart
    exit 0

Już zadziałału usunąłem drugie if [ $USEDTIME -gt $LIMIT ]; then
teraz jak chce zdjąć blokadę wpisem:
/usr/bin/timequotas-clean.sh to wyskakuje mi coś takiego:

root@OpenWrt:~# /usr/bin/timequotas-clean.sh
uci: Invalid argument
Section macB83BCC51956B is disabled, ignoring section

I teraz nie wiem czy o 24:00 zostanie zdjęta blokada.

tak zrobiłem i działa, blokuje obydwa hosty

Na poczatku z jednym hostem działało to pięknie tylko musiałem inne radia dodać. Może ja nie faktycznie nie uruchamiam tego skryptu. W jaki sposób uruchomić ten skrypt?

odblokowałem swój telefon, ale skrypt nie blokuje hostow.

przesyłam wpisy w skryptach.
timequotas.sh

#!/bin/sh
    HOST="B8:3B:CC:51:95:6B" 
    HOST1="30:AB:6A:4C:13:54" 

    # limit w minutach
    LIMIT=5

    F=/tmp/timequota-$HOST
    if [ -e $F ]; then
        USEDTIME=$(cat $F)
    else
        USEDTIME=0
    fi

    T=$(iw dev phy0-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy1-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy2-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy3-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')

    [ -z "$T" ] && T=$(iw dev phy0-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy1-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy2-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy3-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')


    [ -z "$T" ] && exit 0
    if [ $T -lt 60000 ]; then
        USEDTIME=$((USEDTIME + 1))
        echo $USEDTIME > $F
    fi
    if [ $USEDTIME -gt $LIMIT ]; then
        if [ "x$(uci -q get firewall.mac${HOST//:/}.enabled)" != "x1" ]; then 
            uci set firewall.mac${HOST//:/}=rule
            uci set firewall.mac${HOST//:/}.src='lan'
            uci set firewall.mac${HOST//:/}.dest='wan'
            uci set firewall.mac${HOST//:/}.src_mac=$HOST
            uci set firewall.mac${HOST//:/}.target='REJECT'
            uci set firewall.mac${HOST//:/}.enabled=1
        fi
        if [ $USEDTIME -gt $LIMIT ]; then
        if [ "x$(uci -q get firewall.mac${HOST1//:/}.enabled)" != "x1" ]; then 
            uci set firewall.mac${HOST1//:/}=rule
            uci set firewall.mac${HOST1//:/}.src='lan'
            uci set firewall.mac${HOST1//:/}.dest='wan'
            uci set firewall.mac${HOST1//:/}.src_mac=$HOST1
            uci set firewall.mac${HOST1//:/}.target='REJECT'
            uci set firewall.mac${HOST1//:/}.enabled=1

        fi
   fi
            uci commit firewall
            /etc/init.d/firewall restart
    exit 0

timequotas-clean.sh

#!/bin/sh
    
    HOST="30:AB:6A:4C:13:54"
    HOST1="B8:3B:CC:51:95:6B"
    echo 0 > /tmp/timequota-$HOST
    uci set firewall.mac${HOST//:/}.enabled=0
    uci set firewall.mac${HOST1/:/}.enabled=0
    uci commit firewall
    /etc/init.d/firewall restart
    exit 0

W timequota-B8:3B:CC:51:95:6B czas leci, już jest 70 min i dalej moge korzystać z neta. Limit ustawiony jest dla testów 5 min.

Np. jak bym chciał zmienić że 120 min na 180 min albo jak bym chciał zmienić to odwrotnie z 180 na 120

Jedyne co będę robił to albo zmieniał limit czasu albo dodawał hosty.

Mam jeszcze jedno pytanie. Czy jak zmieniam wpisy w skrypcie np. zmieniam limit albo dopisuje hosta to muszę jakoś zrestartować ten skrypt?

Tak zmieniłem, jak będę w domu to wyślę obydwa skrypty i zetkniesz wpisy czy są prawidłowe
A tu w wpisie który usuwa blokadę to wiem że muszę zmienić w dwóch miejscach, ale to dopiero sprawdzę jak wrócę do domu wieczorem.

Sprawdzę to, spróbuję zdjąć blokadę tym wpisem

# echo 0 > "/tmp/timequota-01:02:03:04:05:06"
    # uci set firewall.mac010203040506.enabled=0
    # uci commit firewall
    # /etc/init.d/firewall restart

Sprawdzę to wieczorem, ale ja testowałem to wczoraj przed 12 w nocy. Dodawałem czas żebym mógł korzystać z internetu i to nic nie pomogło

Witam, testowałem  ten skrypt na swoim telefonie i dopisałem komputer dziecka. Tak pokombinowałem że zamiast jego komputer zablokować to zablokowałem swój telefon że cały czas mam blokadę.
Co może być źle w tym skrypcie?

#!/bin/sh
    HOST="AC:FD:CE:EA:73:7E"
    HOST1="B8:3B:CC:51:95:6B" 

    # limit w minutach
    LIMIT=5

    F=/tmp/timequota-$HOST
    if [ -e $F ]; then
        USEDTIME=$(cat $F)
    else
        USEDTIME=0
    fi

    T=$(iw dev phy0-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy1-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy2-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy3-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')

    [ -z "$T" ] && T=$(iw dev phy0-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy1-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy2-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy3-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')


    [ -z "$T" ] && exit 0
    if [ $T -lt 60000 ]; then
        USEDTIME=$((USEDTIME + 1))
        echo $USEDTIME > $F
    fi
    if [ $USEDTIME -gt $LIMIT ]; then
        if [ "x$(uci -q get firewall.mac${HOST//:/}.enabled)" != "x1" ]; then 
            uci set firewall.mac${HOST//:/}=rule
            uci set firewall.mac${HOST//:/}.src='lan'
            uci set firewall.mac${HOST//:/}.dest='wan'
            uci set firewall.mac${HOST//:/}.src_mac=$HOST
            uci set firewall.mac${HOST//:/}.target='REJECT'
            uci set firewall.mac${HOST//:/}.enabled=1
        fi
        if [ "x$(uci -q get firewall.mac${HOST1//:/}.enabled)" != "x1" ]; then 
            uci set firewall.mac${HOST1//:/}=rule
            uci set firewall.mac${HOST1//:/}.src='lan'
            uci set firewall.mac${HOST1//:/}.dest='wan'
            uci set firewall.mac${HOST1//:/}.src_mac=$HOST1
            uci set firewall.mac${HOST1//:/}.target='REJECT'
            uci set firewall.mac${HOST1//:/}.enabled=1
            fi
    fi
            uci commit firewall
            /etc/init.d/firewall restart
        
    exit 0