76 (edytowany przez build000 2015-06-27 14:05:43)

Odp: E3372 w ncm

No tyle się domyśliłem sam - rozumiem - nie wiem natomiast jak niby te nowe opcje miały by wpłynąć na fakt, aby modem nie robił tego co pisałem przy starcie - krótko mówiąc jak to skonfigurować, gdy już będą te opcje (hilinkowi wystarczy sam metric i już grzecznie jako drugi siedzi/startuje, a nie jako główny i pierwszy) ? - teraz mam tak w /etc/config/network:

config interface 'modem'
         option ifname 'eth1'
         option proto 'ncm'
         option device '/dev/ttyUSB0'
         option pincode '1234'
         option apn 'vpn'
         option username 'vpn'
         option password 'vpn'
         option metric '1' 

Czyli jak ma być po dodaniu tych opcji (i czy tylko w /etc/config/network) ?

77

Odp: E3372 w ncm

build000 napisał/a:

No tyle się domyśliłem sam - rozumiem - nie wiem natomiast jak niby te nowe opcje miały by wpłynąć na fakt, aby modem nie robił tego co pisałem przy starcie - krótko mówiąc jak to skonfigurować, gdy już będą te opcje ? - teraz mam tak w /etc/config/network:

config interface 'modem'
         option ifname 'eth1'
         option proto 'ncm'
         option device '/dev/ttyUSB0'
         option pincode '1234'
         option apn 'vpn'
         option username 'vpn'
         option password 'vpn'
         option metric '1' 

Nie ustawiaj trasy domyślnej:

option defaultroute '0'

Ustaw trasę domyślną

option defaultroute '1'

Do tego:
- zmień json_add_int na json_add_boolean, bo w tym przypadku takiego typu zmiennej oczekuje
- oprogramuj sobie przypadek pustej wartości tej zmiennej

Z peerdns jest dokładnie jak powyżej.

78

Odp: E3372 w ncm

pepe2k napisał/a:

- oprogramuj sobie przypadek pustej wartości tej zmiennej

Konkrety p....konkrety - nie jestem zawodowym programistą tylko amatorem i głównie "chwasty wyrywam", a nie tworzę kod (chociaż mam tam też swoje chwile i coś do linucha wniosłem do jądra i nie tylko)...
wink

79

Odp: E3372 w ncm

build000 napisał/a:
pepe2k napisał/a:

- oprogramuj sobie przypadek pustej wartości tej zmiennej

Konkrety p....konkrety - nie jestem zawodowym programistą tylko amatorem i głównie "chwasty wyrywam", a nie tworzę kod (chociaż mam tam też swoje chwile i coś do linucha wniosłem do jądra i nie tylko)...
wink

Jeżeli rzeczywiście wniosłeś coś "do jądra i nie tylko", a nie są to zwykłe przechwałki, to takie podstawy powinieneś znać.
A w sprawie skryptów powłoki, poczytaj: http://linuxconfig.org/bash-scripting-tutorial

80 (edytowany przez build000 2015-06-27 14:41:20)

Odp: E3372 w ncm

No i znów pepe2k wszedł w fazę "cienia"...ehhh big_smile
Już skończ z tym moralizowaniem - po prostu sypnij kodem - zobacz jaki śmietnik robimy niepotrzebnymi uwagami.

EDIT:
dodanie opcji defaulroute załatwiło problem inicjowania modemu jako główny gw - teraz UPC (tak jak oczekiwałem) startuje jako główna gw i i IP.

[15:36] root@OpenWrt:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         89-YYYYYYYYYYYY 0.0.0.0         UG    0      0        0 eth0.2
default         public-YYYYYYYY 0.0.0.0         UG    1      0        0 eth1
37.228.xx.xx   *               255.255.255.240 U     1      0        0 eth1
37.228.xx.xx   *               255.255.255.255 UH    1      0        0 eth1
89.xx.xx.xx      *               255.255.252.0   U     0      0        0 eth0.2
89.xx.xx.xx      *               255.255.255.255 UH    0      0        0 eth0.2
192.168.1.0     *               255.255.255.0   U     0      0        0 br-lan
[15:38] root@OpenWrt:~#

Z peerdns i "programowaniem" póki co się wstrzymam (nie wiem co zrobi w tym przypadku opcja peerdns, a na "programowanie" nie mam teraz głowy - chyba że p. zmięknie i poda po prostu kod - lub ktokolwiek inny).


