wtorek, września 08, 2009

GPRS on Linux Part 2 - Bluetooth

Było o GPRS przez USB, a teraz czas zabawić się znów Bluetooth'em. Konkretnie to profilem DUN. W tym celu potrzebny będzie włączony protokół rfcomm (ot, taki sobie emulowany port szeregowy, tylko że bezprzewodowy). Zakładam, że BT już zostało skonfigurowane i urządzenia zostały sparowane. Teraz przyda się polecenie sdptool wchodzące w skład pakietu bluez.
# sdptool search DUN
Inquiring ...
Searching for DUN on 00:XX:XX:XX:XX:EA ...
Service Name: Dial-up Networking
Service RecHandle: 0x10002
Service Class ID List:
  "Dialup Networking" (0x1103)
  "Generic Networking" (0x1201)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 2
Profile Descriptor List:
  "Dialup Networking" (0x1103)
    Version: 0x0100
Polecenie odpytało wszystkie znajdujące się pobliżu urządzenia BT czy dostarczają usługi Dialup Networking. Jak widać laptop znalazł moją komórkę i wykrył, że może ona działać jako modem używając protokołu rfcomm na kanale 2. Informacja odnośnie kanału na którym pracuje telefon, będzie nam potrzebna. Edytujemy plik /etc/bluetooth/rfcomm.conf wpisując zdobyte informacje.
#
# RFCOMM configuration file.
#

rfcomm0 {
#       # Automatically bind the device at startup
        bind yes;
#
#       # Bluetooth address of the device
        device 00:XX:XX:XX:XX:EA;
#
#       # RFCOMM channel for the connection
        channel 2;
#
#       # Description of the connection
        comment "Lightnirs SE k550";
}
Teraz restartujemy demona bluetooth, aby zastosować zmiany. # /etc/rc.d/bluetooth restart Do komórki będziemy odwoływać się jako urządzenia /dev/rfcomm0. Podobnie jak w przypadku GPRS poprzez USB będą nam potrzebne dwa pliki - jeden do negocjacji połączenia, a drugi do ustawień pracy modemu. Pierwszy plik (/etc/ppp/chat-era) wygląda dokładnie tak samo jak w wersji GPRS poprzez USB, co jest logiczne skoro dostawca internetowy jest ten sam. Ponieważ tym razem modem to inne urządzenie (z punktu widzenia systemu), więc wymaga nieco innych ustawień. Utworzyłem sobie taki oto plik konfiguracyjny /etc/ppp/peers/erabt
/dev/rfcomm0
115200
defaultroute
usepeerdns
crtscts
lock
hide-password
holdoff 3
maxfail 3
ipcp-accept-local
lcp-echo-failure 12
noauth
novj
novjccomp
persist
mtu 1500
mru 1500
linkname erabluetooth
#nodetach
#debug
connect '/usr/sbin/chat -v -f /etc/ppp/chat-era'
Teraz o ile użytkownik posiada odpowiednie uprawnienia (por. "GPRS on Linux Part 1 - USB") może nawiązać połączenie wykonując sudo pon erabt Analogicznie by się rozłączyć wpisujemy sudo poff erabt. Na koniec jeszcze małe zestawienie wad i zalet GPRS przez USB oraz Bluetooth. Zaletą Bluetooth niewątpliwie jest wygoda użytkowania, bo nie trzeba nosić ze sobą dodatkowego kabla by podłączyć telefon. Niestety technologia Bluetooth w porównaniu z np. z Zigbee działającym na tym samym paśmie jest naprawdę prądożercza i zakłada, że urządzenia BT będą w miarę często ładowane. Nie jest to więc optymalne rozwiązanie jeśli jesteśmy w szczerym polu i laptop posiada nie w pełni naładowaną baterię. Wariant z USB jest bardziej korzystny, ale telefon posiada ustawienia fabryczne, które włączają automatyczne ładowanie akumulatora podczas połączenia USB. Całe szczęście można to wyłączyć korzystając z ukrytego menu serwisowego. By się do niego dostać w telefonach Sony Ericsson trzeba wystukać następującą sekwencję na klawiaturze → * ← ← * ← *, gdzie strzałki to ruchy joysticka. W menu serwisowym wybieramy "Ustawienia usług" -> "Ładowanie wył."

Ach, aż mam ochotę wybrać się gdzieś na łono natury. Tylko ja, świeże powietrze, rower, laptop i komórka... ]:)

Brak komentarzy: