Huawei E220/E270

Kohteesta Linux.fi
Loikkaa: valikkoon, hakuun

Tämä sivu käsittelee Huawei E220/E270 USB-liitäntäisen 3G-kännykän/modeemin asennusta. Tätä tuotetta myy Saunalahti DataPaketti-liittymiensä mukana ja DNA:lta saa samaa laitetta Mokkula-nimisenä. Myös Soneralta laitteen saa paketoituna 3G-mobiililittymiin, ja Elisalta Mobiililaajakaistaan.

Käyttöönotto[muokkaa]

SIM-kortin PIN-koodin antaminen tuottaa ongelmia, joten koodin kysely on poistettava käytöstä:

  1. Käytä SIM-korttia normaalissa kännykässä ja käy turva-asetuksista poistamassa PIN-koodin kysely käytöstä
  2. Sammuta puhelin ja laita SIM-kortti takaisin Huawei-3G-modeemiin ja kytke se uudelleen koneeseen.
  3. Alkuun laitteessa pitäisi välähtää vihreä ledi kahdesti kolmen sekunnin välein. Hetken päästä - jos kaikki meni hyvin - pitäisi laitteen päästä verkkoon, jolloin ledi välähtää vain kerran per sykli. Jos PIN-koodin kysely on käytössä, jää laite pysyvästi tuohon tuplavilkkumoodiin.

Vaihtoehtoisesti modeemille voi antaa käytettävän PIN-koodin (esim. init-komennolla):

AT+CPIN=1234

Tuoreet Linux-jakelut[muokkaa]

NetworkManager tukee 3g-modeemeita versiosta 0.7 lähtien ja on helpoin tapa niiden käyttämiseen.

Toiseksi helpoin tapa muodostaa Internet-yhteys (PPP-yhteys) Huawei-modeemilla on käyttää wvdial-nimistä ohjelmaa. Asenna se oman jakelusi paketinhallinnasta ja katso asetuksiin mallia wvdial-sivulta. Tämän jälkeen Internet-yhteyden pitäisi olla käytettävissä suorittamalla komento wvdial. Esimerkiksi Gnomessa ja KDE:ssä painamalla Alt-F2 ("Suorita sovellus") ja kirjoittamalla ikkunaan wvdial.

Jos kaikki meni hyvin, loistaa modeemin ledi yhtäjaksoisesti ja yhteydet toimivat.

Laitteen tilasta kertova LED[muokkaa]

  • Vihreä tuplavilkku: modeemi ei ole vielä saanut yhteyttä verkkoon
  • Yksittäinen vilkku: modeemi on verkossa, mutta tietokone ei käytä nettiyhteyttä
  • Jatkuvasti päällä: nettiyhteys käytössä

Lisäksi väri kertoo nopeuden:

  • Vihreä: GPRS/EDGE (max. 236 kbit/s, ping oletettavasti 600 ms tai enemmän)
  • Sininen: WCDMA (nk. normaali 3G, max. 384 kbit/s, ping 300+ ms)
  • Syaani: HSDPA (nopea 3G, max. 7,2 Mbit/s vastaanotto) ja E270:n kohdalla HSUPA (max. 2 Mbit/s lähetys), ping ~100 ms)

Laite näyttäisi automaattisesti vaihtavan WCDMA:lle aina, kun dataa ei liiku lainkaan. Jo hyvinkin pieni dataliikenne kuitenkin aiheuttaa vaihdoksen HSDPA-tilaan ja valitettavasti tilan vaihdosta aiheutuu lyhyt katkos. Kuitenkin jo pingin jättäminen taustalle pyörimään riittää pitämään modeemin pysyvästi HSDPA-tilassa.

ping -s 228 -i 2 -q -Ippp0 -W 2 [ip-osoite]

Huawei E270 tukee sekä HSDPA:ta että HSUPA:aa, mutta E220 vain HSDPA:ta.

Ongelmanratkaisu ja vanhemmat Linux-jakelut[muokkaa]