Kompletny wykaz zmian w /lib/netifd/proto/ncm.sh i /etc/config/network:

[15:35] root@OpenWrt:~# cat /lib/netifd/proto/ncm.sh
#!/bin/sh

[ -n "$INCLUDE_ONLY" ] || {
    . /lib/functions.sh
    . ../netifd-proto.sh
    init_proto "$@"
}

proto_ncm_init_config() {
    no_device=1
    available=1
    proto_config_add_string "device:device"
    proto_config_add_string apn
    proto_config_add_string auth
    proto_config_add_string username
    proto_config_add_string password
    proto_config_add_string pincode
    proto_config_add_string delay
    proto_config_add_string mode
        proto_config_add_int metric
        proto_config_add_int defaultroute
}

proto_ncm_setup() {
    local interface="$1"

    local manufacturer initialize setmode connect ifname devname devpath

    local device apn auth username password pincode delay mode metric defaultroute
    json_get_vars device apn auth username password pincode delay mode metric defaultroute

    [ -n "$device" ] || {
        echo "No control device specified"
        proto_notify_error "$interface" NO_DEVICE
        proto_set_available "$interface" 0
        return 1
    }
    [ -e "$device" ] || {
        echo "Control device not valid"
        proto_set_available "$interface" 0
        return 1
    }
    [ -n "$apn" ] || {
        echo "No APN specified"
        proto_notify_error "$interface" NO_APN
        return 1
    }

    devname="$(basename "$device")"
    case "$devname" in
    'tty'*)
        devpath="$(readlink -f /sys/class/tty/$devname/device)"
        ifname="$( ls "$devpath"/../../*/net )"
        ;;
    *)
        devpath="$(readlink -f /sys/class/usbmisc/$devname/device/)"
        ifname="$( ls "$devpath"/net )"
        ;;
    esac
    [ -n "$ifname" ] || {
        echo "The interface could not be found."
        proto_notify_error "$interface" NO_IFACE
        proto_set_available "$interface" 0
        return 1
    }

    [ -n "$delay" ] && sleep "$delay"

    manufacturer=`gcom -d "$device" -s /etc/gcom/getcardinfo.gcom | awk '/Manufacturer/ { print tolower($2) }'`
    [ $? -ne 0 ] && {
        echo "Failed to get modem information"
        proto_notify_error "$interface" GETINFO_FAILED
        return 1
    }

    json_load "$(cat /etc/gcom/ncm.json)"
    json_select "$manufacturer"
    [ $? -ne 0 ] && {
        echo "Unsupported modem"
        proto_notify_error "$interface" UNSUPPORTED_MODEM
        proto_set_available "$interface" 0
        return 1
    }
    json_get_values initialize initialize
    for i in $initialize; do
        eval COMMAND="$i" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
            echo "Failed to initialize modem"
            proto_notify_error "$interface" INITIALIZE_FAILED
            return 1
        }
    done

    [ -n "$pincode" ] && {
        PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || {
            echo "Unable to verify PIN"
            proto_notify_error "$interface" PIN_FAILED
            proto_block_restart "$interface"
            return 1
        }
    }
    [ -n "$mode" ] && {
        json_select modes
        json_get_var setmode "$mode"
        COMMAND="$setmode" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
            echo "Failed to set operating mode"
            proto_notify_error "$interface" SETMODE_FAILED
            return 1
        }
        json_select ..
    }

    json_get_vars connect
    eval COMMAND="$connect" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
        echo "Failed to connect"
        proto_notify_error "$interface" CONNECT_FAILED
        return 1
    }

    echo "Connected, starting DHCP"
    
    proto_init_update "$ifname" 1
    proto_send_update "$interface"

    json_init
    json_add_string name "${interface}_4"
    json_add_string ifname "@$interface"
    json_add_string proto "dhcp"
        json_add_int metric "$metric"
        json_add_boolean "$defaultroute"
    ubus call network add_dynamic "$(json_dump)"

    json_init
    json_add_string name "${interface}_6"
    json_add_string ifname "@$interface"
    json_add_string proto "dhcpv6"
    ubus call network add_dynamic "$(json_dump)"
}

