Temat: alias dla portu modemu 3g usb // problem z działaniem modemu

Witam,

Do WDR-3600 podłączyłem:
1) USB1 -> Modem Huawei 1752C
2) USB2 -> konwerter USB <> 1-wire

Moim problemem jest to, że urządzenia zamieniają się portami ttyUSBX, gdzie X=0,1,2.
Znalazłem artykuł http://eko.one.pl/?p=openwrt-linkidoportowszeregowych
Skrypt:
-----
if [ "$DEVTYPE" = "usb_interface" ] && [ "$ACTION" = "add" ]; then
        for tty in /sys/$DEVPATH/ttyUSB*; do
            [ -d "$tty" ] || continue
            OLDD=${tty##*/}

            # to jest HUAWEI 1752C #1
            if [ "x$PRODUCT" = "x12d1/141b/0" ]; then
                NEWD="modem_"${DEVPATH##*.}
                rm /dev/$NEWD
                ln -s /dev/$OLDD /dev/$NEWD
            fi

            # to jest MERA-PROJEKT USB <> 1-wire
            if [ "x$PRODUCT" = "x403/6001/600" ]; then
                NEWD="mera_usb_1wire_"${DEVPATH##*.}
                rm /dev/$NEWD
                ln -s /dev/$OLDD /dev/$NEWD
            fi

        done
fi
-----
Skrypt działa poprawnie, ponieważ:
ls -la:
lrwxrwxrwx    1 root     root            12 Mar  7 19:46 mera_usb_1wire_0 -> /dev/ttyUSB0
lrwxrwxrwx    1 root     root            12 Mar  7 19:46 modem_0 -> /dev/ttyUSB1
lrwxrwxrwx    1 root     root            12 Mar  7 19:46 modem_1 -> /dev/ttyUSB2

Jeśli /etc/config/network jest w postaci:
-----
config interface 'wan'
    option auto '1'
    option proto '3g'
    option device '/dev/ttyUSB1'
    option apn 'internet'
    option service 'umts'
    option mobile_isp 'Poland - Play'
    option pincode '6786'
-----
to modem bez żadnych problemów łączy się z internetem.
Jeśli wpiszemy alias /dev/modem_1 to modem przestaje działać:
-----
config interface 'wan'
    option auto '1'
    option proto '3g'
    option device '/dev/modem_0'
    option apn 'internet'
    option service 'umts'
    option mobile_isp 'Poland - Play'
    option pincode '6786'
-----
Przy tej konfiguracji modem nie łączy się z internetem.

Pytania do Was:
1) Co zrobić by modem dobrze działał po wpisaniu aliasu do pliku network? Chyba, że w inny sposób można rozwiązać problem zmiany ttyUSBX przy podłączaniu urządzeń.
2) Czy w skrypcie: "if [ "x$PRODUCT" = "x12d1/141b/0" ]; then" można zastosować znaki naskujące np: "*". W 99% przypadków modem jest rozpoznawany jako 12d1/141b/0, ale w 1% przypadków jest to x12d1/1416/0 i wobec tego czy można zastosować "x12d1*"?

Pozdrawiam,
Michał

2

Odp: alias dla portu modemu 3g usb // problem z działaniem modemu

Zamiast tworzenia aliasu zmieniaj konfig.

    if [ "x$PRODUCT" = "x12d1/141b/0" ]; then
         port=${DEVPATH##*.}
         if [ "$port" = "0" ]; then
             uci set network.wan.device=/dev/$OLDD
             uci commit
            fi
     fi

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

3 (edytowany przez mkobierz 2014-03-08 21:08:33)

Odp: alias dla portu modemu 3g usb // problem z działaniem modemu

Dziękuje za pomoc smile
Mam uwagę do skryptu. Nie działa w nim polecenie: "port = ${DEVPATH##*.}"
Jak zmieniłem na "port=${DEVPATH##*.}" to jest OK.
Może drobiazg, ale dla osoby, która nie zna się na skryptach to znalezienie takiego błędu to sukces smile
Dzięki za pomoc, szczególnie że jest to projekt dla mamy... a to klient bardzo wymagający, szczególnie jak coś przestaje działać.

Pozdrawiam,
M.

4

Odp: alias dla portu modemu 3g usb // problem z działaniem modemu

Tak, bez spacji ma być oczywiście.

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

5

Odp: alias dla portu modemu 3g usb // problem z działaniem modemu

A jak powyższym zmienić konfig aby potem sam to wstawiał w smsd  czyli w tą linijke:

device = /dev/ttyUSB1

?

6

Odp: alias dla portu modemu 3g usb // problem z działaniem modemu

W poście drugim to masz. Jeżeli (czymkolwiek ten smsd jest) to nie jest plik uci to robisz to sedem po prostu.

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

7

Odp: alias dla portu modemu 3g usb // problem z działaniem modemu

Smsd.conf plik kinfiguracyjny smstools3

8

Odp: alias dla portu modemu 3g usb // problem z działaniem modemu

sed -i 's|/dev/ttyUSB*|/dev/ttyUSB1|g' /etc/smsd.conf

Jeżeli /dev/ttyUSB1 masz w zmiennej to robisz

sed -i 's|/dev/ttyUSB*|'$ZMIENNA'|g' /etc/smsd.conf
Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9 (edytowany przez smereka 2021-02-06 20:02:21)

Odp: alias dla portu modemu 3g usb // problem z działaniem modemu

Dziękuję Cezary sprawdzę to później na razie zależy mi bardziej na ustanowieniu łączności w przypadku zawieszenie się modemu E3276. Zrobiłem watchdoga wg Twojego poradnika tylko zamiast opuszczania i podnoszenia interfejsu wyłączam zasilanie na magistrali USB z modemem. No i teraz występuje problem bo po ponownym załączeniu (bez restartu całego routera) modem przedstawia się jako ttyUSB0 i ttyUSB2. Czy ten Twój skrypt przynajmniej z założenia powinien zawsze wykrywać ten modem jako USB0 i USB1 czy robi to tylko podczas startu całego systemu? Jeśli tak to czy da się zrobić tak abym ilekroć wykładał i wyjmował modem bez restartu urządzenia zawsze to było ttyUSB0 i ttyUSB1 ewentualnie podlinkowanie. Mam wrażenie że linux gdzieś pamięta użyte tty i nie dopuszcza ponownie do tego samego.

10

Odp: alias dla portu modemu 3g usb // problem z działaniem modemu

Przed wyłączeniem zasilania modemu zrób ifdown wan i ew usuń moduł option. Wyłącz/włącz, załaduj option i pownno być cały czas tak samo.

To że wykrywa następne urządzenia zwykle związane jest z faktem że poprzednie jest (było) używane przez jakieś procesy systemowe i po prostu nie zostaje zwolnione, więc przy wykrywaniu nowych tworzą się nowe nazwy. Identycznie jest w przypadku nośników usb.

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

11

Odp: alias dla portu modemu 3g usb // problem z działaniem modemu

No w sumie to jest pomysł. A napisz proszę bo pewnie wiesz lepiej. U mnie USBtty1 jest ustawione w smsd.conf. I teraz pytanie co z niego może korzystać jakie procesy muszę ubić związanie z smstools3 albo mi zwolniło ten port?

12

Odp: alias dla portu modemu 3g usb // problem z działaniem modemu

No smstools3 z niego korzysta. Wyłącz smstools3 przed całą operacją.

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

13 (edytowany przez smereka 2021-02-06 20:41:58)

Odp: alias dla portu modemu 3g usb // problem z działaniem modemu

Teraz działa dobrze smile Ale z moich obserwacji wynika, że czasem modem potrafi sam stracić połączenie z siecią i/lub rozłączyć się na magistrali usb a za chwilę sam ponownie zgłosić się na magistrali np pod innymi ttyUSB i o ile inne będzie ttyUSB1 to watchdog pingujący na interfejsie z modemem wyłapie mi brak neta to już jeśli modem zgłosi mi się pod ttyUSB0 i USB2 taki watchdog mi nie wykryje braku netu no bo po prostu się połączy (prawidłowe ttyUSB0). Niestety ttyUSB2 będzie nieprawidłowe dla smstools3 i jego smsd.conf. Co wtedy zrobić? Jest na to jakieś rozwiązanie?

14

Odp: alias dla portu modemu 3g usb // problem z działaniem modemu

Po to robisz aliasy żeby w konfigu był zawsze prawidłowy interfejs.

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