T-Mobile Internet cez Huawei Modem v Linuxe

T-Mobile Internet cez Huawei Modem v Linuxe
« kdy: 20. 07. 2021, 11:37:53 »
Zdravim,


Potrebujem pre ceskeho zakaznika rozbehat mobilne pripojenie v Linux-e. K dispozicii je modem Huawei ME906s LTE M.2 a datova SIM karta od T-mobile,.

Modem ako taky v Linuxe (OpenSuSE) funguje bez problemu - system ho okamzite rozpoznal. Jedine, co som spravil, bolo nastavenie v udev, ktorym som definoval staticke nazvy pre seriove porty a sietove rozhranie.

Nepoznam vhodny manazer mobilnych pripojeni pre OpenSuSE (poradte, ak nieco poznate), tak som modem konfiguroval cez minicom. V zasade som potreboval spravit len dve veci:

1. zadat APN - internet.t-mobile.cz - staci raz, lebo modem si to zapamata
2. nahodit pripojenie - nutne po kazdom starte/restarte systemu

V sietovych nastaveniach Linux-u je sietove rozhranie modemu nastavene uplne genericky na DHCP.

Po nahodeni spojenia sietove rozhranie modemu dostane korektne nastavenia, aspon ja si to myslim:

IP adresa: 100.X.Y.Z
Maska: 255.0.0.0
Brana: 100.0.0.1
DNS: 62.141.16.161, 62.141.16.177

Potialto je to uplne v poriadku, ale dalej sa neviem pohnut ani krok. DNS mi neresolvuje nazvy, neda sa dopingat na ziadnu IP na Internete. Brana vyzera byt nedostupna:

ping 100.0.0.1
PING 100.0.0.1 (100.0.0.1) 56(84) bytes of data.
From 10.65.179.194 icmp_seq=1 Destination Net Unreachable

Ked vsak skusim pignut IP, z ktore dostavam uvedene chybove hlaseniem tak to ide:

ping 10.65.179.194
PING 10.65.179.194 (10.65.179.194) 56(84) bytes of data.
64 bytes from 10.65.179.194: icmp_seq=1 ttl=63 time=111 ms
64 bytes from 10.65.179.194: icmp_seq=2 ttl=63 time=15.4 ms
64 bytes from 10.65.179.194: icmp_seq=3 ttl=63 time=26.3 ms
64 bytes from 10.65.179.194: icmp_seq=4 ttl=63 time=22.2 ms

Uvedena IP je urcite v sieti t-mobile, lebo Linux s modemom je pripojeny do LAN zakaznika s IP rozsahom 192.168.2.0/24 bez predvolenej brany a aj odozva 15-25 ms zodpoveda mobilnej sieti.

T.j. modem komunikuje, prenasa pakety, ale operator ma jednoducho nepusti dalej.

Podla tvrdenia zakaznka rovnaka SIM funguje v externom modeme bez problemu.

Fakt nechapem. Zjavne tam je problem este v nejakom nastaveni, ale netusim, ze v akom. Zeby nieco s APN?

Za akekolvek rady budem velmi vdacny.
« Poslední změna: 20. 07. 2021, 12:00:53 od Petr Krčmář »


Re:T-Mobile Internet cez Huawei Modem v Linuxe
« Odpověď #1 kdy: 20. 07. 2021, 13:14:25 »
APN je potřeba definovat při každém navázání spojení. Pokud to neuděláte, riskujete, že se použije defaultní (APN s prázdným názvem, ""). A defaultní APN Vás připojí jen do sítě pro IMS (VoLTE, VoWiFi), bez konektivity do Internetu.

T-Mobile skutečně přiděluje IP adresy z 100.64.0.0/10, a to jak pro APN IMS ("") tak pro APN Internet ("internet.t-mobile.cz").

Maska 255.0.0.0 a brána 100.0.0.1 jsou ale špatně. Odkud se berou?

Tyhle modemy vytvářejí fake ethernet, ale obvykle pracují s menší IPv4 maskou, třeba /30.

Jak přesně "vytáčíte" spojení? Minicom je terminál, ale tím se rozhodně nic nevytáčí. Používáte PPP rozhraní? QMI (? Jakým nástrojem nastavujete APN?

Já třeba mám takovéhle jednoduché, fousaté (takže se nesmějte:-)) skripty pro mmcli (wrapper pro vytáčení spojení pro Qualcomm modem):
Kód: [Vybrat]
# cat /usr/local/bin/wwan-up.sh
#!/bin/bash

