Matkapuhelin modeemina

Linux.fista
Versio hetkellä 15. huhtikuuta 2007 kello 23.28 – tehnyt Heikki (keskustelu | muokkaukset) (tällainen ubuntu suomen wikistä tekijän luvalla)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

Matkapuhelinta voidaan käyttää modeemina, jos siinä on joko 3G, EDGE tai GPRS -valmius. Yhteys voidaan luoda joko bluetoothin tai datakaapelin kautta. Yhteydenottoa varten tarvittavat ohjelmat tulevat monien jakeluiden (esimerkiksi Ubuntun) mukana. Jos oppaassa käytettävät komennot eivät toimi (ohjelmia ei löydy), etsi paketinhallinnasta pakettia nimellä bluez-utils.

Tässä vaiheessa yhteyttä on testattu vain Nokian matkapuhelimilla sekä vain Saunalahden ja DNA:n liittymillä.

Testatut matkapuhelimet

  • Nokia N70, CA-53 datakaapeli (usb) & bluetooth
  • Nokia 6822, CA-42 datakaapeli (usb) (bluetoothilla epäonnistui)
  • Nokia 5500 Sport, bluetooth

Bluetooth

Parita ensin puhelin tietokoneen kanssa. (Nokia N70: yhdeydet –> bluetooth –> laiteparit –> lisää uusi laite). Parituksen epäonnistuminen saattaa johtua ISCAN:n puuttumisesta. Homman voi tarvittaessa korjata näillä komennoilla (pääkäyttäjän oikeuksilla):

hciconfig hci0 down
hciconfig hci0 up PISCAN

Ja sitten asiaan.

Ensiksi pitää selvittää mikä on matkapuhelimen mac-osoite. Aja komento

hcitool scan

Joka tulostaa esimerkiksi seuraavaa:

00:15:A0:7A:1D:5A       Epelin N70

Tässä 00:15:A0:7A:1D:5A on puhelimen mac-osoite. Laita se muistiin.

Seuraavaksi pitää selvittää, mitä kanavaa kännykän modeemi(RFCOMM) käyttää:

sdptool browse 00:15:A0:7A:1D:5A

Komento tulostaa listan eri ominaisuuksista joita puhelimessa on. Etsi kohta Dial-Up Networking.

Service Name: Dial-Up Networking
Service RecHandle: 0x1000f
Service Class ID List:
  "Dialup Networking" (0x1103)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 3
Language Base Attr List:
  code_ISO639: 0x454e
  encoding:    0x6a
  base_offset: 0x100
Profile Descriptor List:
  "Dialup Networking" (0x1103)
    Version: 0x0100

Tässä tapauksessa kanava on siis kolme.

Bluetoothin asetukset

Muokkaa tiedosto /etc/bluetooth/rfcomm.conf vastaavaksi tämän kanssa:

