random hackery

2007-03-30

bazė – bluetooth GPRS/EDGE/3G

Įrašyta kategorijoje: base — Almantas Karvelis @ 01:15

Bluetooth:

root@base:~# apt-get install bluetooth bluez-utils

root@base:~# hcitool dev
Devices:
        hci0    00:0F:0E:0D:0B:0A

Telefone įjungiame BT ir nustatome, kad jis nebūtų “hidden” (tik poravimui).
Pasižiūrime, ar matome telefoną:

root@base:~# hcitool scan
Scanning ...
        00:01:02:03:04:05       Nokia 6230i

Toliau visuose pavyzdžuose 00:0F:0E:0D:0B:0A bus hosto BT adresas, o 00:01:02:03:04:05 – telefono.

root@base:~# l2ping -c 3 00:01:02:03:04:05
Ping: 00:01:02:03:04:05 from 00:0F:0E:0D:0B:0A (data size 44) ...
0 bytes from 00:01:02:03:04:05 id 0 time 31.74ms
0 bytes from 00:01:02:03:04:05 id 1 time 16.18ms
0 bytes from 00:01:02:03:04:05 id 2 time 35.97ms
3 sent, 3 received, 0% loss

pakeičiame /etc/bluetooth/hcid.conf konfigą, pridėdami “autoinit yes” ir “security auto”:

options {
        autoinit yes;
        security auto;
        pairing multi;
        passkey "1234";
}

device {
        name "%h-%d";
        class 0x3e0100;
        iscan enable; pscan enable;
        lm accept;
        lp rswitch,hold,sniff,park;
}

/etc/bluetooth/rfcomm.conf konfige sukūriame įrenginį:

rfcomm0 {
        bind yes;
        device 00:01:02:03:04:05;
        channel 1;
        comment "Nokia 6230i";
}

restartuojame servisą:

root@base:~# /etc/init.d/bluetooth restart

Dabar pamėginę pasiekti įrenginį /dev/rfcomm0 , telefone matysime bandymą poruotis, tačiau kokį piną bevestume, poravimas bus nesėkmingas, o syslog išmes pranešimą iš hcid: “call_passkey_agent(): no agent registered”

Šitą problemą galima išspresti 2iem būdais:

1. instaliuojant passkey-agent utilitą:

root@base:~# apt-get install libdbus-1-dev
root@base:~# cd /usr/share/doc/bluez-utils/examples/
root@base:/usr/share/doc/bluez-utils/examples# gunzip passkey-agent.c.gz
root@base:/usr/share/doc/bluez-utils/examples# make
root@base:/usr/share/doc/bluez-utils/examples# install passkey-agent /usr/local/bin/

Dabar norėdami suporuoti telefoną paleidžiame agentą ir bandome pasiekti rfcomm0 įrenginį:

root@base:~# passkey-agent --default 1234 &
root@base:~# cat /dev/rfcomm0
^C

Suporavę telefona galime žudyti passkey-agent procesą, jo mums nebereikia, nebent vėl reikėtų poruoti.

2. Kitas variantas aprašytas kaip “unsupported” /usr/share/doc/bluez-utils/README.Debian.gz faile:

root@base:~# echo "00:01:02:03:04:05 1234" > /var/lib/bluetooth/00:0F:0E:0D:0B:0A/pincodes

kur “1234″ yra BT poravimo pin kodas. Šiuo atveju, jeigu reikėtų naujai poruotis (kas yra labai tikėtina dualbootinėje sistemoje, kur mes šokinėjame tarp windows ir linux, ir poravimas įvykdytas vienoje sistemoje nebeveikia kitoje), pin kodas iš Linux bus siunčiamas automatiškai.

Patikriname, ar galime pasiekti telefoną ir duoti jam AT komandas:

root@base:~# apt-get install minicom
root@base:~# echo "pu port /dev/rfcomm0" > /etc/minicom/minirc.dfl
root@base:~# minicom

minicom’e davę telefonui komanda AT turime gauti OK. Tai reiškia, kad galime konfigūruoti ppp.
Šiuo atveju tai bus GPRS per Omnitel “Extra” prepaid kortele, bet iš esmės viskas yra tas pats ir su kitais mobilaus ryšio tiekėjais:

root@base:~# apt-get install ppp pppconfig

Bazinės ppp konfigūracijos griaučius galima sukurti pppconfig įrankio pagalba, o galima tiesiog rankutėmis:

/etc/ppp/peers/provider

hide-password
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/provider"
debug
/dev/rfcomm0
115200
defaultroute
noipdefault
user "omni"
remotename provider
ipparam provider

/etc/chatscripts/provider

ABORT BUSY
ABORT 'NO CARRIER'
ABORT VOICE
ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE'
ABORT 'NO ANSWER'
ABORT DELAYED
'' ATZ
OK-AT-OK "ATDT*99***1#"
CONNECT \d\c

/etc/ppp/pap-secrets

"omni" provider "omni"

Prisijungiame įvykdę komanda “pon” ir stebime /var/log/messages . Atsijungiame įvykdę komanda poff.

3 Komentarai »

  1. o kaip reiketu uzrasyt adresus biteje biz? Kazko nepavyko pasijungt nors OK-AT-OK “ATDT*#99*” o “banga” provider “banga”
    , gal ta provaideri kita reik prarasyt…zinute nusiunciau i bite , tipo edge neveikia po linux gavau toki atsakyma ;)

    Comment by savat — 2007-04-30 @ 11:15

  2. “ATDT*#99″ – bloga sintakse
    jei sekti tavo logika ir naudoti ne pirma, o bet koki profaila, turetum kviesti “ATDT*99#”
    be to, siame pavyzdy as nenustatineju apn’o (AT+CGDCONT komanda), nes omnitelyje bet koks neaprasytas apn’as defaultinasi i standartini, biteje gali buti kitaip

    Comment by Almantas Karvelis — 2007-05-01 @ 15:26

  3. jezau negaliu gerai tu cia:)..stengiuos ir as ismokt,gal galetum parasyti kokiu puslapiu lt kalba kur galeciau rast panasios inf.buciau lb dekingas.sekmes tau!

    Comment by pauliukas — 2008-02-11 @ 21:58


RSS feed for comments on this post. TrackBack URI

Pakomentuokite

Blog at WordPress.com.