MODEMID=`mmcli -L | grep QUALCOMM | awk '{print $1}' | awk -F'/' '{print $6}'`

if [ "q$MODEMID" == "q" ]; then
    echo "Modem not found."
    exit 3
fi

APN=$1
PDN=$2

if [ "q$APN" == "q" ]; then
    echo "APN not set; Usage: $0 <ApnName> <ipv4|ipv6|ipv4v6>"
    exit 3
fi
if [ "q$PDN" == "q" ]; then
    echo "PDN not set; Usage: $0 <ApnName> <ipv4|ipv6|ipv4v6>"
    exit 3
fi

mmcli -m $MODEMID --simple-connect="apn=$APN,ip-type=$PDN"

exit 0

Kód: [Vybrat]
# cat /usr/local/bin/wwan-down.sh
#!/bin/bash

MODEMID=`mmcli -L | grep QUALCOMM | awk '{print $1}' | awk -F'/' '{print $6}'`

if [ "q$MODEMID" == "q" ]; then
    echo "Modem not found."
    exit 3
fi

mmcli -m $MODEMID --simple-disconnect

exit 0

Kód: [Vybrat]
# cat /usr/local/bin/wwan-route.sh
#!/bin/bash

IP=`ip a s dev wwan0 | grep -w inet | awk '{print $2}' | sed 's/\/30//'`
IP1=`echo $IP | awk -F. '{print $1 "." $2 "." $3}'`
IP2=`echo $IP | awk -F. '{print $4}'`
IP3=$((IP2+1))
GW=$IP1.$IP3
echo "Executing ip route add default via $GW"
ip route add default via $GW

Kód: [Vybrat]
# cat /usr/local/bin/wwan-ipv6.sh
#!/bin/bash

IF=$1

if [ "q$IF" == "q" ]; then
    echo "Usage: $0 <IfaceName>"
    exit 3
fi

echo 2 > /proc/sys/net/ipv6/conf/$IF/accept_ra
echo "Sleeping for 2s"
sleep 2
echo "Trying to get IPv6 prefix..."
rdisc6 -1 $IF

exit 0

A v (Debian/Ubuntu) /etc/network/interfaces pak mám:

Kód: [Vybrat]
auto wwan0
iface wwan0 inet dhcp
    pre-up /usr/bin/qmi-network `ls -1 /dev/cdc-wdm*|head -n1` start
    post-down /usr/bin/qmi-network `ls -1 /dev/cdc-wdm*|head -n1` stop
    pre-up /usr/local/bin/wwan-up.sh internet.t-mobile.cz ipv4 || exit 0
    post-down /usr/local/bin/wwan-down.sh
#    post-up /usr/local/bin/wwan-ipv6.sh wwan0 || exit 0
    post-up /usr/local/bin/route-metric.sh wwan0 5 || exit 0
    post-up /sbin/iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE || exit 0
    post-up chmod a+rw /dev/cdc-wdm* || exit 0
« Poslední změna: 20. 07. 2021, 13:20:35 od Radek Zajíc »

_Jenda

  • *****
  • 1 550
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:T-Mobile Internet cez Huawei Modem v Linuxe
« Odpověď #2 kdy: 20. 07. 2021, 13:23:18 »
Jestli to má sériák a umí to přes něj PPP, tak bych zkusil https://jenda.hrach.eu/w/3g

Re:T-Mobile Internet cez Huawei Modem v Linuxe
« Odpověď #3 kdy: 20. 07. 2021, 13:52:52 »
Ja vobec nic nevytacam. Vidim tam ten fake ethernet, ktory po nahodeni spojenia dostane uvedene sietove nastavenia a zjavne cezen tecu nejake data do siete operatora.

Ten modem ma zo 4 seriove porty. Na dva z nich sa da pripojit cez minicom a vydavat AT prikazy.

APN som nastavil podla tohto:

https://www.t-mobile.cz/dcpublic/Vseobecne_nastaveni.pdf

Vsimol som si tam akesi vytacane cislo *99# alebo *99***1# ale neviem, naco to je, lebo tam prave vidim ten fake ethernet, cez ktory tecu nejake data. Je tam potrebne pouzit PPP? Som myslel, ze v pripade LTE to uz nie je potrebne.