Laite näkyy USB:n yli samaan aikaan kolmena laitteena: CD-asemana (jolta löytyvät laitteen Windows-ajurit) ja kahtena USB-sarjaporttiadapterina. Ensimmäinen USB-sarjaporttiadapteri (laitetiedosto /dev/ttyUSB0) toimii perinteisen modeemin tai rfcomm:lla liitetyn kännykän tapaan, eli sillä voidaan "soittaa" ja yhdistää verkkoon. Toinen sarjaporttiliitäntä (ttyUSB1) taasen mahdollistaa laitteen seurannan ja ohjaamisen myös verkkoyhteyden ollessa käytössä.

Vanhemmilla Linux-jakeluilla käyttöönotto on hankalampaa ja vaatii monimutkaisempia toimenpiteitä. Vaatimuksena on ytimen versio 2.6.20 tai uudempi. Valitse ytimen asetuksista kohdasta Device Drivers -> USB support -> USB Serial Converter support -> seuraavat valinnat:

  • USB Serial Converter support (CONFIG_USB_SERIAL)
  • USB driver for GSM and CDMA modems (CONFIG_USB_SERIAL_OPTION)

Jos ytimesi käyttää moduuleja (mikä on yleistä), on moduulin nimi "option" ja se latautuu automaattisesti. Ajuripuoli onkin tämän jälkeen kunnossa ja laitetiedoston /dev/ttyUSB0 tulisi ilmestyä näkyviin, kun kytket modeemin USB-porttiin. Tässä saattaa tosin olla jopa noin minuutin viive. Jos laitetiedostoa ei tule näkyviin, saattaa kokoonpanosi vaatia pientä "puukotusta".

HUOM: Ubuntu 7.10:ssä olevilla ajureilla modeemi ei toimi oikein. Ongelma korjaantuu viimeistään versioon 8.04, jonka testiversiolla laite ei enää tunnistu CD-asemana, vaan oikeat laitetiedostot ilmestyvät jo muutaman sekunnin kuluessa laitteen kytkemisestä. 7.10:llä kannattaa kokeilla, jos http://oozie.fm.interia.pl/pro/huawei-e220 löytyvästä korjauksesta olisi apua.

HUOM2: Ubuntu 8.04.1:ssä airprime -ajuri tunnistaa laitteen kolmena sarjalaitteena. Nämä sarjalaitteet eivät kuitenkaan toimi oikein, jolloin tulee käyttää geneeristä usb_serial -moduulia. Tämä onnistuu lisäämällä rivi "blacklist airprime" tiedostoon /etc/modprobe.d/blacklist

HUOM3: Ubuntu 8.04.1:ssä (ainakin) huomaa tehdä verkon asetukset Network Setting-kuvakkeesta ylävalikossa (näytön kuvake oikealla). Klikkaa kuvaketta, tunnistaudu Unlock-painikkeesta ja laita Wired Connection Autoksi. Tämän jälkeen osoitteena näkyy DHCP.

Muodostetaan PPP-yhteys vastaavanlaisesti kuin edellisessä kappaleessa, käyttäen wvdial-ohjelmaa.

Nyt voit ottaa yhteyden komennolla wvdial. Jos kaikki meni hyvin, loistaa modeemin ledi yhtäjaksoisesti ja yhteydet toimivat. Jos modeemilta tuli viesti CONNECT, mutta pppd antaa vain virhekoodin, puuttuu ytimestä luultavasti PPP-tuki kokonaan tai PPP:n tuki async-sarjaporteille. Yleensä nuo löytyvät moduuleina jakeluiden oletusytimistä, mutta itse kääntäessä ne jäävät usein pois. Siis:

Device Drivers  ---> Network device support  --->  PPP (point-to-point protocol) support

ja sen alta avautuva

PPP support for async serial ports

Käyttö ilman wvdialia (Gentoossa)[muokkaa]

Nämä ohjeet on kirjoitettu Gentoolle, mutta pienellä soveltamisella ne saa toimimaan muuallakin. Jos et jostain syystä halua wvdial-ohjelmaa käyttää ja haluat modeemin toimivan perinteisemmän yhteyden tavoin (init-skriptillä), tarkista, että ytimen osat CONFIG_USB_SERIAL ja CONFIG_USB_SERIAL_OPTION on käännetty moduuleiksi. Tämän jälkeen lisää /etc/modules.autoload.d/kernel-2.6-tiedostoon automaattisesti ladattavaksi oikea moduuli:

