.--------------.
| 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 |
                                                                                      '--------'
forum fotograficzne