Ked v minicom skusim zadat prikaz "atdt*99#", tak mi to hodi "CONNECT 150000000". Akekolvek ine cislo mi vrati NO CARRIER.

k3dAR

  • *****
  • 2 838
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:T-Mobile Internet cez Huawei Modem v Linuxe
« Odpověď #4 kdy: 20. 07. 2021, 14:11:23 »
mam sice jinej modem "Quectel EC25EFA miniPCIe" a jinej OS "Xubuntu 20.04",
ale take to vytvori 4x ttyUSBx, na 2 z nich se lze pripojit Minicomem a psat AT prikazy...

pripojeni realizuju par kliknutim v NetworkManager (ikona site vedle hodin):
1. Upravit pripojeni, ikona +
2. Vyberte typ pripojeni: mobilni sirokopasmove
3. vyberu modem, resp. je uz predvybranej
4. zeme Czechia
5. poskytovatel: T-Mobile
6. Tarif: vychozi
7. Pouzit

pak zaskrtnu v te ikone vedle hodin:
- "Povolit mobilni sirokopasmove pripojeni"
- po chvilce se zobrazi polozka "T-Mobile"...

# pripadne "skriptem" zapnuti+pripojeni
wwan on
nmcli con up T-Mobile

# odpojeni+vypnuti
nmcli con down T-Mobile
wwan off

(nastroj wwan je dostupny po doinstalovani balicku tlp (a je mozne ze bez nej je wwan vzdy zaplej))

edit: nazev u up/down T-Mobile je nazev profilu, pokud das jinej tak vypsat jinej, seznam zobrazi "nmcli con"
« Poslední změna: 20. 07. 2021, 14:13:29 od k3dAR »


Re:T-Mobile Internet cez Huawei Modem v Linuxe
« Odpověď #5 kdy: 20. 07. 2021, 14:35:26 »
Presne tak to mam aj ja - objavia sa mi 4 seriove porty, pricom do dvoch z nich sa daju pisat AT prikazy. Doinstaloval som si do systemu ppp, po com sa mi vsak tie porty stratili! Toto vidim v dmesg:

[   24.916932] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
[   24.916952] option 1-8:2.2: device disconnected
[   24.917041] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
[   24.917056] option 1-8:2.3: device disconnected
[   24.917138] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
[   24.917153] option 1-8:2.4: device disconnected
[   24.917240] option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
[   24.917257] option 1-8:2.5: device disconnected
[   24.917340] option1 ttyUSB4: GSM modem (1-port) converter now disconnected from ttyUSB4
[   24.917354] option 1-8:2.6: device disconnected

Ja uz fakt neviem, co s tym. Je tam fake ethernet, cez ktory sa neda komunikovat, ked to chcem skusti cez ppp a nainstalujem prislusny balik, tak sa mi tie seriove porty jednoducho stratia.



Re:T-Mobile Internet cez Huawei Modem v Linuxe
« Odpověď #6 kdy: 20. 07. 2021, 14:53:01 »
A este predtym vypise:

cdc_ether 1-8:2.0 lte0: unregister 'cdc_ether' usb-0000:00:15.0-8, Mobile Broadband Network Device

Odinstalovanie ppp nepomohlo, lebo s ppp sa nainstaloval cely rad dalsich balikov a netusim, ktory to sposobuje, Nepochopim, ze ppp odpadli servioe porty, ktore s principu potrebujem pre komunikaciu s tym modemom. V tomto momente nevidim v systeme ziaden seriovy port modemu.

Re:T-Mobile Internet cez Huawei Modem v Linuxe
« Odpověď #7 kdy: 20. 07. 2021, 15:53:21 »
Ukažte výstup příkazů
Kód: [Vybrat]

mmcli -L

mmcli -m 0

mmcli -m 0 --simple-connect="apn=internet.t-mobile.cz,ip-type=ipv4"

mmcli -m 0


mmcli -m 0 --simple-disconnect



Re:T-Mobile Internet cez Huawei Modem v Linuxe
« Odpověď #8 kdy: 20. 07. 2021, 16:06:58 »
Pro zajímavost, Huawei E396:

