feed-image Odebírat tento obsah čtečkou
Nabídka
csenderusktr

Moje Rapsberry Pi - 3G modem Huawei E303

raspipidi

RPI má tu výhodu, že pokud potřebujeme přístup na Internet máme k dispozici LAN RJ45 konektor nebo USB. Do USB lze zapojit například WiFi adaptér, nebo níže uvedený 3G modem. Oproti Arduinu je výhoda RPI jasná (Arduino potřebuje nějaký interface například ENC28J60 a knihovnu na obsluhu obvodu. Nevýhodou je, že nám každá knihovna omezuje celkovou vnitřní paměť pro náš program. Toto vše v RPI odpadá - stačí pouze psát programy :-) . Cena Arduina a RPI je na srovnatelné úrovni (Arduino Atmega 328p = RPI cca 650,- Kč na http://cz.rs-online.com). 3G modem použijeme v situaci kdy nemáme jinou možnost připojení k Internetu...

3G modem Huawei E303:

 huaweie303

Zjistíme zda je 3g modem vidět v RPI

Chceme-li získat více informací o připojených USB zařízeních použijeme příkaz " lsusb ". Otevřeme okno terminálu a zadáme:

lsusb

výstup by měl vypadat nějak takto:

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 010: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard

 

Pokud ve výpisu u 3G modemu je nějaká zmínka o "modem" nebo "UMTS" zařízení máme vyhráno.

Pokud se nám ve výpisu zobrazuje: Bus 001 Device 010: ID 12d1: 14d1 Huawei Technologies, Ltd máme problém. 3G modem má malý oddíl, který obsahuje instalátor pro Windows. RPI zjistil tento oddíl a označil 3G modem jako úložné zařízení ještě před tím než měl šanci si všimnout 3G modemu. Pro odstranění tohoto problému nainstalujeme nástroj usb_modeswitch. Pro instalaci zadáme v okně terminálu:

sudo apt-get install usb-modeswitch

 

Dobře: Bus 001 Device 010: ID 12d1: 1506 Huawei Technologies Co, Ltd E398 LTE / UMTS / GSM Modem / Networkcard

Špatně: Bus 001 Device 010: ID 12d1: 14d1 Huawei Technologies, Ltd

 

Musíme říct operačnímu systému Vendor ID a ID zařízení. Více informací o identifikaci USB lze nalézt na debian wiki. První 4 znaky ID zařízení (prodejce ID) jsou stejné v obou případech, ale poslední 4 (ID zařízení) se změnily. USB-modeswitch nutí operační systém používat kombinaci, která odpovídá 3G modemu. Po instalaci USB-modeswitch je třeba provést úpravu v souboru / etc / usb_modeswitch.conf. ID našeho zařízení zjistíme ve výstupu "lsusb". Pokud máme výpis "viz řádek Špatně" musíme najít správné ID (druhá část) pro 3G modem. Jakmile jsme našli správné ID zařízení zkopírujeme ho a vložíme do textového editoru.

sudo nano /etc/usb_modeswitch.conf

a vložíme tyto řádky:

DefaultVendor = 0x12d1
DefaultProduct = 0x1506
MessageEndPoint = "0x01"
MessageContent = "55534243000000000000000000000011060000000000000000 000000000000"

 

Pro uložení stiskeme Ctrl + O a [enter] následované Ctrl-X.

 

Restartujeme RPI, spustíme "lsusb" a sledujeme výstup - pokud vidíme: Bus 001 Device 010: ID 12d1: 1506 Huawei Technologies Co, Ltd E398 LTE / UMTS / GSM Modem / Networkcard máme vyhráno...

 

Stažení a nastavení PPP, UMTSKeeper a Sakis3g
Balíček ppp nainstalujeme jako démona, který bude spravovat spojení mezi RPI a poskytovatelem 3G. Balíček lze nainstalovat přes terminál pomocí příkazu:

sudo apt-get install ppp

Nic dalšího s ppp dělat nemusíme (jen tak pracuje na pozadí jako démon a čeká na Sakis3g)

UMTSkeeper se používá k automatickému znovu připojení 3G adaptéru v případě výpadku spojení s operátorem.

Stáhneme a rozbalíme UMTSkeeper zadáním následujících příkazů do okna terminálu:

sudo mkdir umtskeeper
cd umtskeeper
sudo wget "http://zool33.uni-graz.at/petz/umtskeeper/src/umtskeeper.tar.gz"
sudo tar -xzvf umtskeeper.tar.gz
chmod +x umtskeeper

První příkaz vytvoří složku s názvem "umtskeeper ' v aktuálním adresáři, kde se nacházíme (poznamenáme si tuto cestu, protože ji budeme potřebovat dále k automatizaci UMTS). Nyní stáhneme Sakis3g do stejného adresáře. Sakis3g je skript pro připojení 3G modemu k operátorovi. Musíme znát několik údajů: APN, PIN SIM karty, uživatelské jméno a heslo (pokud ho poskytovatel požaduje). Chceme-li stáhnout a rozbalit sakis3g zadáme následující příkazy do okna terminálu:

sudo wget "http://downloads.sourceforge.net/project/vim-n4n0/sakis3g.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fvim-n4n0%2Ffiles%2F&ts=1363537696&use_mirror=tene~t" -O sakis3g.tar.gz
sudo tar -xzvf sakis3g.tar.gz
sudo chmod +x sakis3g
 

Než půjdeme dál pokusíme se vytvořit 3G připojení pomocí sakis3g skriptu. Sakis3g má interaktivní režim, který nás vyzve k zadání informací o našem připojení 3G. V okně terminálu, zadáme:

./sakis3g --interactive

dál postupujeme podle pokynů na obrazovce. Pokud nemáme APN uživatele nebo heslo, zadáme '0 '. Zda je připojení aktivní vyzkoušíme například v prohlížeči, nebo zadáním příkazu ping z okna terminálu:

ping -c 4 seznam.cz

Nyní otestujeme připojení pomocí UMTSkeepera. Příkaz může vypadat trochu matoucí (údaje jsou pro mé připojení): poznámka - musíme se nacházet ve složce umtskeeper

./umtskeeper --sakisoperators "USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='12d1:1506' APN='CUSTOM_APN' CUSTOM_APN='Internet' SIM_PIN='1234' APN_USER='0' APN_PASS='0'" --sakisswitches "--sudo --console" --devicename 'Huawei' --log --silent --monthstart 8 --nat 'no'

Úplný výpis parametrů nalezneme na stránkách UMTSKeepera.

Jakmile UMTSKeeper pracuje ve spolupráci se Sakis3g můžeme upravit / etc / rc.local, aby se příkaz spouštěl při spuštění operačního systému. V okně terminálu zadáme:

sudo nano /etc/rc.local

a přidáme následující jediný řádek:

/home/pi/umtskeeper/umtskeeper --sakisoperators "USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='12d1:1506' APN='CUSTOM_APN' CUSTOM_APN='Internet' SIM_PIN='1234' APN_USER='0' APN_PASS='0'" --sakisswitches "--sudo --console" --devicename 'Huawei' --log --silent --monthstart 8 --nat 'no'

 

Lepší způsob spouštění démona UMTSkeeper (tento způsob používám já). Nejprve vyhodnotíme zda je přítomno nějaké jiné zařízení pro připojení k Internetu (LAN, WiFi), které přiděluje IP adresu (pomocí DHCP serveru). Je zbytečné zapínat a přihlašovat 3G modem pokud máme připojení přes kabel...

V okně terminálu zadáme:

sudo nano /etc/rc.local

a vložíme tento obsah (na místo původního rc.local)

 

#!/bin/sh -e
# rc.local
/bin/echo "cekam na prirazeni IP adresy"

/bin/sleep 20

# Print the IP address
ETHWLAN=$(hostname -I) || true

if [ "$ETHWLAN" = "" ]
then
  /bin/echo "Zkousim pripojit USB-3G modem (pokud je pouzit) - cekejte cca 2 min"
  # fake adresa pro 3G modem
  /sbin/ifconfig eth0 up
  /sbin/ifconfig eth0 192.254.254.254
  /bin/sleep 2
  /home/pi/umtskeeper/umtskeeper --sakisoperators "USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='12d1:1506' APN='CUSTOM_APN' CUSTOM_APN='internet' SIM_PIN='1234' APN_USER='0' APN_PASS='0'" --sakisswitches "--sudo --console" --devicename 'Huawei' --log --silent --monthstart 8 --nat 'no' &
  /bin/sleep 120
fi

export TERM=linux

# zahodi fake adresu ve vypisu
IPS=$(hostname -I |/bin/sed 's/192\.254\.254\.254//g') || true

if [ "$IPS" != " " -a "$IPS" != "" ]
then
  printf "Moje IP adresa je: %s\n" "$IPS"
else
  /bin/echo "Nemam IP adresu..."
fi

/bin/sleep 5

exit 0

 

Pro uložení stiskeme Ctrl + O a [enter] následované Ctrl-X.

 

Stavy modemu (LED dioda):

Zelená bliká 2x/3 sekundy = modem je napájen

Zelená bliká 1x/3 sekundy = modem je registrován v síti 2G

Zelená svítí = modem je připojen do sítě 2G

Modrá bliká 1x/3 sekundy = modem je registrován v siti 3G/3G+

Modrá svítí = modem je připojen do sítě 3G

Azurová svítí = modem je připojen do sítě 3G+

Nesvítí = modem nemá napájení, nebo je poškozen

 

Nastavení APN místních operátorů

 

T-Mobile cz

Nastavení připojení k Internetu

 Name: TMCZ GPRS Internet
 APN: T-mobile CZ
 Proxy: nenastavuje se
 Port: nenastavuje se
 Username: gprs
 Password: gprs
 Server: nenastavuje se
 MMSC: null (vypsat ručně)
 MMS proxy: nenastavuje se
 MMS port: nenastavuje se
 MCC: 230
 MNC: 01
 APN type: internet

 

Telefonica O2 cz

Nastavení připojení k Internetu

 Name: O2 CZ
 APN: INTERNET
 Proxy: nenastavuje se
 Port: nenastavuje se
 Username: nenastavuje se
 Password: nenastavuje se
 Server: nenastavuje se
 MMSC: nenastavuje se
 MMS proxy: nenastavuje se
 MMS port: nenastavuje se
 MCC: 230
 MNC: 02
 APN type: default

 

Vodafone CZ

Nastavení připojení k Internetu

 Name: Vodafone CZ
 APN: internet
 Proxy: nenastavuje se
 Port: nenastavuje se
 Username: nenastavuje se
 Password: nenastavuje se
 Server: nenastavuje se
 MMSC: nenastavuje se
 MMS proxy: nenastavuje se
 MMS port: nenastavuje se
 MCC: 230
 MNC: 03
 APN type: default

 

29.12.2013 poznatky uživatele Jiří K.

Dobrý den, podle vašeho návodu jsem zprovoznil tento modem pod Raspianem. Připojení mám u O2. Na internet se dostanu, mám však problém s pingem: na raspianu dle vašeho návodu pinguju google.cz za 200-250ms. Udělám-li ping s tímto modemem zapojeným do notebooku, ping je okolo 50ms. Záhada dlouhého pingu vyřešena: dlouhý ping způsobuje snížení provozu providerem když není detekován pořádný trafic dat, pokud necháme načíst např. webovou stránku, ping skočí rapidně dolů...

Alternativní připojení modemu pomocí wvdial namísto použití sakis je snazší na konfiguraci a má více možností nastavení. Odkaz na zdroj (instalace sakis, nebo wvdial)

Komentáře   

#4 Martin Pihrt 2017-02-04 13:06
Cituji Lukáš1:
Dobrý den, chtěl jsem se zeptat jestli by bylo možné modem provozovat se sim virtuálního operátora.
Děkuji za odpověď

Dobrý den,
nemám otestováno (již nic na tomto modemu neprovozuji...) , ale pokud víte nastavení operátora, mělo by to fungovat také. MP
#3 Lukáš1 2017-02-03 19:18
Dobrý den, chtěl jsem se zeptat jestli by bylo možné modem provozovat se sim virtuálního operátora.
Děkuji za odpověď
#2 Martin Pihrt 2016-05-30 17:30
Cituji Radek 2:
Dobrý den
Chtěl bych poprosit o radu. Podle Vašeho návodu jsem dokázal zprovoznit modem, bohužel narážím na problém se spuštěním po restartu. Když do /etc/rc.local zadám pouze ten jeden řádek, modem se při startu aktivuje a připoji, bohužel když použiju ten script a nahradím celý obsah rc.local modem se nepřihlásí do sítě. Poradil by jste prosím co stím?

Dobrý den,
nerozumím tomu "Když do /etc/rc.local zadám pouze ten jeden řádek" napište prosím co přesně zadáte.
Děkuji MP
#1 Radek 2 2016-05-30 11:44
Dobrý den
Chtěl bych poprosit o radu. Podle Vašeho návodu jsem dokázal zprovoznit modem, bohužel narážím na problém se spuštěním po restartu. Když do /etc/rc.local zadám pouze ten jeden řádek, modem se při startu aktivuje a připoji, bohužel když použiju ten script a nahradím celý obsah rc.local modem se nepřihlásí do sítě. Poradil by jste prosím co stím?

Nemáte oprávnění pro vkládání komentářů (You have no rights to post comments.)