usbserial vendor=0x12d1 product=0x1001

Vendor- ja product-parametrit saa komennolla lsusb (esimerkissä Huawei E620). ID-numeron ensimmäinen osa (ennen kaksoispistettä) on vendor- ja jälkimmäinen product-osa. Näiden eteen lisätään vain 0x.

Tämän jälkeen muokkaa /etc/conf.d/net-asetustiedostoa ja lisää sinne seuraava osio:

config_ppp0=( "ppp" )
link_ppp0="/dev/ttyUSB0"
plugins_ppp0=( )
pppd_ppp0=(
        "debug"
        "noauth"
        "novj"
        "modem crtscts"
        "usepeerdns"
        "local"
        "defaultroute"
        "noipdefault"
        "460800"
        "lock"
)
chat_ppp0=(
'ABORT' 'BUSY'
'ABORT' 'ERROR'
'ABORT' 'NO ANSWER'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'ABORT' 'NO DIAL TONE'
'ABORT' 'Invalid Login'
'ABORT' 'Login incorrect'
 'ATZ'
'OK' 'ATH'
'OK' 'AT+CGDCONT=1,"IP","internet","",0,0'
'OK' 'ATE1'
'OK' 'ATDT*99#'
'CONNECT' 
'TIMEOUT' '5'
'~--' 
)