Kód: [Vybrat]
root@router:~# mmcli -m 0 --simple-connect="apn=internet,ip-type=ipv4"
successfully connected the modem
root@router:~# ip link set wwan0 up
root@router:~# dhclient wwan0
root@router:~# ip a
(...)
37: wwan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether 3e:6f:59:2d:d8:14 brd ff:ff:ff:ff:ff:ff
    inet 100.117.128.88/28 brd 100.117.128.95 scope global dynamic wwan0
       valid_lft 7200sec preferred_lft 7200sec
    inet6 fe80::3c6f:59ff:fe2d:d814/64 scope link
       valid_lft forever preferred_lft forever
root@router:~# ip route | grep wwan
default via 100.117.128.81 dev wwan0
100.117.128.80/28 dev wwan0 proto kernel scope link src 100.117.128.88

root@router:~# mmcli -m 0
  --------------------------------
  General  |            dbus path: /org/freedesktop/ModemManager1/Modem/0
           |            device id: f13359cc0d01883b118ab5cdba4f19baa83e6248
  --------------------------------
  Hardware |         manufacturer: QUALCOMM INCORPORATED
           |                model: 0
           |    firmware revision: M9200B-SCAQWBZD-3.3.330155T  1  [Aug 09 2012 23:00:00]
           |         h/w revision: 203F1000
           |            supported: gsm-umts, lte
           |              current: gsm-umts, lte
           |         equipment id: 860999001008525
  --------------------------------
  System   |               device: /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/usb3/3-1
           |              drivers: option1, qmi_wwan
           |               plugin: Huawei
           |         primary port: cdc-wdm0
           |                ports: cdc-wdm0 (qmi), ttyUSB2 (qcdm), wwan0 (net), ttyUSB1 (at),
           |                       ttyUSB3 (at)
  --------------------------------
  Status   |                 lock: sim-pin2
           |       unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
           |                state: connected
           |          power state: on
           |          access tech: lte
           |       signal quality: 67% (recent)
  --------------------------------
  Modes    |            supported: allowed: 2g; preferred: none
           |                       allowed: 3g; preferred: none
           |                       allowed: 4g; preferred: none
           |                       allowed: 2g, 3g; preferred: 3g
           |                       allowed: 2g, 3g; preferred: 2g
           |                       allowed: 2g, 4g; preferred: 4g
           |                       allowed: 2g, 4g; preferred: 2g
           |                       allowed: 3g, 4g; preferred: 3g
           |                       allowed: 3g, 4g; preferred: 4g
           |                       allowed: 2g, 3g, 4g; preferred: 4g
           |                       allowed: 2g, 3g, 4g; preferred: 3g
           |                       allowed: 2g, 3g, 4g; preferred: 2g
           |              current: allowed: 2g, 3g, 4g; preferred: none
  --------------------------------
  Bands    |            supported: egsm, dcs, pcs, g850, utran-1, utran-3, utran-8
           |              current: egsm, dcs, pcs, g850, utran-1, utran-3, utran-8
  --------------------------------
  IP       |            supported: ipv4, ipv6, ipv4v6
  --------------------------------
  3GPP     |                 imei: 860999001008525
           |          operator id: 23002
           |        operator name: O2.CZ
           |         registration: home
  --------------------------------
  3GPP EPS | ue mode of operation: ps-1
  --------------------------------
  SIM      |            dbus path: /org/freedesktop/ModemManager1/SIM/0
  --------------------------------
  Bearer   |            dbus path: /org/freedesktop/ModemManager1/Bearer/1
           |                       /org/freedesktop/ModemManager1/Bearer/0

root@router:~# mmcli -b 0
  ------------------------
  General    |  dbus path: /org/freedesktop/ModemManager1/Bearer/0
             |       type: default
  ------------------------
  Status     |  connected: no
             |  suspended: no
             | ip timeout: 20
  ------------------------
  Properties |        apn: internet
             |    roaming: allowed
             |    ip type: ipv6
root@router:~# mmcli -b 1
  --------------------------------
  General            |  dbus path: /org/freedesktop/ModemManager1/Bearer/1
                     |       type: default
  --------------------------------
  Status             |  connected: yes
                     |  suspended: no
                     |  interface: wwan0
                     | ip timeout: 20
  --------------------------------
  Properties         |        apn: internet
                     |    roaming: allowed
                     |    ip type: ipv4
  --------------------------------
  IPv4 configuration |     method: dhcp
                     |    address: 100.117.128.88
                     |     prefix: 30
                     |    gateway: 100.117.128.89
                     |        dns: 160.218.161.60, 194.228.211.33
                     |        mtu: 1500
  --------------------------------
  Statistics         |   duration: 210
                     |   bytes rx: 135013
                     |   bytes tx: 367050

