Rozšíření komunitní dokumentace o sekci LTE USB modemy

Myslím, že ten Huawei E3372h-153 podporuje NCM, ne QMI (to je proprietární protokol Qualcommu, i když nějaké Huaweie to asi taky podporují, tahle E3372 má nějaký HiSilicon Balong).

Každopádně já jsem to přes to NCM zatím nerozchodil. PPP funguje na první dobrou.
NCM jsem zkoušel podle tohoto návodu (na čistém LEDE 17.01.04 na Netgear WNDR3700v4, na Turris Omnia mě to teprve čeká):
https://wiki.openwrt.org/doc/recipes/ethernetoverusb_ncm

  1. Zařízení /dev/cdc-wdm0 se korektně objeví.
  2. V repository LEDE není balík luci-proto-ncm, /etc/config/network jsem tudíž nastavil ručně podle jejich wiki.
  3. Ačkoli konfiguraci mám podle wiki, jen jsem samozřejmě změnil APN a PIN, tak jsem z logu vyčetl, že to má problém s PINem (který je určitě správně, ve Windows i v PPP režimu funguje).

U těch Huaweiů se ještě sluší asi zmínit pár věcí, které jsou důležité, pokud byste potřebovali flashovat firmware:

  1. E3372h není to samé jako (starší?) E3372s (a zřejmě to příliš nesouvisí s HiLink vs. Stick režimem, jak by se mohlo na první pohled zdát – obě varianty HW mohou fungovat v obou režimech podle firmware, přičemž každá verze HW má svoji větev firmware, který není navzájem zaměnitelný.
  2. Záleží také na čísle za tím modelem, u nás se prodává E3372h-153, různě na internetech se objevuje třeba varianta E3372h-607 (asi nějaká indická varianta?). Opět pozor.
  3. Existují dvě varianty firmware - tzv. „HiLink“ (kdy zařízení samo routuje/NATuje, stará se o to bezdrátové připojení atd., myslím, že to používá protokol RNDIS) začíná 22.x.y.z; tzv. „Stick“ (kdy to podporuje PPP nebo NCM) začíná 21.x.y.z.

Mezi tou HiLink a Stick variantou firmware (22 × 21) by mělo být možné celkem bez problémů flashovat, ale internety jsou plné návodů, které k tomu používají velmi pochybný Windows-only software (některý dokonce dost agresivně kontroluje, zda nemáte nainstalované něco jako usbpcap pro zachytávání komunikace, asi abyste neodhalili jejich supertajné AT příkazy) a různé online kalkulačky pro odemknutí update podle IMEI atd. Jako např. http://blog.asiantuntijakaveri.fi/2015/07/convert-huawei-e3372h-153-from.html

Mně se nakonec na flashnutí donglu (i bricknutého, který nešel flashnout jedním z těch stovek návodů pro Windows) osvědčilo tohle:
http://www.0xf8.org/2017/01/flashing-a-huawei-e3372h-4g-lte-stick-from-hilink-to-stick-mode/
Konkrétně tam odkazované nástroje



Jelikož se to flashuje v nějakém low-level vývojářském režimu, není potřeba žádný klíč počítaný z IMEI atd.

Oproti návodu jen dvě drobnosti

  1. Umí to pracovat i s firmware zabaleným v .exe instalátoru/nástroji od Huawei, takže se nemusíte marně pídit po .bin.
  2. Nakonec mi fungoval balongflash na /dev/ttyUSB2, nikoli /dev/ttyUSB0. V tom mě nakopnul tento návod, taky myslím užitečný: http://markus.relix.de/index.php/Set_Huawei_E3372h_from_hilink_to_stick_mode

Možná by bylo fajn tyhle CLI nástroje mírně zauditovat (a zlokalizovat z ruštiny do angličtiny/češtiny :smiley: ) a zkompilovat pro Turrise (a dát do repository)? Zkompiloval jsem to jinak bez větších potíží na Fedoře na Raspberry Pi 2. :slight_smile:
Má tam k těm huhlavejům/Balongům i nějaké další nástroje, grafické, psané v Qt (např. tu počítačku klíčů z IMEI).

Jenom jeden drobnej warning:

~/h/balongflash> make all
gcc -O2 -Wunused -Wno-unused-result -D BUILDNO=279  -D_7ZIP_ST -lz    -c -o balong_flash.o balong_flash.c
gcc -O2 -Wunused -Wno-unused-result -D BUILDNO=279  -D_7ZIP_ST -lz    -c -o hdlcio_linux.o hdlcio_linux.c
gcc -O2 -Wunused -Wno-unused-result -D BUILDNO=279  -D_7ZIP_ST -lz    -c -o ptable.o ptable.c
gcc -O2 -Wunused -Wno-unused-result -D BUILDNO=279  -D_7ZIP_ST -lz    -c -o flasher.o flasher.c
gcc -O2 -Wunused -Wno-unused-result -D BUILDNO=279  -D_7ZIP_ST -lz    -c -o util.o util.c
gcc -O2 -Wunused -Wno-unused-result -D BUILDNO=279  -D_7ZIP_ST -lz    -c -o signver.o signver.c
gcc -O2 -Wunused -Wno-unused-result -D BUILDNO=279  -D_7ZIP_ST -lz    -c -o lzma/Alloc.o lzma/Alloc.c
gcc -O2 -Wunused -Wno-unused-result -D BUILDNO=279  -D_7ZIP_ST -lz    -c -o lzma/LzmaDec.o lzma/LzmaDec.c
lzma/LzmaDec.c: In function ‘lzma_decode’:
lzma/LzmaDec.c:1113:3: warning: ‘memcpy’ writing 8 bytes into a region of size 4 overflows the destination [-Wstringop-overflow=]
   memcpy(&outsize,inbuf+5,  8);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~
Current buid: 279

Až se k tomu Huawei zase dostanu (teď jsem to na pár týdnů půjčil), tak zkusím i nějaké informace odsud
http://nebezpecnyvynalezce.blogspot.cz/2016/09/openwrtlede-huawei-e3372.html?showComment=1513792872864#c8851284484535205652 (možná byla chyba v tom network configu používat device /dev/cdc-wdm0, měl jsem zkusit /dev/ttyUSB0)
https://lists.openwrt.org/pipermail/openwrt-devel/2016-March/040488.html
https://gist.github.com/artizirk/20acc2ab07fe6cad9fcc
https://forum.openwrt.org/viewtopic.php?pid=218745#p218745

Ten luci-proto-ncm je v openwrt masteru, tak snad to časem probublá i do TurrisOS…?

1 Like