proto_ncm_teardown() {
    local interface="$1"

    local manufacturer disconnect

    local device
    json_get_vars device

    echo "Stopping network"

    manufacturer=`gcom -d "$device" -s /etc/gcom/getcardinfo.gcom | awk '/Manufacturer/ { print tolower($2) }'`
    [ $? -ne 0 ] && {
        echo "Failed to get modem information"
        proto_notify_error "$interface" GETINFO_FAILED
        return 1
    }

    json_load "$(cat /etc/gcom/ncm.json)"
    json_select "$manufacturer" || {
        echo "Unsupported modem"
        proto_notify_error "$interface" UNSUPPORTED_MODEM
        return 1
    }

    json_get_vars disconnect
    COMMAND="$disconnect" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
        echo "Failed to disconnect"
        proto_notify_error "$interface" DISCONNECT_FAILED
        return 1
    }

    proto_init_update "*" 0
    proto_send_update "$interface"
}
[ -n "$INCLUDE_ONLY" ] || {
    add_protocol ncm
}
[15:35] root@OpenWrt:~# 
config interface 'modem'
         option ifname 'eth1'
         option proto 'ncm'
         option device '/dev/ttyUSB0'
         option pincode '1234'
         option apn 'vpn'
         option username 'vpn'
         option password 'vpn'
         option metric '1' 
         option defaultroute '0'

Póki co p. dzięki za pomoc - ehh...nie było lekko. wink

81

Odp: E3372 w ncm

build000 napisał/a:
[...]
proto_config_add_int defaultroute
[...]

Zero inicjatywy własnej... CTRL+C, CTRL+V, brak zrozumienia i nawet chęci zrozumienia. Przecież w ogóle Ci to nie działa, nadal masz dwie trasy domyślne. W cytowanym fragmencie ma być: proto_config_add_boolean defaultroute.

Poza tym, zmiana metryk ma wystarczyć - zawsze trasa domyślna z niższą metryką będzie trasą główną. W przeciwnym wypadku będzie trzeba zmieniać opcję dot. trasy domyślnej w trakcie pracy/przełączania głównego interfejsu dostępowego do sieci.

Nic nie zrozumiałeś, a najgorsze jest to, że nawet Ci się nie chciało spróbować zrozumieć.

82 (edytowany przez build000 2015-06-27 15:37:21)

Odp: E3372 w ncm

p. - to chyba Ty nie zrozumiałeś co piszę tu już 2 dni - jeszcze raz Ci powtarzam, samo metric nie trybi oczekiwanym efektem (modem i tak jest pierwszy i główny - również po /etc/init.d/network restart - za każdym razem).
A trasy domyślne mają być 2-ie bo tego oczekuję, natomiast nie chcę aby to modem był główną gw - ma wszystko iść przez eth0.2 a eth1 ma być w gotowości i żyć (stąd ping). Poza tym zrobiłem zone modem i jest to jakby równoległe do zone wan.

Co do Twojej uwagi o "proto_config_add_int defaultroute":

pepe2k napisał/a:

- zmień json_add_int na json_add_boolean, bo w tym przypadku takiego typu zmiennej oczekuje

Czy widać tutaj byś o tym pisał ?

Jest jeszcze dodatkowa kwestia, która wyszła w tzw. międzyczasie - nie wiem (zapewne w luci) trzeba coś zmienić by pokazywało info
Status IPv4 WAN
W hilinku nic nie trzeba było zmieniać - samo się przełącza (w zależności czy UPC, czy modem był główny) - z modemem przez ncm nie ma znaczenia jaka jest główna trasa, gw, ip - nic nie pokazuje - dopiero jak wyłączę modem (ifdown modem) to pokazuje info o UPC.

83

Odp: E3372 w ncm

build000 napisał/a:

p. - to chyba Ty nie zrozumiałeś co piszę tu już 2 dni - jeszcze raz Ci powtarzam, samo metric nie trybi oczekiwanym efektem (modem i tak jest pierwszy i główny).

Sama metryka wystarczy. Mam maszyny z 8 modemami i bondingiem, wiem co mówię.

build000 napisał/a:

A trasy domyślne mają być 2-ie bo tego oczekuję, natomiast nie chcę aby to modem był główną gw - ma wszystko iść przez eth0.2 a eth1 ma być w gotowości i żyć (stąd ping). Poza tym zrobiłem zone modem i jest to jakby równoległe do zone wan.