rfcomm0 {
# Ota laite automaattisesti käyttöön käynnistyksen yhteydessä
bind yes;
#
# Puhelimen mac-osoite
device 00:15:A0:7A:1D:5A;
#
# # RFCOMM kanava
channel 3;
#
# Yhteyden kuvaus
comment "Nokia N70";

Tämän jälkeen käynnistä bluetooth-palvelu uudestaan:

/etc/init.d/bluetooth restart

Yhteysasetukset

Tehdään esimerkkinä asetukset Saunalahtea varten. Alempana lista muiden operaattoreiden asetuksista. Muille operaattoreille asetuksia voi etsiä vaikka tästä Ubuntu Suomen keskustelualueiden viestiketjusta.

Yhteysasetukset tulevat hakemistoon /etc/ppp/peers/. Luo esimerkiksi tiedosto /etc/ppp/peers/saunalahti ja laita sinne seuraavat asetukset (Saunalahden liittymälle). Käy tiedosto läpi ja muuta sinne tarvittavat kohdat itsellesi sopiviksi (esim. käyttäjätunnus, salasana ja polut).

# Most GPRS phones don't reply to LCP echo's
lcp-echo-failure 0
lcp-echo-interval 0
# Keep pppd attached to the terminal:
# Comment this to get daemon mode pppd
nodetach
# Debug info from pppd:
# Comment this off, if you don't need more info
debug
# Show password in debug messages
show-password
# Connect script:
# scripts to initialize the GPRS modem and start the connection,
connect /etc/ppp/saunalahti-connect-chat
# Disconnect script:
# AT commands used to 'hangup' the GPRS connection.
disconnect /etc/ppp/saunalahti-disconnect-chat
# Serial device to which the GPRS phone is connected:
# HUOM! Ota komentti pois sen kohdalta kumpaa yhteystapaa haluat käyttää.
#/dev/ttyACM0    # Datakaapeliyhteys
#/dev/rfcomm0      # Bluetoothyhteys
# Serial port line speed
115200  # fast enough
#57600
# Hardware flow control:
# Use hardware flow control with cable, Bluetooth and USB but not with IrDA.
crtscts  # serial cable, Bluetooth and USB, on some occations with IrDA too
#nocrtscts # IrDA
# Ignore carrier detect signal from the modem:
local
# IP addresses:
# - accept peers idea of our local address and set address peer as 10.0.0.1
# (any address would do, since IPCP gives 0.0.0.0 to it)
# - if you use the 10. network at home or something and pppd rejects it,
# change the address to something else
0.0.0.0:0.0.0.0
# pppd must not propose any IP address to the peer!
noipdefault
# Accept peers idea of our local address
ipcp-accept-local
# Add the ppp interface as default route to the IP routing table
defaultroute
# DNS servers from the phone:
# some phones support this, some don't.
usepeerdns
# ppp compression:
# ppp compression may be used between the phone and the pppd, but the
# serial connection is usually not the bottleneck in GPRS, so the
# compression is useless (and with some phones need to disabled before
# the LCP negotiations succeed).
novj
nobsdcomp
novjccomp
nopcomp
noaccomp
noccp
# The phone is not required to authenticate:
noauth
# Username and password:
# If username and password are required by the APN, put here the username
# and put the username-password combination to the secrets file:
# /etc/ppp/pap-secrets for PAP and /etc/ppp/chap-secrets for CHAP
# authentication. See pppd man pages for details.
user "none"
password 12346
#
mtu 1500
mru 1500
asyncmap 0xa0000

Luodaan seuraavaksi skripti, joka luo yhteyden. Varmistu että yhteysasetustiedostossa on oikeat polut tähän. Luo tiedosto /etc/ppp/saunalahti-connect-chat seuraavalla sisällöllä (tiedostonimen alkuosassa on siis yhteyden nimi:

#!/bin/sh
exec chat                                               \
        TIMEOUT         5                               \
        ECHO            ON                              \
        ABORT           '\nBUSY\r'                      \
        ABORT           '\nERROR\r'                     \
        ABORT           '\nNO ANSWER\r'                 \
        ABORT           '\nNO CARRIER\r'                \
        ABORT           '\nNO DIALTONE\r'               \
        ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
        ''              AT                              \
        OK              ATH                             \
        OK              ATE1                            \
        OK              'AT+CGDCONT=1,"IP","internet.saunalahti","0.0.0.0",0,0' \
        OK              ATD*99#                         \
        TIMEOUT         22                              \
        CONNECT         ""

Luodaan myös vastaavasti skripti, jolla yhteys katkaistaa tiedostoon /etc/ppp/saunalahti-disconnect-chat, ja lisätään sinne seuraavat rivit:

#!/bin/sh
exec /usr/sbin/chat -V -s -S \
ABORT "BUSY" \
ABORT "ERROR" \
ABORT "NO DIALTONE" \
SAY "\nSending break to the modem\n" \
"" "K" "" "K" "" "K" "" \
"+++ATH" "" "+++ATH" "" "+++ATH"

Anna seuraavaksi tiedostoille suoritusoikeudet:

chmod +x /etc/ppp/saunalahti-*

Muut operaattorit

Yhdistäminen

Lopuksi yhteyden voi luoda komennolla:

pon saunalahti

Ja sitten surffaamaan :)

Surffaamisen voi lopettaa oikeaoppisesti toisessa päätteessä komennolla:

poff saunalahti

Sana "saunalahti" tulee /etc/ppp/peers/ -hakemistoon tallennetun tiedoston mukaan. Ctrl+c:llä voi myös katkaista yhteyden. Kännykän (ainakin Nokia N70) Connection mangerilla, joka näyttää mm. senhetkiset yhteysnopeudet ja siirretyn datamäärän, voi seurata yhteyden käyttöä.


Linkkejä ja lähteet