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

  • woodworm

    veterán

    válasz Vtmk #49 üzenetére

    Amikor először találkoztam a prometheusszal, akkor minden előképzettség nélkül egy orosz fórumról, google fordító segítségével tanultam. A többször linkelt cikk alapján, ugyancsak minden előképzettség nélkül, készítették el userek a saját padavanjukat.

    Lehet nem cifrázom túl, de ha sorrendben elvégzed azokat a pontokat, amiket felsoroltam, akkor a saját szemeddel látod mi történik. Igen, lassú gépen nem 5 perces folyamat. De ennek ez az útja.

    Két napja a rendszert sem ismerted, vagy 10-20 üzenetváltás elment arra, hogy egyáltalán feladd a read only fájlrendszer vagy a kész fw módosítását.

    Nem értem egyébként, hogy értelemszerűen sorszámozott menüpontok egymás utáni elvégzése miért okoz problémát.
    Főmenü 1, 2, 3, belépsz a 4-esbe. Ha módosítani akarod a konfigot, akkor 1, ha akarsz skineket 2, ezután (vagy ha az előző kettőre nem tartasz igényt) mehet a 3-as.

    [ Szerkesztve ]

  • Vtmk

    tag

    válasz woodworm #48 üzenetére

    Aki keresné itt van az a file ahol a nyelvek vannak:

    padavan-ng/trunk/.config

    a filt-t ubuntuban csak terimnálban látod:
    De abban tudod szerkeszteni mindjárt én a rus-t kiszedtem:
    alt +x = #

    AZ EN.dict még nem látom hol van.. Még darálja a 3-as menü.. Amint megvan már rakom is be.

    [ Szerkesztve ]

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    válasz woodworm #53 üzenetére

    Még a ledes részt keresem...

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    válasz woodworm #55 üzenetére

    Mire írjam át?

    /* ASUS RT-AC1200GU */
    #define BOARD_PID "RT-AC1200GU"
    #define BOARD_NAME "RT-AC1200GU"
    #define BOARD_DESC "ASUS RT-AC1200GU Wireless Router"
    #define BOARD_VENDOR_NAME "ASUSTek Computer Inc."
    #define BOARD_VENDOR_URL "http://www.asus.com/"
    #define BOARD_MODEL_URL "http://www.asus.com/Networking/RTN56U_B1/"
    #define BOARD_BOOT_TIME 30
    #define BOARD_FLASH_TIME 120
    #define BOARD_GPIO_BTN_RESET 41
    #define BOARD_GPIO_BTN_WPS 43
    #define BOARD_GPIO_LED_ALL 46
    #undef BOARD_GPIO_LED_WIFI
    #define BOARD_GPIO_LED_SW2G 14 /* soft led */
    #define BOARD_GPIO_LED_SW5G 15 /* soft led */
    #define BOARD_GPIO_LED_POWER 48
    #define BOARD_GPIO_LED_LAN 7
    #define BOARD_GPIO_LED_WAN 16
    #define BOARD_GPIO_LED_USB 47
    #undef BOARD_GPIO_LED_ROUTER
    #undef BOARD_GPIO_PWR_USB
    #define BOARD_HAS_5G_11AC 1
    #define BOARD_NUM_ANT_5G_TX 2
    #define BOARD_NUM_ANT_5G_RX 2
    #define BOARD_NUM_ANT_2G_TX 2
    #define BOARD_NUM_ANT_2G_RX 2
    #define BOARD_NUM_ETH_LEDS 0
    #define BOARD_HAS_EPHY_L1000 1
    #define BOARD_HAS_EPHY_W1000 1
    #define BOARD_NUM_UPHY_USB3 0
    #define BOARD_USB_PORT_SWAP 0

    -------
    #undef BOARD_GPIO_LED_WIFI

    [ Szerkesztve ]

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • woodworm

    veterán

    válasz Vtmk #56 üzenetére

    Gőzöm sincs, ha tudtam volna, akkor írom a módosítást is. Talán az openwrt forrásban lehet ránézni. Vargalex készítette a patchet, esetleg tudja melyik gpion van.

  • Vtmk

    tag

    válasz woodworm #57 üzenetére

    A srácot itt is meg lehet találni?

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    válasz woodworm #57 üzenetére

    Most gyártom a buildel. Magyarosan és egy másik skinnel.
    A ledet meg hagyom még egyenlőre nem dobom el a projektet ki van csomagolva majd adja magát. Meg még úgyis kell hozzá írni magyar szöveget.
    Tesztelek....

    Csak kérdés hova fogja létrehozni a cuccot..

    [ Szerkesztve ]

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    Kész van végre a cucc!
    Jó még kell dolgoznom rajta a nyelven van még mit írni.
    De a skin is összejött és a panelban a firmware frissítésen át feltöltöttem és magától megcsinálta. Ja és az adatok minden megmaradt.



    [ Szerkesztve ]

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • nrg_52

    addikt

    válasz Vtmk #60 üzenetére

    Egesz korrektul nez ki! :K

    [ Szerkesztve ]

    Ma próbáltam jobb ember lenni, de a világ nem hagyja.

  • woodworm

    veterán

    válasz Vtmk #60 üzenetére

    Gratula! Ugyan egy kis finomítás ráférhet még, néhány helyen érdekes lett a megfogalmazás. Pl. avg használat, operációs mód. Előbbi akár maradhatna az eredeti is, utóbbi pedig egyszerűen Üzemmód, Müködési mód.

    A logót és dict fájlt egy meglévőt cserêltél vagy újat hoztál létre és módosítottad a html kódot hozzá?

  • Vtmk

    tag

    válasz woodworm #62 üzenetére

    Szia. Tudom a nyelven még sokat kell írnom ez még csak teszt. Amúgy bekapcsoltam az összes témát. És megjelenik a panelben egy téma választó logót lehet megadni url ben meg a betüket formázni. Hátteret.

    De én kicseréltem a logot.
    A nyrlvi fájl. Az english file írtam át és a ruszkit kikapcsoltam.
    Csak 11 órakor már nem álltam neki buildelni. 52 percig tart. De majd ma írom tovább. Win 7 mellett van fent az ubuntu 16.04 abban bármikor tudom folytatni.
    Amugy prometheusban a fomenuben 3 rleg volt ztana 4 firmware skinek ja meg a condig szerkesztesben a rus kinyomtam #
    Azt build daralas.

    De a logo méretet at fogom irni nagyobbra. Delutan rakok fel képet róla.
    Az angol nyelvi file 2 db van enheader es enfooter.

    [ Szerkesztve ]

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • woodworm

    veterán

    válasz Vtmk #63 üzenetére

    Logót én is raktam, de nem másik helyébe, hanem pluszként, módosítva a kódot.
    Mivel fejléc és lábléc csak az angolhoz van, lehet érdemesebb lett volna másik nyelvi fájlt módosítani, lehet azok struktúrán belül kezelik a cserét és megmaradt volna az angol, mint alapnyelv.

  • Vtmk

    tag

    válasz woodworm #64 üzenetére

    Én csak a magyart akartam. Se angol se orosz csak magyar. Ha irtam volna bele magyart az angol is ott fityegne. De na nehogy mán. Én nich sprechen english! Daaaa.
    Full magyar 6-7 skin. Jó ez így neken.

    A ledes dolgot a wifi 2 nev 5g még nem tom szerintem kinézem a gyári firmware bol. Csak remenykedek,hogy abban az 1 file ban kell csak firkalni... utana kb soha tobbet nem kell felmennem a panelba. Es lesz egy kozeposztalyos rutyibol egy fullos.
    Befejezem a router gyartasat a gyarto helyett. Már megérte megvenni :DD

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    válasz woodworm #64 üzenetére

    Factory resetnel elszallna a firmware?

    Merr azert kerdem ha kell valakinek akkor uresen adatok nelkul megosztom.

    [ Szerkesztve ]

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    Megkerdeztem nemreg az asust. Hogy a firmwareban hol talalhato a wifi led funkcio. Nem tudtak megmondani a technikain. Sot meg a gyartot megkerdeznek biztos nem mondana el..

    Tehat marad az amerikai kezi...
    Asus gyari firmware letolt 7zip kipakol es szemrebbenes nelkul belekockulva keresni konfig filet meg annak a megfelelo funkcio fule at. Annyit mondott megvan adva melyik porton kell lennie a wifi ledeknek.

    Most az meg a kerdes a padavanban benne van a wifi led funkcio vagy nincs mert a .configba hiaba irom at az undefin defined re meg annak a portjat ha nem is letezik benne a wifi led funkcio.
    :U

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    Végfejlemény:

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • woodworm

    veterán

    válasz Vtmk #67 üzenetére

    A config a fordítóé, csodálkoznék, ha ezt ilyen egyszerű formában kimazsoláznád a kibontott trx fájlból. A 7zip ugyanis csak a számára értelmezhető formátumot jeleníti meg, de az image nem csak ennyiből áll.
    Az asusnál leráztak, a honlapon letölthető a forráskód, igaz, hogy teljesen más logikával épül fel, de azért meg lehet benne találni a kérdéses beállítást.

    #elif defined(ASUS_RTAC1200GU)
    #define RST_BTN 41 /* ND_WP */
    #define WPS_BTN 43 /* ND_CLE */
    #define PWR_LED 48 /* ND_D3 */
    #define WIFI_2G_LED 14 /* WLAN_N */
    #define USB_LED 47 /* ND_D2 */
    #define WIFI_5G_LED 15 /* WLAN_N */
    #define WAN_LED 16 /* EPHY_LED0 */
    #define LAN_LED 7 /* EPHY_LED1 */

    Mivel ez első látásra megegyezni látszik a padavanos értékekkel, lehet, hogy máshol a hiba.

    (#68) Vtmk
    Az az "Avg használat" még mindig bántja a szememet. Nem láttam még fordítani sehol, de az Átlagos (Átl.) használat vagy terhelés inkább megfelelne oda. Én hagynám az eredetit.

    [ Szerkesztve ]

  • Intruder2k5

    MODERÁTOR

    válasz Vtmk #68 üzenetére

    + ha lehet javasolni...

    A Wifi-t inkább WiFi-nek írnám, így kevésbé folyik össze, bár ez inkább csak esztétikai kérdés. Viszont a "Block" és az "Unblock" nálad pont fordított értelmet nyert mint az eredeti angol nyelvű változatban. Talán jobb lenne "Blokkol" és "Felold", esetleg "Enged".

    Amúgy gratula, hamar belejöttél. :C

  • Vtmk

    tag

    válasz Intruder2k5 #70 üzenetére

    Köszi. De nagyon amatőr vagyok ebben..

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    válasz nrg_52 #71 üzenetére

    :R

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    válasz woodworm #69 üzenetére

    A gyari firmware asus 57ben talatam ketto mappat egy egy file es a kiterjeszteuk ko se windows se ubuntu16.04 nem nyitja meg semmivel.

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • nrg_52

    addikt

    válasz Vtmk #73 üzenetére

    Bakker le kell fekudnom aludni: felreolvastam az alairasod + azt hittem az az uzenet... :DDD :DDD :DDD

    Ma próbáltam jobb ember lenni, de a világ nem hagyja.

  • Vtmk

    tag

    Bassz nem tudom már hova menti ez a szutyok a trx file-t beszarok...

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    Komolyan mindent lefogok írni lépésről lépésre. Elfelejtettem vagy valamit nem jól állrítottam be de nem találom a mentési mappát.

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    válasz woodworm #78 üzenetére

    A padavan-ng mappa melle kene letrehoznia jaja de nekem nem csinalta meg azt a mappat. Koszi a segitseget. Csak az okát nem vágom miert nem.

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Gyurka6

    őstag

    Hali!
    Ubuntu, letoltottem a wget....
    Inditom a start.sh -t

    Ez jelenik meg, a konyvtarakat kezzel hoztam letre, mert elsore a megjegzzeshez nem volt a mar letezik kiegeszites:

    mkdir: nem lehet a következő könyvtárat létrehozni: ”//scripts”: A fájl már létezik

    mkdir: nem lehet a következő könyvtárat létrehozni: ”//configs”: A fájl már létezik

    mkdir: nem lehet a következő könyvtárat létrehozni: ”//files”: A fájl már létezik

    mkdir: nem lehet a következő könyvtárat létrehozni: ”//logs”: A fájl már létezik
    tar: update.tar: a következő függvény meghiúsult: open: Nincs ilyen fájl vagy könyvtár
    tar: Error is not recoverable: exiting now
    /start.sh: sor: 87: ./scripts/up2.sh: Nincs ilyen fájl vagy könyvtár
    Скрипты: OK

    Az egy kicsit gyanus, hogy amd64 -es megjegyzesu file/-okat telepitgetett

    Gyurka

  • Vtmk

    tag

    válasz Gyurka6 #80 üzenetére

    Szia itt telepitesi bajok vannak. Meg ubuntu jog. Terminalban root vavy? En gyokbe hoztam letre a scriptet. Es megy. Leiras alapjan.

    chmod +x start.sh

    De nem itt hanem ahova letoltotted azt az utvonalat add meg kulonben nem lesz jogosultsaga az sh nak.

    [ Szerkesztve ]

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Gyurka6

    őstag

    válasz Vtmk #81 üzenetére

    Hali!
    Mondjuk erre nem gondoltam (nem használtam még ubuntu-t), ez a sudo nem is igazán tetszik, de ez volt kéznél. Hogyan nyitok terminált rootként? Az sudo mc az megy.... Ráadásnak a bill. is angol.

    [ Szerkesztve ]

    Gyurka

  • Vtmk

    tag

    válasz Gyurka6 #82 üzenetére

    Ubuntu magyar desktopot szoktam felrakni. Programokban beirod a keresobe terminal.

    Sudo su
    Bekeri a jelszot enter es root vagy.

    Berakod a 3 parancsot es megy a script..

    En se tudtam megtanultam sokat olvastam.

    Nem olyan egyszeru tudni kell mit akarsz es mi kell hozza.

    Telepites terminalban ha kell valami mas apt get install glances pl.

    [ Szerkesztve ]

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Gyurka6

    őstag

    válasz Vtmk #83 üzenetére

    Koszi, kerestem kozben... most mar ilyent ir ki:
    Please select a repository:
    1) Padavan-ng (Linaro)
    2) Padavan [Not supported in this version]

    Kozben latom hogy Neked is ezt irta
    de azert meg is mas
    You have just selected the padavan-ng (linaro) repository.
    Some parts of code in the Linux kernel related to a chip flashing has been rewritten and not carefully tested!
    It's NOT RECOMMENDED to use this repository if your device HAS NO RECOVERY MODE
    Press any key to continue...
    Meg is megy tobvabb.... meglatom mi lesz

    [ Szerkesztve ]

    Gyurka

  • Vtmk

    tag

    válasz Gyurka6 #84 üzenetére

    1

    utána ki kell választani melyik a te géped gyártó - típus.

    Utána megjön egy menü

    3-a gomb az petyeg kb 58 percet az megvan akkor nyelvi file skin meg config file szerkesztés utána mikor minden kész 4-es gomb gyártás...

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Gyurka6

    őstag

    válasz Vtmk #85 üzenetére

    OK!
    Most:Building gcc ,teker a vinyo, jo lassu laptop hdd, tovabb lepett: Configuring core C gcc compiler

    Gyurka

  • Vtmk

    tag

    Asszem megvan a wifi ledes dolog csak még nem tudom a matek végét:

    Trunk/user/rc/net_wifi_c

    /*
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License as
    * published by the Free Software Foundation; either version 2 of
    * the License, or (at your option) any later version.
    *
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    * GNU General Public License for more details.
    *
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
    * MA 02111-1307 USA
    */
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdarg.h>
    #include <errno.h>
    #include <syslog.h>
    #include <ctype.h>
    #include <string.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <net/if.h>
    #include <time.h>
    #include "rc.h"
    #include "switch.h"
    #include "gpio_pins.h"
    static int
    wif_control(const char *wifname, int is_up)
    {
    return doSystem("ifconfig %s %s 2>/dev/null", wifname, (is_up) ? "up" : "down");
    }
    void
    mlme_state_wl(int is_on)
    {
    nvram_set_int("mlme_radio_wl", is_on);
    }
    void
    mlme_state_rt(int is_on)
    {
    nvram_set_int("mlme_radio_rt", is_on);
    }
    void
    mlme_radio_wl(int is_on)
    {
    #if BOARD_HAS_5G_RADIO
    const char *wifname = find_wlan_if_up(1);
    if (!wifname)
    return;
    doSystem("iwpriv %s set %s=%d", wifname, "RadioOn", (is_on) ? 1 : 0);
    #endif
    mlme_state_wl(is_on);
    #if defined(BOARD_GPIO_LED_SW5G)
    LED_CONTROL(BOARD_GPIO_LED_SW5G, (is_on) ? LED_ON : LED_OFF);
    #endif
    }
    void
    mlme_radio_rt(int is_on)
    {
    const char *wifname = find_wlan_if_up(0);
    if (!wifname)
    return;
    doSystem("iwpriv %s set %s=%d", wifname, "RadioOn", (is_on) ? 1 : 0);
    mlme_state_rt(is_on);
    #if defined(BOARD_GPIO_LED_SW2G)
    LED_CONTROL(BOARD_GPIO_LED_SW2G, (is_on) ? LED_ON : LED_OFF);
    #endif
    #if defined(USE_RT3352_MII)
    if (is_on) {
    int i_val = nvram_wlan_get_int(0, "TxPower");
    doSystem("iwpriv %s set %s=%d", wifname, "TxPower", i_val);
    }
    // isolation iNIC port from all LAN ports
    phy_isolate_inic((is_on) ? 0 : 1);
    #endif
    }
    int
    get_mlme_radio_wl(void)
    {
    return nvram_get_int("mlme_radio_wl");
    }
    int
    get_mlme_radio_rt(void)
    {
    return nvram_get_int("mlme_radio_rt");
    }
    int
    get_enabled_radio_wl(void)
    {
    return nvram_wlan_get_int(1, "radio_x");
    }
    int
    get_enabled_radio_rt(void)
    {
    return nvram_wlan_get_int(0, "radio_x");
    }
    int
    get_enabled_guest_wl(void)
    {
    return nvram_wlan_get_int(1, "guest_enable");
    }
    int
    get_enabled_guest_rt(void)
    {
    return nvram_wlan_get_int(0, "guest_enable");
    }
    int
    get_mode_radio_wl(void)
    {
    return nvram_wlan_get_int(1, "mode_x");
    }
    int
    get_mode_radio_rt(void)
    {
    return nvram_wlan_get_int(0, "mode_x");
    }
    int
    is_apcli_wisp_wl(void)
    {
    return nvram_wlan_get_int(1, "sta_wisp");
    }
    int
    is_apcli_wisp_rt(void)
    {
    return nvram_wlan_get_int(0, "sta_wisp");
    }
    int
    get_apcli_sta_auto(int is_aband)
    {
    int i_sta_auto = 0;
    #if defined(USE_RT3352_MII)
    // iNIC not support ApCliAutoConnect
    if (is_aband)
    #endif
    i_sta_auto = nvram_wlan_get_int(is_aband, "sta_auto");
    return i_sta_auto;
    }
    char *
    get_apcli_wisp_ifname(void)
    {
    int i_mode_x;
    #if !defined(USE_RT3352_MII)
    i_mode_x = get_mode_radio_rt();
    if (get_enabled_radio_rt() && (i_mode_x == 3 || i_mode_x == 4) && is_apcli_wisp_rt() &&
    (strlen(nvram_wlan_get(0, "sta_ssid")) > 0))
    return IFNAME_2G_APCLI;
    #endif
    #if BOARD_HAS_5G_RADIO
    i_mode_x = get_mode_radio_wl();
    if (get_enabled_radio_wl() && (i_mode_x == 3 || i_mode_x == 4) && is_apcli_wisp_wl() &&
    (strlen(nvram_wlan_get(1, "sta_ssid")) > 0))
    return IFNAME_5G_APCLI;
    #endif
    return NULL;
    }
    static void
    check_apcli_wan(int is_5g, int radio_on)
    {
    int man_id, wisp_id;
    char *man_ifname, *wisp_ifname;
    if (get_ap_mode())
    return;
    is_5g &= 1;
    man_id = -1;
    man_ifname = get_man_ifname(0);
    if (strcmp(man_ifname, IFNAME_2G_APCLI) == 0)
    man_id = 0;
    #if BOARD_HAS_5G_RADIO
    else if (strcmp(man_ifname, IFNAME_5G_APCLI) == 0)
    man_id = 1;
    #endif
    wisp_id = -1;
    wisp_ifname = get_apcli_wisp_ifname();
    if (wisp_ifname) {
    if (strcmp(wisp_ifname, IFNAME_2G_APCLI) == 0)
    wisp_id = 0;
    #if BOARD_HAS_5G_RADIO
    else if (strcmp(wisp_ifname, IFNAME_5G_APCLI) == 0)
    wisp_id = 1;
    #endif
    }
    if (man_id != wisp_id) {
    /* MAN interface changed, need full restart WAN */
    full_restart_wan();
    } else if (radio_on && wisp_id == is_5g) {
    /* MAN interface still ApCli, need restart WAN after acpli0 down/up */
    try_wan_reconnect(1, 0);
    }
    }
    static inline void
    wif_control_m2u(int is_aband, const char *wifname)
    {
    #if !defined(USE_IGMP_SNOOP)
    int i_m2u = nvram_wlan_get_int(is_aband, "IgmpSnEnable");
    brport_set_m2u(wifname, i_m2u);
    #endif
    }
    #if defined(USE_RT3352_MII)
    static void
    update_inic_mii(void)
    {
    #if 0
    int i;
    const char *ifname_inic = IFNAME_INIC_MAIN;
    // below params always set in new iNIC_mii.obj
    doSystem("iwpriv %s set %s=%d", ifname_inic, "asiccheck", 1);
    // config RT3352 embedded switch for VLAN3 passthrough
    doSystem("iwpriv %s switch setVlanId=%d,%d", ifname_inic, 2, INIC_GUEST_VLAN_VID);
    // power down unused PHY of RT3352 embedded switch
    for(i = 0; i < 5; i++)
    doSystem("iwpriv %s switch setPortPowerDown=%d,%d", ifname_inic, i, 1);
    // add static IGMP entries (workaround for IGMP snooping bug in iNIC firmware)
    doSystem("iwpriv %s set IgmpAdd=%s", ifname_inic, "01:00:5e:7f:ff:fa"); // SSDP IPv4
    doSystem("iwpriv %s set IgmpAdd=%s", ifname_inic, "01:00:5e:00:00:fb"); // mDNS IPv4
    doSystem("iwpriv %s set IgmpAdd=%s", ifname_inic, "01:00:5e:00:00:09"); // RIP IPv4
    // doSystem("iwpriv %s set IgmpAdd=%s", ifname_inic, "33:33:00:00:00:0c"); // SSDP IPv6
    // doSystem("iwpriv %s set IgmpAdd=%s", ifname_inic, "33:33:00:00:00:fb"); // mDNS IPv6
    #endif
    }
    static void
    start_inic_mii(void)
    {
    const char *ifname_inic = IFNAME_INIC_MAIN;
    if (nvram_get_int("inic_disable") != 1) {
    /* release iNIC reset pin */
    cpu_gpio_set_pin(1, 1);

    usleep(50000);

    /* enable iNIC RGMII port */
    phy_disable_inic(0);

    /* start iNIC boot */
    wif_control(ifname_inic, 1);

    /* update some iNIC params */
    update_inic_mii();

    if (get_mlme_radio_rt()) {
    /* clear isolation iNIC port from all LAN ports */
    phy_isolate_inic(0);
    } else {
    /* disable mlme radio */
    doSystem("iwpriv %s set %s=%d", ifname_inic, "RadioOn", 0);
    }

    /* add rai0 to bridge (needed for RADIUS) */
    br_add_del_if(IFNAME_BR, ifname_inic, is_need_8021x(nvram_wlan_get(0, "auth_mode")));
    } else {
    /* force disable iNIC (e.g. broken module) */

    /* down iNIC interface */
    wif_control(ifname_inic, 0);

    // set isolate iNIC port from all LAN ports
    phy_isolate_inic(1);

    /* disable iNIC RGMII port */
    phy_disable_inic(1);

    /* raise iNIC reset pin */
    cpu_gpio_set_pin(1, 0);

    logmessage(LOGNAME, "iNIC module disabled! (NVRAM %s=1)", "inic_disable");
    }
    }
    void
    check_inic_mii_rebooted(void)
    {
    int rt_mode_x;
    if (!get_mlme_radio_rt()) {
    doSystem("iwpriv %s set %s=%d", IFNAME_INIC_MAIN, "RadioOn", 0);
    return;
    }
    rt_mode_x = get_mode_radio_rt();
    if (rt_mode_x != 1 && rt_mode_x != 3) {
    /* check guest AP */
    if (!is_interface_up(IFNAME_INIC_GUEST) && is_guest_allowed_rt())
    wif_control(IFNAME_INIC_GUEST, 1);
    }
    }
    #endif
    void
    update_vga_clamp_wl(int first_call)
    {
    #if BOARD_HAS_5G_RADIO
    #if defined (USE_WID_5G) && (USE_WID_5G==7612)
    int i_val;
    const char *wifname;
    wifname = find_wlan_if_up(1);
    if (!wifname)
    return;
    i_val = nvram_wlan_get_int(1, "VgaClamp");
    if (i_val == 0 && first_call)
    return;
    doSystem("iwpriv %s set %s=%d", wifname, "VgaClamp", i_val);
    #endif
    #endif
    }
    void
    update_vga_clamp_rt(int first_call)
    {
    #if defined (USE_WID_2G) && (USE_WID_2G==7602 || USE_WID_2G==7612)
    int i_val;
    const char *wifname;
    wifname = find_wlan_if_up(0);
    if (!wifname)
    return;
    i_val = nvram_wlan_get_int(0, "VgaClamp");
    if (i_val == 0 && first_call)
    return;
    doSystem("iwpriv %s set %s=%d", wifname, "VgaClamp", i_val);
    #endif
    }
    void
    stop_wifi_all_wl(void)
    {
    #if BOARD_HAS_5G_RADIO
    // stop ApCli
    wif_control(IFNAME_5G_APCLI, 0);
    // stop WDS (4 interfaces)
    wif_control(IFNAME_5G_WDS3, 0);
    wif_control(IFNAME_5G_WDS2, 0);
    wif_control(IFNAME_5G_WDS1, 0);
    wif_control(IFNAME_5G_WDS0, 0);
    // stop AP (guest + main)
    wif_control(IFNAME_5G_GUEST, 0);
    wif_control(IFNAME_5G_MAIN, 0);
    #if defined (BOARD_GPIO_LED_SW5G)
    LED_CONTROL(BOARD_GPIO_LED_SW5G, LED_OFF);
    #endif
    #endif
    }
    void
    stop_wifi_all_rt(void)
    {
    #if defined(USE_RT3352_MII)
    stop_inicd();

    // set isolate iNIC port from all LAN ports
    phy_isolate_inic(1);
    #endif
    // stop ApCli
    wif_control(IFNAME_2G_APCLI, 0);
    // stop WDS (4 interfaces)
    wif_control(IFNAME_2G_WDS3, 0);
    wif_control(IFNAME_2G_WDS2, 0);
    wif_control(IFNAME_2G_WDS1, 0);
    wif_control(IFNAME_2G_WDS0, 0);
    // stop AP (guest + main)
    wif_control(IFNAME_2G_GUEST, 0);
    wif_control(IFNAME_2G_MAIN, 0);
    #if defined (BOARD_GPIO_LED_SW2G)
    LED_CONTROL(BOARD_GPIO_LED_SW2G, LED_OFF);
    #endif
    }
    void
    start_wifi_ap_wl(int radio_on)
    {
    #if BOARD_HAS_5G_RADIO
    int i_mode_x = get_mode_radio_wl();
    // check WDS only, ApCli only or Radio disabled
    if (i_mode_x == 1 || i_mode_x == 3 || !radio_on)
    {
    br_add_del_if(IFNAME_BR, IFNAME_5G_GUEST, 0);
    br_add_del_if(IFNAME_BR, IFNAME_5G_MAIN, 0);
    }
    mlme_state_wl(radio_on);
    // check Radio enabled and not WDS only, not ApCli only
    if (radio_on && i_mode_x != 1 && i_mode_x != 3)
    {
    wif_control(IFNAME_5G_MAIN, 1);
    br_add_del_if(IFNAME_BR, IFNAME_5G_MAIN, 1);
    wif_control_m2u(1, IFNAME_5G_MAIN);

    if (is_guest_allowed_wl())
    {
    wif_control(IFNAME_5G_GUEST, 1);
    br_add_del_if(IFNAME_BR, IFNAME_5G_GUEST, 1);
    wif_control_m2u(1, IFNAME_5G_GUEST);
    }
    }
    #endif
    }
    void
    start_wifi_ap_rt(int radio_on)
    {
    int i_mode_x = get_mode_radio_rt();
    #if defined(USE_RT3352_MII)
    int is_ap_mode = get_ap_mode();
    #endif
    // check WDS only, ApCli only or Radio disabled
    if (i_mode_x == 1 || i_mode_x == 3 || !radio_on)
    {
    #if defined(USE_RT3352_MII)
    if (!is_ap_mode)
    br_add_del_if(IFNAME_BR, IFNAME_INIC_GUEST_VLAN, 0);
    #else
    br_add_del_if(IFNAME_BR, IFNAME_2G_GUEST, 0);
    br_add_del_if(IFNAME_BR, IFNAME_2G_MAIN, 0);
    #endif
    }
    mlme_state_rt(radio_on);
    #if defined(USE_RT3352_MII)
    // iNIC_mii driver always needed rai0 first before use other interfaces (boot firmware)
    start_inic_mii();
    // check Radio enabled and check not WDS only, not ApCli only
    if (radio_on && i_mode_x != 1 && i_mode_x != 3 && is_guest_allowed_rt())
    {
    wif_control(IFNAME_INIC_GUEST, 1);
    if (!is_ap_mode)
    br_add_del_if(IFNAME_BR, IFNAME_INIC_GUEST_VLAN, 1);
    }
    // start iNIC_mii checking daemon
    if (nvram_get_int("inic_disable") != 1)
    start_inicd();
    #else
    // check Radio enabled and check not WDS only, not ApCli only
    if (radio_on && i_mode_x != 1 && i_mode_x != 3)
    {
    wif_control(IFNAME_2G_MAIN, 1);
    br_add_del_if(IFNAME_BR, IFNAME_2G_MAIN, 1);
    wif_control_m2u(0, IFNAME_2G_MAIN);

    if (is_guest_allowed_rt())
    {
    wif_control(IFNAME_2G_GUEST, 1);
    br_add_del_if(IFNAME_BR, IFNAME_2G_GUEST, 1);
    wif_control_m2u(0, IFNAME_2G_GUEST);
    }
    }
    #endif
    }
    void
    start_wifi_wds_wl(int radio_on)
    {
    #if BOARD_HAS_5G_RADIO
    int i_mode_x = get_mode_radio_wl();
    if (radio_on && (i_mode_x == 1 || i_mode_x == 2))
    {
    int i_wds_num = 4;

    if (nvram_wlan_get_int(1, "wdsapply_x") == 1)
    i_wds_num = nvram_wlan_get_int(1, "wdsnum_x");

    if (i_wds_num > 3) {
    wif_control(IFNAME_5G_WDS3, 1);
    br_add_del_if(IFNAME_BR, IFNAME_5G_WDS3, 1);
    }

    if (i_wds_num > 2) {
    wif_control(IFNAME_5G_WDS2, 1);
    br_add_del_if(IFNAME_BR, IFNAME_5G_WDS2, 1);
    }

    if (i_wds_num > 1) {
    wif_control(IFNAME_5G_WDS1, 1);
    br_add_del_if(IFNAME_BR, IFNAME_5G_WDS1, 1);
    }

    wif_control(IFNAME_5G_WDS0, 1);
    br_add_del_if(IFNAME_BR, IFNAME_5G_WDS0, 1);
    }
    else
    {
    br_add_del_if(IFNAME_BR, IFNAME_5G_WDS3, 0);
    br_add_del_if(IFNAME_BR, IFNAME_5G_WDS2, 0);
    br_add_del_if(IFNAME_BR, IFNAME_5G_WDS1, 0);
    br_add_del_if(IFNAME_BR, IFNAME_5G_WDS0, 0);
    }
    #endif
    }
    void
    start_wifi_wds_rt(int radio_on)
    {
    int i_mode_x = get_mode_radio_rt();
    if (radio_on && (i_mode_x == 1 || i_mode_x == 2))
    {
    int i_wds_num = 4;

    if (nvram_wlan_get_int(0, "wdsapply_x") == 1)
    i_wds_num = nvram_wlan_get_int(0, "wdsnum_x");

    if (i_wds_num > 3) {
    wif_control(IFNAME_2G_WDS3, 1);
    #if !defined(USE_RT3352_MII)
    br_add_del_if(IFNAME_BR, IFNAME_2G_WDS3, 1);
    #endif
    }

    if (i_wds_num > 2) {
    wif_control(IFNAME_2G_WDS2, 1);
    #if !defined(USE_RT3352_MII)
    br_add_del_if(IFNAME_BR, IFNAME_2G_WDS2, 1);
    #endif
    }

    if (i_wds_num > 1) {
    wif_control(IFNAME_2G_WDS1, 1);
    #if !defined(USE_RT3352_MII)
    br_add_del_if(IFNAME_BR, IFNAME_2G_WDS1, 1);
    #endif
    }

    wif_control(IFNAME_2G_WDS0, 1);
    #if !defined(USE_RT3352_MII)
    br_add_del_if(IFNAME_BR, IFNAME_2G_WDS0, 1);
    #endif
    }
    #if !defined(USE_RT3352_MII)
    else
    {
    br_add_del_if(IFNAME_BR, IFNAME_2G_WDS3, 0);
    br_add_del_if(IFNAME_BR, IFNAME_2G_WDS2, 0);
    br_add_del_if(IFNAME_BR, IFNAME_2G_WDS1, 0);
    br_add_del_if(IFNAME_BR, IFNAME_2G_WDS0, 0);
    }
    #endif
    }
    void
    start_wifi_apcli_wl(int radio_on)
    {
    #if BOARD_HAS_5G_RADIO
    const char *ifname_apcli = IFNAME_5G_APCLI;
    int i_mode_x = get_mode_radio_wl();
    if (radio_on && (i_mode_x == 3 || i_mode_x == 4) && (strlen(nvram_wlan_get(1, "sta_ssid")) > 0))
    {
    wif_control(ifname_apcli, 1);
    br_add_del_if(IFNAME_BR, ifname_apcli, !is_apcli_wisp_wl() || get_ap_mode());
    if (nvram_wlan_get_int(1, "sta_auto"))
    doSystem("iwpriv %s set %s=%d", ifname_apcli, "ApCliAutoConnect", 1);
    }
    else
    {
    br_add_del_if(IFNAME_BR, ifname_apcli, 0);
    }
    #endif
    }
    void
    start_wifi_apcli_rt(int radio_on)
    {
    const char *ifname_apcli = IFNAME_2G_APCLI;
    int i_mode_x = get_mode_radio_rt();
    if (radio_on && (i_mode_x == 3 || i_mode_x == 4) && (strlen(nvram_wlan_get(0, "sta_ssid")) > 0))
    {
    wif_control(ifname_apcli, 1);
    #if !defined(USE_RT3352_MII)
    br_add_del_if(IFNAME_BR, ifname_apcli, !is_apcli_wisp_rt() || get_ap_mode());
    if (nvram_wlan_get_int(0, "sta_auto"))
    doSystem("iwpriv %s set %s=%d", ifname_apcli, "ApCliAutoConnect", 1);
    #endif
    }
    #if !defined(USE_RT3352_MII)
    else
    {
    br_add_del_if(IFNAME_BR, ifname_apcli, 0);
    }
    #endif
    }
    void
    reconnect_apcli(const char *ifname_apcli, int force)
    {
    int is_aband, i_mode_x;
    if (strcmp(ifname_apcli, IFNAME_2G_APCLI) == 0)
    is_aband = 0;
    #if BOARD_HAS_5G_RADIO
    else if (strcmp(ifname_apcli, IFNAME_5G_APCLI) == 0)
    is_aband = 1;
    #endif
    else
    return;
    if (!is_interface_up(ifname_apcli))
    return;
    i_mode_x = nvram_wlan_get_int(is_aband, "mode_x");
    if (i_mode_x != 3 && i_mode_x != 4)
    return;
    if (get_apcli_sta_auto(is_aband)) {
    doSystem("iwpriv %s set %s=%d", ifname_apcli, "ApCliAutoConnect", 1);
    } else if (force) {
    doSystem("iwpriv %s set %s=%d", ifname_apcli, "ApCliEnable", 0);
    usleep(300000);
    doSystem("iwpriv %s set %s=%d", ifname_apcli, "ApCliEnable", 1);
    }
    }
    void
    restart_wifi_wl(int radio_on, int need_reload_conf)
    {
    #if BOARD_HAS_5G_RADIO
    stop_8021x_wl();
    stop_wifi_all_wl();
    if (need_reload_conf) {
    gen_ralink_config_5g(0);
    nvram_set_int_temp("reload_svc_wl", 1);
    }
    start_wifi_ap_wl(radio_on);
    start_wifi_wds_wl(radio_on);
    start_wifi_apcli_wl(radio_on);
    start_8021x_wl();
    restart_guest_lan_isolation();
    check_apcli_wan(1, radio_on);
    if (radio_on)
    update_vga_clamp_wl(0);
    #if defined (BOARD_GPIO_LED_SW5G)
    if (radio_on)
    LED_CONTROL(BOARD_GPIO_LED_SW5G, LED_ON);
    #endif
    #endif
    }
    void
    restart_wifi_rt(int radio_on, int need_reload_conf)
    {
    stop_8021x_rt();
    stop_wifi_all_rt();
    if (need_reload_conf) {
    gen_ralink_config_2g(0);
    nvram_set_int_temp("reload_svc_rt", 1);
    }
    start_wifi_ap_rt(radio_on);
    start_wifi_wds_rt(radio_on);
    start_wifi_apcli_rt(radio_on);
    start_8021x_rt();
    restart_guest_lan_isolation();
    check_apcli_wan(0, radio_on);
    if (radio_on)
    update_vga_clamp_rt(0);
    #if defined (BOARD_GPIO_LED_SW2G)
    if (radio_on)
    LED_CONTROL(BOARD_GPIO_LED_SW2G, LED_ON);
    #endif
    }
    int is_need_8021x(char *auth_mode)
    {
    if (!strcmp(auth_mode, "wpa") ||
    !strcmp(auth_mode, "wpa2") ||
    !strcmp(auth_mode, "radius"))
    return 1;
    return 0;
    }
    void
    start_8021x_wl(void)
    {
    #if BOARD_HAS_5G_RADIO
    if (!get_enabled_radio_wl())
    return;
    if (is_need_8021x(nvram_wlan_get(1, "auth_mode")))
    eval("rt2860apd", "-i", IFNAME_5G_MAIN);
    #endif
    }
    void
    start_8021x_rt(void)
    {
    #if !defined(USE_RT3352_MII)
    if (!get_enabled_radio_rt())
    return;
    #endif
    if (is_need_8021x(nvram_wlan_get(0, "auth_mode")))
    eval("rtinicapd", "-i", IFNAME_2G_MAIN);
    }
    void
    stop_8021x_wl(void)
    {
    #if BOARD_HAS_5G_RADIO
    char* svcs[] = { "rt2860apd", NULL };
    kill_services(svcs, 3, 1);
    #endif
    }
    void
    stop_8021x_rt(void)
    {
    char* svcs[] = { "rtinicapd", NULL };
    kill_services(svcs, 3, 1);
    }
    void
    stop_8021x_all(void)
    {
    char* svcs[] = { "rt2860apd", "rtinicapd", NULL };
    kill_services(svcs, 3, 1);
    }
    int
    is_radio_on_wl(void)
    {
    #if BOARD_HAS_5G_RADIO
    #if defined(USE_IWPRIV_RADIO_5G)
    return (is_interface_up(IFNAME_5G_MAIN) && get_mlme_radio_wl());
    #else
    return is_interface_up(IFNAME_5G_MAIN) ||
    is_interface_up(IFNAME_5G_GUEST) ||
    is_interface_up(IFNAME_5G_APCLI) ||
    is_interface_up(IFNAME_5G_WDS0) ||
    is_interface_up(IFNAME_5G_WDS1) ||
    is_interface_up(IFNAME_5G_WDS2) ||
    is_interface_up(IFNAME_5G_WDS3);
    #endif
    #else
    return 0;
    #endif
    }
    int
    is_radio_on_rt(void)
    {
    #if defined(USE_IWPRIV_RADIO_2G) || defined(USE_RT3352_MII)
    return (is_interface_up(IFNAME_2G_MAIN) && get_mlme_radio_rt());
    #else
    return is_interface_up(IFNAME_2G_MAIN) ||
    is_interface_up(IFNAME_2G_GUEST) ||
    is_interface_up(IFNAME_2G_APCLI) ||
    is_interface_up(IFNAME_2G_WDS0) ||
    is_interface_up(IFNAME_2G_WDS1) ||
    is_interface_up(IFNAME_2G_WDS2) ||
    is_interface_up(IFNAME_2G_WDS3);
    #endif
    }
    int
    is_radio_allowed_wl(void)
    {
    return timecheck_wifi(1, "radio_date_x", "radio_time_x", "radio_time2_x");
    }
    int
    is_radio_allowed_rt(void)
    {
    return timecheck_wifi(0, "radio_date_x", "radio_time_x", "radio_time2_x");
    }
    int
    is_guest_allowed_wl(void)
    {
    if (get_enabled_guest_wl())
    return timecheck_wifi(1, "guest_date_x", "guest_time_x", "guest_time2_x");
    return 0;
    }
    int
    is_guest_allowed_rt(void)
    {
    if (get_enabled_guest_rt())
    return timecheck_wifi(0, "guest_date_x", "guest_time_x", "guest_time2_x");
    return 0;
    }
    int
    control_radio_wl(int radio_on, int manual)
    {
    int is_radio_changed = 0;
    #if BOARD_HAS_5G_RADIO
    if (radio_on)
    {
    if (!is_radio_on_wl()) {
    #if defined(USE_IWPRIV_RADIO_5G)
    mlme_radio_wl(1);
    #else
    restart_wifi_wl(1, 0);
    #endif
    is_radio_changed = 1;
    }
    }
    else
    {
    if (is_radio_on_wl()) {
    #if defined(USE_IWPRIV_RADIO_5G)
    mlme_radio_wl(0);
    #else
    restart_wifi_wl(0, 0);
    #endif
    is_radio_changed = 1;
    }
    }
    if (is_radio_changed && !manual)
    logmessage("WiFi scheduler", "5GHz radio: %s", (radio_on) ? "ON" : "OFF");
    #endif
    return is_radio_changed;
    }
    int
    control_radio_rt(int radio_on, int manual)
    {
    int is_radio_changed = 0;
    if (radio_on)
    {
    if (!is_radio_on_rt()) {
    #if defined(USE_IWPRIV_RADIO_2G) || defined(USE_RT3352_MII)
    mlme_radio_rt(1);
    #else
    restart_wifi_rt(1, 0);
    #endif
    is_radio_changed = 1;
    }
    }
    else
    {
    if (is_radio_on_rt()) {
    #if defined(USE_IWPRIV_RADIO_2G) || defined(USE_RT3352_MII)
    mlme_radio_rt(0);
    #else
    restart_wifi_rt(0, 0);
    #endif
    is_radio_changed = 1;
    }
    }
    if (is_radio_changed && !manual)
    logmessage("WiFi scheduler", "2.4GHz radio: %s", (radio_on) ? "ON" : "OFF");
    return is_radio_changed;
    }
    int
    control_guest_wl(int guest_on, int manual)
    {
    int is_ap_changed = 0;
    #if BOARD_HAS_5G_RADIO
    const char *ifname_ap = IFNAME_5G_GUEST;
    int radio_on = get_enabled_radio_wl();
    int i_mode_x = get_mode_radio_wl();
    // check WDS only, ApCli only or Radio disabled (force or by schedule)
    if ((guest_on) && (i_mode_x == 1 || i_mode_x == 3 || !radio_on || !is_interface_up(IFNAME_5G_MAIN)))
    {
    return 0;
    }
    if (guest_on)
    {
    if (!is_interface_up(ifname_ap)) {
    wif_control(ifname_ap, 1);
    is_ap_changed = 1;
    }
    br_add_del_if(IFNAME_BR, ifname_ap, 1);
    wif_control_m2u(1, ifname_ap);
    }
    else
    {
    if (is_interface_up(ifname_ap)) {
    wif_control(ifname_ap, 0);
    is_ap_changed = 1;
    }
    br_add_del_if(IFNAME_BR, ifname_ap, 0);
    }
    if (is_ap_changed)
    restart_guest_lan_isolation();
    if (is_ap_changed && !manual)
    logmessage("WiFi scheduler", "5GHz guest AP: %s", (guest_on) ? "ON" : "OFF");
    #endif
    return is_ap_changed;
    }
    int
    control_guest_rt(int guest_on, int manual)
    {
    int is_ap_changed = 0;
    const char *ifname_ap = IFNAME_2G_GUEST;
    int radio_on = get_enabled_radio_rt();
    int i_mode_x = get_mode_radio_rt();
    #if defined(USE_RT3352_MII)
    int is_ap_mode = get_ap_mode();
    #endif
    // check WDS only, ApCli only or Radio disabled (force or by schedule)
    if ((guest_on) && (i_mode_x == 1 || i_mode_x == 3 || !radio_on || !is_interface_up(IFNAME_2G_MAIN)))
    {
    return 0;
    }
    if (guest_on)
    {
    if (!is_interface_up(ifname_ap)) {
    wif_control(ifname_ap, 1);
    is_ap_changed = 1;
    }
    #if defined(USE_RT3352_MII)
    if (!is_ap_mode)
    br_add_del_if(IFNAME_BR, IFNAME_INIC_GUEST_VLAN, 1);
    #else
    br_add_del_if(IFNAME_BR, ifname_ap, 1);
    wif_control_m2u(0, ifname_ap);
    #endif
    }
    else
    {
    if (is_interface_up(ifname_ap)) {
    wif_control(ifname_ap, 0);
    is_ap_changed = 1;
    }
    #if defined(USE_RT3352_MII)
    if (!is_ap_mode)
    br_add_del_if(IFNAME_BR, IFNAME_INIC_GUEST_VLAN, 0);
    #else
    br_add_del_if(IFNAME_BR, ifname_ap, 0);
    #endif
    }
    if (is_ap_changed)
    restart_guest_lan_isolation();
    if (is_ap_changed && !manual)
    logmessage("WiFi scheduler", "2.4GHz guest AP: %s", (guest_on) ? "ON" : "OFF");
    return is_ap_changed;
    }
    static void
    ebtables_filter_guest_ap(const char *wifname, int is_aband, int i_need_dhcp)
    {
    if (i_need_dhcp) {
    /* drop all IPv4 traffic to router host (exclude DHCPv4) */
    doSystem("ebtables -A %s -i %s -p IPv4 --ip-protocol ! %s -j %s",
    "INPUT", wifname, "udp", "DROP");
    doSystem("ebtables -A %s -i %s -p IPv4 --ip-protocol %s --ip-destination-port ! %d -j %s",
    "INPUT", wifname, "udp", 67, "DROP");
    } else {
    /* drop all traffic to router host */
    doSystem("ebtables -A %s -i %s -j %s",
    "INPUT", wifname, "DROP");
    }
    /* drop forwards between 2.4/5Ghz AP wifs */
    #if BOARD_HAS_5G_RADIO
    if (is_aband) {
    #if defined(USE_RT3352_MII)
    doSystem("ebtables -A %s -i %s -o %s -j %s", "FORWARD", wifname, IFNAME_INIC_GUEST_VLAN, "DROP");
    #else
    doSystem("ebtables -A %s -i %s -o %s -j %s", "FORWARD", wifname, IFNAME_2G_MAIN, "DROP");
    doSystem("ebtables -A %s -i %s -o %s -j %s", "FORWARD", wifname, IFNAME_2G_GUEST, "DROP");
    #endif
    } else {
    doSystem("ebtables -A %s -i %s -o %s -j %s", "FORWARD", wifname, IFNAME_5G_MAIN, "DROP");
    doSystem("ebtables -A %s -i %s -o %s -j %s", "FORWARD", wifname, IFNAME_5G_GUEST, "DROP");
    }
    #endif
    }
    void
    restart_guest_lan_isolation(void)
    {
    int bp_isolate, is_need_ebtables = 0;
    int is_ap_mode = get_ap_mode();
    const char *rt_ifname_guest = IFNAME_2G_GUEST;
    #if BOARD_HAS_5G_RADIO
    const char *wl_ifname_guest = IFNAME_5G_GUEST;
    bp_isolate = 0;
    if (is_interface_up(wl_ifname_guest)) {
    if (nvram_wlan_get_int(1, "guest_lan_isolate")) {
    if (!is_ap_mode)
    bp_isolate = 1;
    else
    is_need_ebtables |= 0x10;
    }
    }
    brport_set_param_int(wl_ifname_guest, "isolate_mode", bp_isolate);
    #endif
    bp_isolate = 0;
    if (is_interface_up(rt_ifname_guest)) {
    if (nvram_wlan_get_int(0, "guest_lan_isolate")) {
    if (!is_ap_mode)
    bp_isolate = 1;
    else
    is_need_ebtables |= 0x01;
    }
    }
    #if defined(USE_RT3352_MII)
    rt_ifname_guest = IFNAME_INIC_GUEST_VLAN;
    if (is_ap_mode)
    is_need_ebtables &= ~0x01;
    #endif
    brport_set_param_int(rt_ifname_guest, "isolate_mode", bp_isolate);
    if (!is_ap_mode)
    return;
    if (is_need_ebtables) {
    int i_need_dhcp = is_dhcpd_enabled(1);

    module_smart_load("ebtable_filter", NULL);
    doSystem("ebtables %s", "-F");
    doSystem("ebtables %s", "-X");
    #if BOARD_HAS_5G_RADIO
    if (is_need_ebtables & 0x10)
    ebtables_filter_guest_ap(wl_ifname_guest, 1, i_need_dhcp);
    #endif
    if (is_need_ebtables & 0x01)
    ebtables_filter_guest_ap(rt_ifname_guest, 0, i_need_dhcp);
    }
    else if (is_module_loaded("ebtables")) {
    doSystem("ebtables %s", "-F");
    doSystem("ebtables %s", "-X");

    module_smart_unload("ebt_ip", 0);
    module_smart_unload("ebtable_filter", 0);
    module_smart_unload("ebtables", 0);
    }
    }
    int
    manual_toggle_radio_rt(int radio_on)
    {
    if (!get_enabled_radio_rt())
    return 0;
    if (radio_on < 0) {
    radio_on = !is_radio_on_rt();
    } else {
    if (is_radio_on_rt() == radio_on)
    return 0;
    }
    notify_watchdog_wifi(0);
    logmessage(LOGNAME, "Perform manual toggle %s radio: %s", "2.4GHz", (radio_on) ? "ON" : "OFF");
    return control_radio_rt(radio_on, 1);
    }
    int
    manual_toggle_radio_wl(int radio_on)
    {
    #if BOARD_HAS_5G_RADIO
    if (!get_enabled_radio_wl())
    return 0;
    if (radio_on < 0) {
    radio_on = !is_radio_on_wl();
    } else {
    if (is_radio_on_wl() == radio_on)
    return 0;
    }
    notify_watchdog_wifi(1);
    logmessage(LOGNAME, "Perform manual toggle %s radio: %s", "5GHz", (radio_on) ? "ON" : "OFF");
    return control_radio_wl(radio_on, 1);
    #else
    return 0;
    #endif
    }
    int
    manual_change_radio_rt(int radio_on)
    {
    if (get_enabled_radio_rt() == radio_on)
    return 0;
    if (radio_on) {
    notify_watchdog_wifi(0);
    usleep(300000);
    }
    nvram_wlan_set_int(0, "radio_x", radio_on);
    logmessage(LOGNAME, "Perform manual %s %s %s", (radio_on) ? "enable" : "disable", "2.4GHz", "radio");
    return control_radio_rt(radio_on, 1);
    }
    int
    manual_change_radio_wl(int radio_on)
    {
    #if BOARD_HAS_5G_RADIO
    if (get_enabled_radio_wl() == radio_on)
    return 0;
    if (radio_on) {
    notify_watchdog_wifi(1);
    usleep(300000);
    }
    nvram_wlan_set_int(1, "radio_x", radio_on);
    logmessage(LOGNAME, "Perform manual %s %s %s", (radio_on) ? "enable" : "disable", "5GHz", "radio");
    return control_radio_wl(radio_on, 1);
    #else
    return 0;
    #endif
    }
    int
    manual_change_guest_rt(int radio_on)
    {
    if (get_enabled_guest_rt() == radio_on)
    return 0;
    if (radio_on) {
    notify_watchdog_wifi(0);
    usleep(300000);
    }
    nvram_wlan_set_int(0, "guest_enable", radio_on);
    logmessage(LOGNAME, "Perform manual %s %s %s", (radio_on) ? "enable" : "disable", "2.4GHz", "AP Guest");
    return control_guest_rt(radio_on, 1);
    }
    int
    manual_change_guest_wl(int radio_on)
    {
    #if BOARD_HAS_5G_RADIO
    if (get_enabled_guest_wl() == radio_on)
    return 0;
    if (radio_on) {
    notify_watchdog_wifi(1);
    usleep(300000);
    }
    nvram_wlan_set_int(1, "guest_enable", radio_on);
    logmessage(LOGNAME, "Perform manual %s %s %s", (radio_on) ? "enable" : "disable", "5GHz", "AP Guest");
    return control_guest_wl(radio_on, 1);
    #else
    return 0;
    #endif
    }
    int
    timecheck_wifi(int is_aband, const char *nv_date, const char *nv_time1, const char *nv_time2)
    {
    #define DOW_MASK_SUN (1 << 0)
    #define DOW_MASK_MON (1 << 1)
    #define DOW_MASK_TUE (1 << 2)
    #define DOW_MASK_WED (1 << 3)
    #define DOW_MASK_THU (1 << 4)
    #define DOW_MASK_FRI (1 << 5)
    #define DOW_MASK_SAT (1 << 6)
    time_t now;
    struct tm *tm;
    char *aDate, *aTime1, *aTime2;
    int i, current_min, current_dow, schedul_dow, iTime1B, iTime1E, iTime2B, iTime2E;
    aDate = nvram_wlan_get(is_aband, nv_date);
    aTime1 = nvram_wlan_get(is_aband, nv_time1);
    aTime2 = nvram_wlan_get(is_aband, nv_time2);
    if (strlen(aDate) != 7 || strlen(aTime1) != 8 || strlen(aTime2) != 8)
    return 1;
    if (strcmp(aDate, "1111111")==0 &&
    strcmp(aTime1, "00002359")==0 &&
    strcmp(aTime2, "00002359")==0)
    return 1;
    // Mon..Fri time
    iTime1B = ((aTime1[0]-'0')*10 + (aTime1[1]-'0'))*60 + (aTime1[2]-'0')*10 + (aTime1[3]-'0');
    iTime1E = ((aTime1[4]-'0')*10 + (aTime1[5]-'0'))*60 + (aTime1[6]-'0')*10 + (aTime1[7]-'0');
    // Sat, Sun time
    iTime2B = ((aTime2[0]-'0')*10 + (aTime2[1]-'0'))*60 + (aTime2[2]-'0')*10 + (aTime2[3]-'0');
    iTime2E = ((aTime2[4]-'0')*10 + (aTime2[5]-'0'))*60 + (aTime2[6]-'0')*10 + (aTime2[7]-'0');
    time(&now);
    tm = localtime(&now);
    current_min = tm->tm_hour * 60 + tm->tm_min;
    current_dow = 1 << tm->tm_wday;
    schedul_dow = 0;
    for(i=0; i<7; i++){
    if (aDate[i] == '1')
    schedul_dow |= (1 << i);
    }
    /* Saturday */
    if (current_dow & DOW_MASK_SAT)
    {
    if (schedul_dow & DOW_MASK_SAT)
    {
    if (iTime2B < iTime2E)
    {
    if (current_min >= iTime2B && current_min <= iTime2E)
    return 1;
    }
    else
    {
    if (current_min >= iTime2B)
    return 1;

    /* Check Friday -> Saturday after midnight (special check after workweek) */
    if ((schedul_dow & DOW_MASK_FRI) && (iTime1B < iTime1E) && (current_min <= iTime2E))
    return 1;
    }
    }

    /* Check cross-night from Friday */
    if ((schedul_dow & DOW_MASK_FRI) && (iTime1B >= iTime1E) && (current_min <= iTime1E))
    return 1;
    }
    else /* Sunday */
    if (current_dow & DOW_MASK_SUN)
    {
    if (schedul_dow & DOW_MASK_SUN)
    {
    if (iTime2B < iTime2E)
    {
    if (current_min >= iTime2B && current_min <= iTime2E)
    return 1;
    }
    else
    {
    if (current_min >= iTime2B)
    return 1;
    }
    }

    /* Check cross-night from Saturday */
    if ((schedul_dow & DOW_MASK_SAT) && (iTime2B >= iTime2E) && (current_min <= iTime2E))
    return 1;
    }
    else /* Monday */
    if (current_dow & DOW_MASK_MON)
    {
    if (schedul_dow & DOW_MASK_MON)
    {
    if (iTime1B < iTime1E)
    {
    if (current_min >= iTime1B && current_min <= iTime1E)
    return 1;
    }
    else
    {
    if (current_min >= iTime1B)
    return 1;

    /* Check Sunday -> Monday after midnight (special check after weekend) */
    if ((schedul_dow & DOW_MASK_SUN) && (iTime2B < iTime2E) && (current_min <= iTime1E))
    return 1;
    }
    }

    /* Check cross-night from Sunday */
    if ((schedul_dow & DOW_MASK_SUN) && (iTime2B >= iTime2E) && (current_min <= iTime2E))
    return 1;
    }
    else /* Tuesday..Friday */
    {
    if (schedul_dow & current_dow)
    {
    if (iTime1B < iTime1E)
    {
    if (current_min >= iTime1B && current_min <= iTime1E)
    return 1;
    }
    else
    {
    if (current_min >= iTime1B)
    return 1;
    }
    }

    /* Check cross-night from previous day */
    if ((schedul_dow & (current_dow >> 1)) && (iTime1B >= iTime1E) && (current_min <= iTime1E))
    return 1;
    }
    return 0;
    }

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    válasz woodworm #78 üzenetére

    Ezeket a mappákat mikor hozza létre? Ha már kész vagy már a gyártás elején megcsinálja?

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    válasz Vtmk #88 üzenetére

    Bocsi miután végzett akkor hozza létre.

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Gyurka6

    őstag

    válasz Vtmk #85 üzenetére

    Hali!
    A nyelvit nem talaltam, ezt irja ki:
    Firmware: MI-R3G_3.4.3.9L-100.trx
    File size of MI-R3G_3.4.3.9L-100.trx is 13052882 bytes. The file size completely corresponds to the maximum allowed size of 20971520 bytes
    A kiiras szerint ez mukodhet?
    Az altalad hasznalt/keszitett nyelvi valtozatot, mir3g-be be lehetne illeszteni?

    Gyurka

  • woodworm

    veterán

    válasz Gyurka6 #90 üzenetére

    Be, csak módosítani kell pár helyen. Mivel nem a forrásban dolgozott, hanem az előkészített rom könyvtárban, ezért a gépnevet biztosan cserélni kell, ill. eltérő csomaglista esetén nem tudom mi kerül az adminfelületre és a dict fájl módosul-e vele.

  • Gyurka6

    őstag

    válasz woodworm #91 üzenetére

    Köszi!
    Mondjuk ehhez kevésnek érzem magam! Egy olyan megoldást gondoltam, amit a dir-860-on meg lehet lépni, a teljes firm-et (szinte) kimásolja egy pen-re és azután onnan indul. Így különösebb kockázat nélkül ki lehetne próbálni. Most az egyiken padavan a másikon lede/wrt tanyázik, egyelőre nem cserélném le őket.
    Azért megköszönöm (az eddigieket is), ha át tudod küldeni.

    Gyurka

  • woodworm

    veterán

    válasz Gyurka6 #92 üzenetére

    Beszélgetünk itt ugyan, de még nekem sincs meg a módosított dict fájl. Én egyébként is az orosz helyére tenném, alapbeállításban az szokott a prometheusban bejelölve lenni az angol mellett. Sok ismeretanyag van a neten és egyértelműbben el lehet igazodni az angol nyelvű menüpontok alapján.

    A csere egyébként könnyű, ha egy fw már leforgott, akkor a \home\user\padavan-ng\trunk\romfs\www\ könyvtárban cserélni kell az XX.dict fájlt a módosítottra és újraforgatni az fw-t.

  • woodworm

    veterán

    válasz Vtmk #87 üzenetére

    Sziszifuszi munka ez így, a kód elején ott vannak a hivatkozások, azokat is illene átnézni.
    A board.h (ott van definiálva a két softled) mellett pedig ott a kernel-3.4.x.config, abban ugyancsak vannak idevonatkozó beállítások.

    # AP MODE MediaTek MT7620/MT7602E/MT7612E RBUS/PCIe Wireless driver
    #

    # CONFIG_MT76X2_AP_LED is not set
    CONFIG_MT76X2_AP_LED_SOFT=y
    CONFIG_MT76X2_AP_LED_SOFT_GPIO=15


    # AP MODE MediaTek MT7603E PCIe Wireless driver
    #

    # CONFIG_MT76X3_AP_LED is not set
    CONFIG_MT76X3_AP_LED_SOFT=y
    CONFIG_MT76X3_AP_LED_SOFT_GPIO=14

    A beállítások így megegyeznek a gyárival.

  • Gyurka6

    őstag

    válasz woodworm #93 üzenetére

    Egyet ertek veled, azert ha mar itt a lehetoseg, most neztem vagy 8 nyelvbol mar lehet valasztani, miert ne lehetne a mienk is benne.

    Gyurka

  • Vtmk

    tag

    válasz woodworm #94 üzenetére

    Hallod az 57u asus firmware-ra tudsz hajítani egy linket honnét tom lekapni?

    Köszi. Most már jövök egy pár sörrel tudom.

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    válasz woodworm #97 üzenetére

    Köszi.

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    válasz woodworm #94 üzenetére

    Ez ami kódot beraktál ez az asus melyik file-ában van?

    Ez van a mienkben:

    # CONFIG_MT76X2_AP_LED is not set
    CONFIG_MT76X2_AP_LED_SOFT=y
    CONFIG_MT76X2_AP_LED_SOFT_GPIO=15

    # AP MODE MediaTek MT7603E PCIe Wireless driver
    #
    # CONFIG_MT76X3_AP_LED is not set
    CONFIG_MT76X3_AP_LED_SOFT=y
    CONFIG_MT76X3_AP_LED_SOFT_GPIO=14

    Nagyon nem ugyanaz a kernel..

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

  • Vtmk

    tag

    válasz Vtmk #99 üzenetére

    Ja megvan a hiba:
    Ez az MT lófax ja nem ugyanaz... Csak kérdés miként lehetne átírni,hogy jó legyen...

    1200GU --> MT7621

    ASUS --> MT7620

    Kernelt kéne cserélni?? Azt már én nem merem.. Vagy nem igaz nincs valami gebassz rá..

    [ Szerkesztve ]

    Tanulok mindig. Okulok - Szerelek. --> nrg_52 Ez csak az aláírásom. Nem mindig sikerülhet az életben amit szeretnél. De ha közel vagy hozzá már fél siker. Nekem egy célom volt a család. És megkaptam. Ezen felül már csak grátisz az élet.

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