.--------------.
| Menu główne: |
'------.-------'
|
.---'-----------------------------. .-----------------------. .---------------------------------. .---------------.
| GPRS w Linuksie przez Bluetooth |--| Jak ze mną rozmawiać? |--| Projekty w których biorę udział |--| Krótko o mnie |
'---.-----------------------------' '-----------------------' '---------------------------------' '---------------'
|
|
.---'----------.
| Wprowadzenie |
'---.----------'
|
| Instrukcja łączenia się z internetem przez GPRS (via Bluetooth) przy użyciu telefonu Nokia 6230i,
| system operacyjny Linux (Kubuntu 6.06 LTS)
|
| Cały poradnik wraz z plikami konfiguracyjnymi można ściągnąć stąd
|
| Poniższy opis stworzonył Grzegorz 'ixcesal' Lasecki i umieścił go na stronie forum.ubuntu.pl;
| jemu należą się wszelkie słowa uznania za stworzenie przewodnika.
| Tutaj znajduje się opis jedynie dla telefonu Nokia 6230i oraz usługi iPlus, z których korzystam ja.
| Jeśli potrzebujesz informacji jak skonfigurować połączenie z innym telefonem, np. z SE k700i,
| zajrzyj do tego tematu.
|
| Wszystkie operacje wykonane zostały na Kubuntu 6.06 LTS (System operacyjny oparty na Debianie),
| z telefonem Nokia 6230i oraz wykupioną usługą iPlus. Używany był klucz bluetooth Pentagram Fang.
| Uważam jednak, że rozwiązanie to będzie działało z większością systemów Linux oraz prawdopodobnie
| z wszystkimi urządzeniami bluetooth wpinanymi w port USB.
|
| Do obsługi technologii bluetooth potrzebne są odpowiednie pakiety (bluez-utils, kbluetoothd).
| Najczęściej są one już wbudowane w system. W ubuntu wszystkie komendy poprzedzamy 'sudo'.
|
| Komputer komunikuje się telefonem przez ObexFile transfer, jednakże ikona dialup w menu Bluetooth
| nie pozwala na wykonanie sensownej akcji.
|
.---'------------------------------.
| Sprawdzenie i parowanie urządzeń |
'---.------------------------------'
|
| 1. Wpisujemy w konsoli:
| hciconfig
|
| W odpowiedzi otrzymujemy:
| hci0: Type: USB
| BD Address: 00:11:67:05:4B:1E ACL MTU: 678:8 SCO MTU: 48:10
| UP RUNNING PSCAN ISCAN
| RX bytes:1077766 acl:4908 sco:0 events:4001 errors:0
| TX bytes:308521 acl:3013 sco:0 commands:82 errors:0
|
| co oznacza, że bluetooth działa. W drugiej linii znajduje się adres MAC urządzenia (00:11:67:05:4B:1E)
|
| 2 .Włączamy bluetooth w telefonie, w konsoli wpisujemy:
| hcitool inq
|
| w odpowiedzi otrzymujemy.
| Inquiring ...
| Inquiring ...
| 00:12:62:D4:97:0D clock offset: 0x13e4 class: 0x502204
|
| Otrzymany adres MAC jest adresem naszego telefonu. W przypadku, gdy nie otrzymamy go w wyniku
| powyższej komendy, należy wyłączyć bluetooth’a w telefonie i włączyć go ponownie. Można
| zrestartować również bluetooth w Linuksie komendą /etc/init.d/bluez-utils restart
|
| 3. Dla pewności sprawdzamy pingiem czy telefon widzi się z bluetoothem, komendą L2PING:
| l2ping 00:12:62:D4:97:0D
|
| podając oczywiście adres uzyskany w poprzednim kroku (tj. adres telefonu). W odpowiedzi otrzymujemy:
|
| Ping: 00:12:62:D4:97:0D from 00:11:67:05:4B:1E (data size 44) ...
| 0 bytes from 00:12:62:D4:97:0D id 0 time 514.95ms
| 0 bytes from 00:12:62:D4:97:0D id 1 time 8.22ms
| 0 bytes from 00:12:62:D4:97:0D id 2 time 9.07ms
| 0 bytes from 00:12:62:D4:97:0D id 3 time 7.87ms
| 0 bytes from 00:12:62:D4:97:0D id 4 time 8.70ms
| 5 sent, 5 received, 0% loss
|
| co oznacza, że pakiety między telefonem a komputerem śmigają.
|
| 4. Sprawdzamy czy DUN (Dial-Up Networking) będzie działał. Wpisujemy:
|
| sdptool search DUN
|
| i uzyskujemy następującą odpowiedź:
| Inquiring ...
| Searching for DUN on 00:11:67:05:4b:1e ...
| Service Name: Dial-Up Networking
| Service RecHandle: 0x10005
| Service Class ID List:
| "Dialup Networking" (0x1103)
| Protocol Descriptor List:
| "L2CAP" (0x0100)
|
| "RFCOMM" (0x0003)
| Channel: 1
| Language Base Attr List:
| code_ISO639: 0x454e
| encoding: 0x6a
| base_offset: 0x100
| Profile Descriptor List:
| "Dialup Networking" (0x1103)
| Version: 0x0100
|
| informacja ta potwierdza istnienie usługi Dialup w naszym telefonie, zapamiętujemy z tego
| jedynie parametr Channel (w powyższym przypadku Channel=1)
|
.---'-------------------------------.
| Tworzenie plików konfiguracyjnych |
'---.-------------------------------'
|
| 1. Edytujemy plik /etc/bluetooth/rfcomm.conf
| nano /etc/bluetooth/rfcomm.conf
| Powinien wyglądać tak:
-------'-------------------------
rfcomm0 {
bind yes;
# # Tutaj zmien adres MAC (00:12:62:D4:97:0D) na twoj.
device 00:12:62:D4:97:0D;
# # RFCOMM channel for the connection
channel 1;
# # Description of the connection
comment "moj telefon";
}
-------.-------------------------
| Jako device podajemy MAC adres wykrytego wcześniej telefonu (pkt. 2), jako channel parametr z pkt. 4
|
| 2. Sprawdzamy zawartość pliku /etc/bluetooth/pin, zapamiętujemy lub zmieniamy i też
| zapamiętujemy. Nokia poprosi o ów kod pin podczas pierwszego połączenia przez bluetooth.
|
| 3. Teraz należy zrestartować bluetooth w komputerze poprzez wpisanie:
| /etc/init.d/bluez-utils restart
|
| 4. Wykonujemy kolejne polecenie:
| rfcomm
|
| (U mnie komenda ta zadziałała po zrestartowaniu całego systemu)
|
| otrzymujemy taki oto wynik:
| rfcomm0: 00:12:62:D4:97:0D channel 1 clean
| to dobry znak. Adres telefenu sparował się z interfejsem rfcomm0.
|
| 5. Aby operacja ta wykonywała się przy każdym starcie systemu możemy wykonać następujące dowiązanie:
| ln -s /etc/init.d/bluez-utils /etc/rc5.d/Nokia6230iBluetooth
|
.---'---------------------------.
| Konfiguracja połączenia GPRS |
'---.---------------------------'
|
| Teraz przystąpmy do konfiguracji połączenia z siecią iPlus, oczywiście analogicznie można skonfigurować
| połączenie dla Ery lub Orange.
|
| Najważniejsze informacje:
|
| Plus APN: "www.plusgsm.pl" (użytkownik: brak, hasło: brak).
| Idea APN: "www.orange.pl" lub "www.idea.pl" (użytkownik: ppp, hasło: ppp).
| Era APN: "erainternet" (użytkownik: erainternet, hasło: erainternet).
|
| W przypadku korzystania z innej sieci niż Plus GSM, należy zamienić w poniższych plikach
| odpowiadające sobie wpisy (tzn. adres APN, nazwę użytkownika i hasło).
|
| 1. Zaczynamy od utworzenia: /etc/ppp/peers/gprs
| nano /etc/ppp/peers/gprs
| Zawartość pliku podana jest poniżej:
|
-------'-------------------------
# File: gprs
#
# Description:
# Serial cable, IrDA, Bluetooth and USB pppd options for GPRS phones.
# Keep pppd attached to the terminal:
# Comment this to get daemon mode pppd
#nodetach
updetach
# Opcja updatach oznacza, ze pppd odlaczy sie od terminala dopiero
# gdy zostanie nawiazane polaczenie.
# Debug info from pppd:
# Comment this off, if you don't need more info
debug
# Show password in debug messages
show-password
# Connect/Disconnect scripts:
connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs-connect-chat"
disconnect "/usr/sbin/chat -v -f /etc/chatscripts/gprs-disconnect-chat"
# Serial device to which the GPRS phone is connected:
# /dev/ttyS0 for serial port (COM1 in Windows),
#/dev/ircomm0
# /dev/ircomm0 for IrDA,
#/dev/ttyUB0 for Bluetooth (Bluez with rfcomm running) and
# /dev/ttyUSB0 for USB
#/dev/ttyS0 # serial port one
#/dev/ttyS1 # serial port two
#/dev/ircomm0 # IrDA serial port one
/dev/rfcomm0 # Bluetooth serial port one
#/dev/ttyUSB0 # USB serial device, for example Orange SPV
# Serial port line speed
115200 # fast enough
#57600 # perhaps usefull with IrDA
# Hardware flow control:
# Use hardware flow control with cable, Bluetooth and USB but not with IrDA.
crtscts # serial cable, Bluetooth and USB
#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
:10.0.0.1
# 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
novj
nobsdcomp
novjccomp
nopcomp
noaccomp
# 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.
# Example, Radiolinja operator pap-secrets:
# "rlnet" * "internet" *
user ""
# Asyncmap:
# some phones may require this option.
#asyncmap 0xa0000
# No magic:
# some phones may require this option.
#nomagic
# Require PAP authentication:
# some phones may require this option.
#require-pap
-------.-----------------------
|
| 2. Tworzymy plik /etc/chatscripts/gprs-connect-chat
| nano /etc/chatscripts/gprs-connect-chat
| Poniżej wersja dla Nokii:
|
-------'----------------------
# File: gprs-connect-chat
#
# Description:
#
# Set PDP context CID=1, protocol=IP, APN=internet:
# AT+CGDCONT=1,"IP","internet","",0,0
#
# Set CID=1 QoS requirements from the network, not supported by Nokia:
# AT+CGQREQ=1,0,0,0,0,0
#
# Set CID=1 minimum acceptable QoS parameters, not supported by Nokia:
# AT+CGQMIN=1,0,0,0,0,0
#
# 'Call' CID=1 (activate PDP context one, perform GPRS attach):
# ATD*99***1#
#
# Some phones like the Orange SPV (yes, the Microsoft Smartphone) use this
# dial string to start GPRS connection:
# ATD*99#
#
# The actual chat script:
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'
'' \rAT
TIMEOUT 12
SAY "Press CTRL-C to close the connection at any stage!"
SAY "\ndefining PDP context...\n"
OK ATH
OK ATE1
OK 'AT+CGDCONT=1,"IP","www.plusgsm.pl"'
OK ATD*99***1#
TIMEOUT 22
SAY "\nwaiting for connect...\n"
CONNECT ""
SAY "\nConnected."
SAY "\nIf the following ppp negotiations fail,\n"
SAY "try restarting the phone.\n"
-------.---------------------
|
| 3. Tworzymy plik /etc/chatscripts/gprs-disconnect-chat
| nano /etc/chatscripts/gprs-disconnect-chat
| aby wyglądał tak:
|
-------'--------------------
# File: gprs-disconnect-chat
#
# send break
exec /usr/sbin/chat -V -s -S
ABORT "BUSY"
ABORT "ERROR"
ABORT "NO DIALTONE"
SAY "\nSending break to the modem\n"
"" "\K"
"" "+++ATH"
SAY "\nPDP context detached\n"
-------.--------------------
|
| 4. Tworzymy plik /etc/ppp/chap-secrets komendą
| nano /etc/ppp/chap-secrets
|
-------'--------------------
# Secrets for authentication using PAP
# client server secret IP addresses
"" * "" *
-------.-------------------
|
| 5. Tworzymy plik /etc/ppp/ip-up.local komendą:
| nano /etc/ppp/ip-up.local
| Oto zawartość:
|
-------'-------------------
mv /etc/resolv.conf /etc/resolv.conf-pppbackup
cp -f /etc/ppp/resolv.conf /etc/resolv.conf
chmod a+r /etc/resolv.conf
-------.------------------
|
| 6. I analogicznie /etc/ppp/ip-down.local
| nano /etc/ppp/ip-down.local
|
-------'-----------------
mv /etc/resolv.conf-pppbackup /etc/resolv.conf
-------.----------------
|
| 7. Uwaga: W przypadku Nokii w pliku /etc/ppp/options należy zakomentować wpis
| #lcp-echo-failure 4
| (dodać # przed linią)
|
| Ta czynność zapobiega rozłączaniu się Nokii po ok. dwóch minutach użytkowania internetu
| Oczywiście jeżeli inne aparaty będą rozłączały połączenie należy również zakomentować ten wpis.
|
.---'--------------------------------------------.
| Kończenie konfiguracji i pierwsze uruchomienie |
'---.--------------------------------------------'
|
| W telefonie wyszukujemy urządzeń Bluetooth, na liście powienien pojawić się nasz komputer,
| dodajemy go do urządzeń zaufanych używając kodu pin określonego w punkcie 2 w dziale Tworzenie plików konfiguracyjnych.
| W przypadku Nokii warto również zaznaczyć opcję łączenia z urządzeniem bez potwierdzania.
|
| Od teraz tą komendą będziemy łączyć się z internetem:
| pppd call gprs
|
| ... w tacce systemowej zaczyna migać ikona Bluetooth, a telefon powinien po chwili pokazać komunikat
| o nawiązywaniu połączenia GPRS.
|
| Voila! Aby podłączyć się ponownie z usługą należy wpisać tylko 'pppd call gprs'.
|
'----------------------------------------------------------------------------------.
|
.---'----.
| Koniec |
'--------'