Tämä soittosarja toimii DNA:n liittymissä. Muissa voit joutua muuttamaan puhelinnumeroa (*99#) tai access pointin nimeä ("internet").

Tämän jälkeen tehdään init-skripti komennolla ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0 ja laitetaan sen käynnistymään käynnistyksen yhteydessä: rc-update add net.ppp0 default.

Edistyneet toimenpiteet[muokkaa]

Automaattinen yhteydenotto[muokkaa]

Ainakin liikkuvassa käytössä olisi toivottavaa, että modeemi ottaisi yhteyden automaattisesti, kun laite kytketään USB:n perään. Tämä onnistuu onneksi udevin avulla hyvin helposti. Luo tiedosto >/etc/udev/rules.d/99-wvdial.rules ja kirjoita sinne rivi

ACTION=="add", KERNEL=="ttyUSB0", RUN="/bin/sh -c wvdial&>/var/log/wvdial&"

Tämä udev-sääntö testaa (huomaa vertailuoperaattori ==) että ACTION on "add" (uusi laite lisätty) ja että ytimen laitteesta käyttämä nimi on "ttyUSB0". Tällöin asetetaan (huomaa sijoitusoperaattori =) ajettavaksi ohjelmaksi wvdial (shellin välityksellä).

Jos koneellasi on inotify käytössä (yleensä on), huomaa udev uuden tiedoston automaattisesti. Jos ei, anna komento udevadm control --reload_rules, Ubuntu- ja Debian-järjestelmissä udevcontrol reload_rules. Modeemi pitää joka tapauksessa irrottaa ja kytkeä takaisin, jotta lisätty sääntö aktivoituu. Yhteys katkaistaan irrottamalla laite USB:stä.

Laitteen kytkemisen jälkeen valitettavasti kuluu aina tuo 60 sekuntia ennen kuin sitä voi käyttää. Näyttäisi olevan ihan modeemin oma ominaisuus, sillä lsusb:llä katsoessa se näkyy alkuun ainoastaan CD-asemana ja vasta minuutin jälkeen ilmestyvät kaksi muutakin laitetta. Ilmeisesti tämä on tarpeen, jotta Windows suostuisi ottamaan CD-aseman käyttöön, eikä hämääntyisi liian monimutkaisesta USB-laitteesta. Toinen ongelma on, ettei laite tunnistu, jos se on valmiiksi kytketty ennen kuin udev ehtii mukaan (esim. lämmin bootti tai "suspend to RAM"). Kylmässä bootissa tuo 60 sekunnin viive kuitenkin on hyödyksi, sillä udev on jo käynnissä, kun laite lopulta tulee esiin. Nämä ongelmat voisi luultavasti kiertää paremmilla udev-säännöillä.

Jos modeemia käytetään kiinteästi, on myös mahdollista lisätä yksinkertaisesti tiedostoon /etc/rc.local tai /etc/init.d/networking komento wvdial omalle rivilleen, jolloin yhteys muodostetaan automaattisesti tietokoneen käynnistyessä.

Yhteydenotto käynnistämällä Internet-selain[muokkaa]

Tässä luvussa kerrotaan miten saadaan mokkula ottamaan yhteys vasta kun nettiselain käynnistetään, ja katkaisemaan sen kun selain sammutetaan. Aluksi tehdään pieni skripti-tiedosto. Tekstieditoriin siis kirjoitetaan seuraava teksti:

#!/bin/bash
# Autodial any command
# May need to be executed with properly defined sudo .

#Check whether wvdial is running or not
ZZ=`ps ax | grep wvdial | grep -v grep` 
if [ -z "$ZZ" ]
	then
	# No interface active, start modem
	#wvdial >& /dev/null &
	wvdial &> /tmp/netti_kaytossa.mokkula &
	
	rest=""
	
	# Wait until connection is up	 
	while [ -z "$rest" ] 
		do
			sleep 5
			rest=`more /tmp/netti_kaytossa.mokkula | grep secondary`
	done

	#Start firefox
	eval firefox &> /dev/null

#Wvdial is already running
else
	# Just start the application without dialing
	eval firefox &> /dev/null
fi

#Firefox isn't runing anymore
ZZ=`ps ax | grep firefox | grep -v grep` 
if [ -z "$ZZ" ]
	then
		
	# When application completed, kill wvdial (BASH cannot to this with a pipe!)
	ZZ=`ps ax | grep wvdial | grep -v grep`
	while [ -n "$ZZ" ]
		do
			#Find proceses which are related to wvdial
			echo `ps ax | grep wvdial | grep -v grep` > /tmp/netti_kaytossa.mokkula

			#Variable processID contains process ID and rest contains rest of the file
			read processID rest < /tmp/netti_kaytossa.mokkula
			kill -9 $processID
			rm -f /tmp/netti_kaytossa.mokkula
			ZZ=`ps ax | grep wvdial | grep -v grep`
	done
fi

Tiedosto tallennetaan esim. nimellä yhteys_apu.sh kotihakemistoon. Seuraavaksi tiedostolle täytyy antaa suoritusoikeudet. Käynnistä terminaali ja mene hakemistoon, johon tallensit tiedoston (jos tallensit kotihakemistoon, olet jo siellä). Syötä sitten seuraava komento: chmod u+x yhteys_apu.sh

Seuraavaksi tehdään muutokset selaimen käynnistimeen/pikakuvakkeeseen. Kopioi työpöydällä oleva Firefox:in kuvake ja nimeä toinen uudelleen. Avaa sitten kuvakkeen Ominaisuudet-ikkuna. (Klikaa hiiren oikealla napilla kuvaketta ja valitse ominaisuudet) Käynnistin-välilehdellä vaihda kohtaan Komento seuraava rivi: sh /home/KÄYTTÄJÄ/yhteys_apu.sh Korvaa KÄYTTÄJÄ omalla käyttäjätunnuksellasi.

Nyt (ensimmäisen) selaimen käynnistäminen avaa yhteyden ja yhteys pysyy auki, kunnes (viimeinen) selain suljetaan. Tänä aikana yhteys on myös muiden ohjelmien käytettävissä.

Puhelut ja tekstiviestit[muokkaa]

Tulevaan puheluun voi vastata antamalla modeemille komennon ATA (esim. minicomilla), aivan kuten analogisilla modeemeilla aikoinaan, mutta en ole keksinyt miten ääntä saa ulos tai sisään - vastapuoli kuulee pelkkää hiljaisuutta. Myöskään soittaminen ei onnistu, ATD<puhelinnumero> aiheuttaa vastauksen "NO CARRIER". Tekstiviesteistä ei tule minkäänlaista merkkiä, pitääköhän niitä erityisesti kysyä tekstiviestikeskuksesta tms?

Katso myös[muokkaa]

Aiheesta muualla[muokkaa]