W skrócie, nie zrozumiałeś do czego służy opcja defaultroute '0'.

build000 napisał/a:

Co do Twojej uwagi o proto_config_add_int:

pepe2k napisał/a:

- zmień json_add_int na json_add_boolean, bo w tym przypadku takiego typu zmiennej oczekuje

Czy widać tutaj byś o tym pisał ?

Nie muszę o wszystkim pamiętać i Cię prowadzić jak małpę za rączkę. Gdybyś wykazał choć odrobinę zaangażowania, to byś sam na to wpadł. Z mojej strony temat zamknięty.

84 (edytowany przez build000 2015-06-29 05:50:44)

Odp: E3372 w ncm

UPC - dafaultroute '1'
modem - defaultroute '0'

I tylko tak UPC startuje jako główna gw i IP - sama opcja metric dla obu interfejsów nie wystarcza w mojej konfiguracji (i zapewne ma to też związek z samym routerem i jego budową oraz sterownikami) - i tak i tak modem startuje jako główny gw i IP jak jest sama opcja metric, a nie ma defaultroute.
No jak tam uważasz - strugaj chojraka dalej - widać za mało chyba z ludźmi przebywasz w jednym pomieszczeniu... wink

EDIT:
Teraz cofnąłem zmiany z defaultroute w ncm.sh/konfie netu i już za każdym razem startuje UPC jako pierwsze (zostało tylko metric) - przed grzebaniem w ncm.sh w związku z defaultroute nie działało, teraz po cofnięciu tych (usunięciu całego kodu do opcji defaultroute) zmian działa...czeski film...cały ten kod to jedna wielka zagadka... wink
Nadal jednak strona status z luci nie pokazuje UPC (no, że modemu nie pokazuje to się domyślam, że ma to związek z ncm) jak jednocześnie podniesiony interfejs modem i UPC - dam "ifdown modem" i już widać info o UPC - ...labamba....
big_smile
EDIT 1:
Co i gdzie zmienić w systemie/Luci/czy gdziekolwiek indziej, by pokazywało info o danym interfejsie (oczywiście na stronie Status, bo na stronie Sieć/Interfejsy to widać), jak jest dany interfejs jako główny i są włączone jednocześnie dwa na raz ?

85 (edytowany przez build000 2015-07-03 09:56:39)

Odp: E3372 w ncm

Dodam jeszcze, że dla tego modemu/sterownika trzeba zmienić jeden parametr w pliku /etc/gcom/ncm.json

było (czego nie obsługuje E3372):