Zajímá Vás zejména:
Kód: [Vybrat]
state: connected
access tech: lte
signal quality: 67% (recent)

Re:T-Mobile Internet cez Huawei Modem v Linuxe
« Odpověď #9 kdy: 20. 07. 2021, 17:32:58 »
Nakoniec sa mi to podarilo rozbehat.

Ukazalo sa, ze problemy robi ModemManager, ktory nainstaluje baliky, z ktorych jeden sposobi odpojenie seriovych portov.

"mmcli -L" vrati "No modems found"

Po odstraneni vsetkych balikov, ktore dotiahne instalacia ModemManager a NetworkManager, sa mi podarilo opat spristupnit seriove porty modemu. Zafungoval postup od pouzivatela Jenda (3g [wiki]).

Dakujem vsetkym, ktori odpovedali. Rad by som to rozbehal na nejakej "vyssej" urovni cez nejaky vhodny Modem Manager, ale naozaj nerozumiem tomu, co sa deje. Zrejme je tam potrebna nejaka dalsia konfiguracia.

Nie je mi jasne ani to, na co vlastne sluzi ten fake ethernet.

Re:T-Mobile Internet cez Huawei Modem v Linuxe
« Odpověď #10 kdy: 20. 07. 2021, 19:01:46 »
Seriove porty se mohou "ztratit", pokud probehne USB modeswitch (nektera USB zarizeni, ktera modem prezentuje, se ztrati, jina ukazou). U nekterych Huawei zarizeni se pro ovladani modeswitch (zarizeni viditelna pred/po modeswitchi) pouziva prikaz
Kód: [Vybrat]
at^setport?
A1,a2:1,2,3,7,a1,a2

To by mohla byt pricina "zmizeni" seriovych portu. Instalace balicku PPP nic takoveho sama o sobe zpusobit nemuze.

Fake ethernet existuje proto, ze mobilni sit z podstaty fungovani stavi tunel mezi mobilem (modemem) a jadrem site a pridelena IP adresa ma masku /32. V pripade vytaceni PPP spojeni se onen konec tunelu posouva az do PPP klienta, takze s maskou /32 problem neni.

Na Ethernetu pro spravne fungovani DHCP je potreba maska vetsi, obvykle alespon /30. V mem prikladu nahore modem zvolil masku /28. No a technicky to funguje tak, ze uvnitr modemu nebo driveru je falesny DHCP server a modem pak prehazuje pakety z "tuneloveho interface" do "fake ethernet interface" - a zpet.

Dnesni modemy implementuji bud QMI protokol (pokud maji chipset od Qualcommu) nebo USB MBIM protokol; z pohledu uzivatele je to prakticky falesny ethernet, ktery pomoci DHCP klienta preda IP adresu z mobilni site (nebo /64 IPv6 prefix) az do Linuxoveho sitoveho stacku. MBIM dokonce neni vubec Ethernet (L2), predavaji se rovnou IP pakety (L3). Aby ale modem vedel, jakou IP adresu ma predat, musi nejdriv od uzivatele dostat nazev APN. Tedy totez, co se v pripade vytaceni pomoci PPP specifikuje v prikazu AT+CGDCONT=1,"IP","APN" (ta jednicka se pak pouziva pri vytaceni: *99***1# odkazuje na profil "1" nastaveny pres CGDCONT).

JBB

Re:T-Mobile Internet cez Huawei Modem v Linuxe
« Odpověď #11 kdy: 21. 07. 2021, 17:11:50 »
Pozor, některé modemy, např. Telit LE910EU, nesnáší CGDCONT 1, prý je to vyhrazeno v LTE pro síť (oficiální odpověď výrobce). A chovalo se to asi tak nějak podobně.
Takže zkus:
AT+CGDCONT=2,"IP","APN"
*99***2#

Vůbec mě to APN štve, každej operátor, dataplan, země to má jinak. Neexistuje nějaká možnost vyčtení ze SIM nebo nějakého veřejného seznamu všech?