(...)
"modes": {
                        "preferlte": "AT^SYSCFGEX=\\\"030201\\\",3fffffff,2,4,7fffffffffffffff,,",
(...)

powinno być:

(...)
"modes": {
                        "preferlte": "AT^SYSCFGEX=\\\"0302\\\",3fffffff,2,4,7fffffffffffffff,,",
(...)

Dodatkowo jako bonus - teraz szybciej mi łapie fixa + częściej trafiam na połączenia z otwartymi portami. Mam Orange z apn: vpn - ale wersja bezpłatna, tzn. dynamiczny publiczny adres IP - i działa to różnie, w zależności od pory dnia/nocy (nie w związku z tym, że na LTE nie działają w darmowej formie otwarte porty - to już zostało wielokrotnie zdementowane zarówno przez Orange, jak i użytkowników - piszę o tym by ewentualnie uniknąć niepotrzebnych komentarzy) oraz w związku z tym, że nie wszystko jeszcze Orange zmienił na bazie/w łączach typu LTE, a co działało w starych ofertach.

86

Odp: E3372 w ncm

PS. Wątek już trochę niepotrzebny - pojawiło się rozwiązanie w postaci odpowiedniej łatki na kernelowy sterownik ncm.

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

87

Odp: E3372 w ncm

Cezary napisał/a:

PS. Wątek już trochę niepotrzebny - pojawiło się rozwiązanie w postaci odpowiedniej łatki na kernelowy sterownik ncm.

Potwierdzam, działa z E3372, a także z innymi, nowymi modemami Huawei w formacie mPCIe i M.2.

88

Odp: E3372 w ncm

Cezary napisał/a:

PS. Wątek już trochę niepotrzebny - pojawiło się rozwiązanie w postaci odpowiedniej łatki na kernelowy sterownik ncm.

Będziesz budował niebawem moduły z łatkami?

89

Odp: E3372 w ncm

Pewnie tak. Może nie w najbliższym buildzie bo nie zdążę się tym pobawić dobrze, ale docelowo - tak.

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

90 (edytowany przez build000 2015-07-16 13:10:19)

Odp: E3372 w ncm

A gdzie ta łata jest tak w ogóle (trunk, CC, ...) i jak w takim razie nazywa się sterownik, który to obsługuje ?
Jeżeli w mainline, to jak nazywa się łata ?

91

Odp: E3372 w ncm

https://patchwork.ozlabs.org/patch/495925/

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

92 (edytowany przez build000 2015-07-16 13:31:29)

Odp: E3372 w ncm

I po wrzuceniu tej łaty w w target, który sterownik wybrać by obsłużyło E3372 (kmod-usb-net-huawei-cdc-ncm) ? - uprościłbyś wszystko, gdybyś chociaż raz napisał coś od A do Z...
wink
I czy wchodzi na czysto, czy trzeba coś zmieniać - przynajmniej takiej nie widać, więc zakładam, że wystarczy ją wrzucić w rzeczoną ścieżkę ?

93

Odp: E3372 w ncm

Zwykły cdc-ncm. Skąd mam wiedzieć czy wchodzi na czysto czy trzeba to zmieniać? Przecież to nie moja łata.

I nie masz jej nigdzie wrzucić tylko nałożyć na źródła, jak to łatka do openwrt.

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

94 (edytowany przez build000 2015-07-16 13:48:04)

Odp: E3372 w ncm

Czyli jak zrobić by się sama nakładała ? Nie wystarczy ją właśnie wrzucić do target/linux/generic/patches-3.18/190-cdc_ncm_add_support_for_moving_ndp_to_end_of_ncm_frame.patch, żeby przy make/prepare sdk sam ją nałożył ? Jest oznaczona jako new file i create...więc...
No nic, widzę że sam muszę popróbować aż do skutku, żeby była zwykłą łatą wrzuconą w wiadomą ścieżkę.

95

Odp: E3372 w ncm

patch -p1< nazwa tej łatki

w katalogu ze źródłami. Nigdy nie nakładałeś łatek? Tego nie wyjmuje się "ręcznie" z new i create.

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

96 (edytowany przez build000 2015-07-16 14:09:42)

Odp: E3372 w ncm

No robiłem, ale po prostu chcę automat, a nie żeby za każdym razem to robić po make dirclean (a robię to często bo działam w trunk), ot co...jedynie wymagałaby zmian, gdyby w normalnych patchach ktoś, coś by robił we wskazanych plikach (wystarczy tego przy okresowym budowaniu pilnować/kontrolować) i tyle - nie jest tak prościej - nie tak działają łaty z tego katalogu ?

97

Odp: E3372 w ncm

Cezary, tylko się nie denerwuj smile

98

Odp: E3372 w ncm

Więc jak to zrobisz to on zrobi odpowiednią łatkę która zostanie w target. Przyjrzyj sie czym właściwie ta łatka jest.

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

99 (edytowany przez build000 2015-07-16 14:38:32)

Odp: E3372 w ncm

No właśnie teraz rozkminiam - chyba masz rację - jeszcze nie doczytałem do końca.
Ehh...no tak jest jak się nie doczyta właściwie - no nic...zapytałem i jak widać warto było... wink
dzięki
A spamerom na p* dziękujemy za "swój cenny wkład" - tylko nie popuść... big_smile

EDIT:
No nic, kompiluje się...zobaczymy co z tego będzie w praktyce...

100 (edytowany przez batorencjusz 2015-07-16 15:34:25)

Odp: E3372 w ncm

Mam problem taki jak w załączniku. Czy ktoś zna rozwiązanie?
http://wklej.org/id/1757964/

Aktualizacja:

http://wklej.org/id/1757972/

w interfejsach jest nie połączony a tak to wygląda w logach

Zyxel T56 /|\ TL Wdr3600 /|\ TL wdr4300 /|\ MiR 3g /|\ ubi Rocket, nb, pb, ns, loco /|\ Netgear R6220 /|\ xiaomi AC2350 /|\ TL c6 v3 /|\ TL 1043 v1 v2 v4 /|\ dn2800mt , N100 /|\  TL DS-P-7001-04/08 /|\ TL SX3016F i kupa innego sprzętu