Personal tools

Difference between revisions of "Conectarea unui telefon mobil prin Bluetooth (Slackware 12.0)"

From linux360

Jump to: navigation, search
m
m
 
Line 8: Line 8:
 
Singurul telefon mobil pe care am testat aceste informaţii este Nokia 5200, deci este posibil ca pentru alte tipuri de telefoane mobile să existe diferenţe în ceea ce priveşte setările descrise în acest tutorial.
 
Singurul telefon mobil pe care am testat aceste informaţii este Nokia 5200, deci este posibil ca pentru alte tipuri de telefoane mobile să existe diferenţe în ceea ce priveşte setările descrise în acest tutorial.
  
Informaţiile au fost testate pe calculatorul personal (Slackware Linux 12.0, kernel 2.6.22.5-smp, compilat din surse), pe un notebook Fujitsu Amilo Pro v3515 (Slackware-current) şi pe un calculator virtual (Slackware Linux 12.0, kernel 2.6.21.5-smp), folosind soluţia de virtualizare VMware Server, versiunea 1.0.4 build-56528. În ambele situaţii distribuţia a fost instalată cu opţiunea "full". De asemenea, am configurat HAL (Hardware Abstraction Layer) conform [ftp://slackware.cs.utah.edu/pub/slackware/slackware-12.0/CHANGES_AND_HINTS.TXT CHANGES_AND_HINTS.TXT].
+
Informaţiile au fost testate pe calculatorul personal (Slackware Linux 12.0, kernel 2.6.22.5-smp, compilat din surse), pe un notebook Fujitsu Amilo Pro v3515 (Slackware-current, kernel 2.6.24.5-smp) şi pe un calculator virtual (Slackware Linux 12.0, kernel 2.6.21.5-smp), folosind soluţia de virtualizare VMware Server, versiunea 1.0.4 build-56528. În ambele situaţii distribuţia a fost instalată cu opţiunea "full". De asemenea, am configurat HAL (Hardware Abstraction Layer) conform [ftp://slackware.cs.utah.edu/pub/slackware/slackware-12.0/CHANGES_AND_HINTS.TXT CHANGES_AND_HINTS.TXT].
  
 
În distribuţia Slackware Linux 12.0 sunt incluse următoarele pachete necesare pentru conectivitatea prin Bluetooth:
 
În distribuţia Slackware Linux 12.0 sunt incluse următoarele pachete necesare pentru conectivitatea prin Bluetooth:
Line 24: Line 24:
 
*Încărcarea modulelor de kernel necesare (modificarea fișierului de configurare <tt>/etc/rc.d/rc.molules-<kernel-version>-smp</tt>):
 
*Încărcarea modulelor de kernel necesare (modificarea fișierului de configurare <tt>/etc/rc.d/rc.molules-<kernel-version>-smp</tt>):
 
<code>
 
<code>
### Bluetooth modules
+
### Bluetooth config
 +
/sbin/modprobe cdc_acm
 +
/sbin/modprobe l2cap
 
/sbin/modprobe bluetooth
 
/sbin/modprobe bluetooth
 +
/sbin/modprobe sco
 
/sbin/modprobe rfcomm
 
/sbin/modprobe rfcomm
 +
/sbin/modprobe bnep
 +
</code>
 +
 +
*Verificarea încărcării modulelor:
 +
<code>
 +
# lsmod
 +
Module                  Size  Used by
 +
bnep                  15488  2
 +
rfcomm                37136  14
 +
sco                    13440  0
 +
l2cap                  23936  13 bnep,rfcomm
 +
cdc_acm                16928  0
 +
hci_usb                16924  3
 +
crc_ccitt              5760  2 ppp_async,irda
 +
bluetooth              53860  11 bnep,rfcomm,sco,l2cap,hci_usb
 
</code>
 
</code>
  
Line 65: Line 83:
  
 
# Run hid2hci (allowed values are "true" and "false")
 
# Run hid2hci (allowed values are "true" and "false")
HID2HCI_ENABLE=false
+
HID2HCI_ENABLE=true
  
 
# Bind rfcomm devices (allowed values are "true" and "false")
 
# Bind rfcomm devices (allowed values are "true" and "false")
Line 74: Line 92:
  
 
# Start dund (allowed values are "true" and "false")
 
# Start dund (allowed values are "true" and "false")
DUND_ENABLE=false
+
DUND_ENABLE=true
  
 
# Arguments to dund
 
# Arguments to dund
Line 80: Line 98:
  
 
# Start pand (allowed values are "true" and "false")
 
# Start pand (allowed values are "true" and "false")
PAND_ENABLE=false
+
PAND_ENABLE=true
  
 
# Arguments to pand
 
# Arguments to pand
Line 90: Line 108:
 
Conform <tt>/usr/doc/bluez-utils-3.9/README.SLACKWARE</tt>, trebuie setată o cheie (cod pin) în fişierul de configurare <tt>/etc/bluetooth/passkeys/default</tt>. Această cheie va fi verificată la conectarea prin Bluetooth şi - în funcţie de setările telefonului - poate fi cerută la fiecare conectare sau doar la prima conectare.
 
Conform <tt>/usr/doc/bluez-utils-3.9/README.SLACKWARE</tt>, trebuie setată o cheie (cod pin) în fişierul de configurare <tt>/etc/bluetooth/passkeys/default</tt>. Această cheie va fi verificată la conectarea prin Bluetooth şi - în funcţie de setările telefonului - poate fi cerută la fiecare conectare sau doar la prima conectare.
  
<code># echo -n "1234" > /etc/bluetooth/passkeys/default</code>
+
<code>
 +
# echo -n "1234" > /etc/bluetooth/passkeys/default
 +
</code>
  
 
Aceeaşi cheie trebuie adăugată şi în fişierul de configurare <tt>/etc/bluetooth/hcid.conf</tt> în secţiunea
 
Aceeaşi cheie trebuie adăugată şi în fişierul de configurare <tt>/etc/bluetooth/hcid.conf</tt> în secţiunea
Line 110: Line 130:
  
 
Folosind comanda <tt>hcitool scan</tt> obţinem:
 
Folosind comanda <tt>hcitool scan</tt> obţinem:
 +
<code>
 
  Scanning ...
 
  Scanning ...
 
         00:1C:35:41:A4:F9      Nokia 5200
 
         00:1C:35:41:A4:F9      Nokia 5200
 +
</code>
  
 
Edităm apoi fişierul de configurare /etc/bluetooth/rfcomm.conf
 
Edităm apoi fişierul de configurare /etc/bluetooth/rfcomm.conf
Line 136: Line 158:
 
# /etc/rc.d/./rc.bluetooth restart
 
# /etc/rc.d/./rc.bluetooth restart
 
Stopping Bluetooth subsystem:  pand dund rfcomm hidd sdpd hcid.
 
Stopping Bluetooth subsystem:  pand dund rfcomm hidd sdpd hcid.
Starting Bluetooth subsystem:  hcid passkeys.
+
Starting Bluetooth subsystem:  hcid sdpd hid2hci rfcomm dund pand passkeys.
 
</code>
 
</code>
  
 
*Verificarea funcţionării conectivităţii Bluetooth
 
*Verificarea funcţionării conectivităţii Bluetooth
  
Comanda <tt>lsmod</tt>
+
Comanda <tt>hciconfig -a</tt>:
 
 
<code>
 
hci_usb                18588  2
 
bluetooth              53092  7 rfcomm,l2cap,hci_usb
 
</code>
 
 
 
Comanda <tt>hciconfig -a</tt>
 
  
 
<code>
 
<code>
Line 168: Line 183:
 
</code>
 
</code>
  
Comanda <tt>hcitool info 00:1C:35:41:A4:F9</tt>
+
Comanda <tt>hcitool info 00:1C:35:41:A4:F9</tt>:
  
 
<code>
 
<code>
Line 188: Line 203:
 
</code>
 
</code>
  
 +
*Comanda <tt>l2ping</tt>:
 +
<code>
 +
# l2ping 00:1C:35:41:A4:F9
 +
Ping: 00:1C:35:41:A4:F9 from 00:02:72:D2:20:27 (data size 44) ...
 +
0 bytes from 00:1C:35:41:A4:F9 id 0 time 6.84ms
 +
0 bytes from 00:1C:35:41:A4:F9 id 1 time 28.49ms
 +
0 bytes from 00:1C:35:41:A4:F9 id 2 time 26.46ms
 +
0 bytes from 00:1C:35:41:A4:F9 id 3 time 25.44ms
 +
4 sent, 4 received, 0% loss
 +
</code>
 +
 +
*Verificarea serviciilor disponibile de pe telefonului mobil:
 +
<code>
 +
# sdptool browse 00:1C:35:41:A4:F9
 +
</code>
 
*Utilizarea <tt>obexftp</tt>
 
*Utilizarea <tt>obexftp</tt>
  

Latest revision as of 15:45, 30 April 2008

Introducere

Acest tutorial prezintă modul de configurare a distribuţiei Slackware Linux 12.0 pentru a permite conectarea la un telefon mobil folosind un adaptor Bluetooth / USB.

Adaptorul Bluetooth/USB este de tipul MSI: Bus 1 Device 2: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Singurul telefon mobil pe care am testat aceste informaţii este Nokia 5200, deci este posibil ca pentru alte tipuri de telefoane mobile să existe diferenţe în ceea ce priveşte setările descrise în acest tutorial.

Informaţiile au fost testate pe calculatorul personal (Slackware Linux 12.0, kernel 2.6.22.5-smp, compilat din surse), pe un notebook Fujitsu Amilo Pro v3515 (Slackware-current, kernel 2.6.24.5-smp) şi pe un calculator virtual (Slackware Linux 12.0, kernel 2.6.21.5-smp), folosind soluţia de virtualizare VMware Server, versiunea 1.0.4 build-56528. În ambele situaţii distribuţia a fost instalată cu opţiunea "full". De asemenea, am configurat HAL (Hardware Abstraction Layer) conform CHANGES_AND_HINTS.TXT.

În distribuţia Slackware Linux 12.0 sunt incluse următoarele pachete necesare pentru conectivitatea prin Bluetooth: bluez-firmware-1.2-i486-1 bluez-hcidump-1.34-i486-1 bluez-libs-3.9-i486-1 bluez-utils-3.9-i486-3 obexftp-0.21-i486-1 openobex-1.3-i486-1

Configurare

  • Încărcarea modulelor de kernel necesare (modificarea fișierului de configurare /etc/rc.d/rc.molules-<kernel-version>-smp):

      1. Bluetooth config

/sbin/modprobe cdc_acm /sbin/modprobe l2cap /sbin/modprobe bluetooth /sbin/modprobe sco /sbin/modprobe rfcomm /sbin/modprobe bnep

  • Verificarea încărcării modulelor:

  1. lsmod

Module Size Used by bnep 15488 2 rfcomm 37136 14 sco 13440 0 l2cap 23936 13 bnep,rfcomm cdc_acm 16928 0 hci_usb 16924 3 crc_ccitt 5760 2 ppp_async,irda bluetooth 53860 11 bnep,rfcomm,sco,l2cap,hci_usb

  • Crearea unui fișier de configurare în /etc/udev/rules.d/:

  1. cd /etc/udev/rules.d/
  2. touch cellular-devices.rules

Un exemplu (pentru telefonul Nokia 5200): BUS=="usb", SYSFS{idVendor}=="0421",SYSFS{idProduct}=="04bc", GROUP="wheel"

După editarea fișierului este necesară repornirea serviciului udev:

  1. /etc/rc.d/./rc.udev restart

  • Editarea fișierului de configurare /etc/rc.d/rc.bluetooth.conf:

  1. Bluetooth configuraton file
  1. Start of hcid (allowed values are "true" and "false")

HCID_ENABLE=true

  1. Config file for hcid

HCID_CONFIG="/etc/bluetooth/hcid.conf"

  1. Start sdpd (allowed values are "true" and "false")

SDPD_ENABLE=true

  1. Start hidd (allowed values are "true" and "false")

HIDD_ENABLE=false

  1. Arguments to hidd

HIDD_OPTIONS=""

  1. Run hid2hci (allowed values are "true" and "false")

HID2HCI_ENABLE=true

  1. Bind rfcomm devices (allowed values are "true" and "false")

RFCOMM_ENABLE=true

  1. Config file for rfcomm

RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf"

  1. Start dund (allowed values are "true" and "false")

DUND_ENABLE=true

  1. Arguments to dund

DUND_OPTIONS="--listen --persist"

  1. Start pand (allowed values are "true" and "false")

PAND_ENABLE=true

  1. Arguments to pand

PAND_OPTIONS="--listen --role NAP"

  • Stabilirea unei chei-parolă

Conform /usr/doc/bluez-utils-3.9/README.SLACKWARE, trebuie setată o cheie (cod pin) în fişierul de configurare /etc/bluetooth/passkeys/default. Această cheie va fi verificată la conectarea prin Bluetooth şi - în funcţie de setările telefonului - poate fi cerută la fiecare conectare sau doar la prima conectare.

  1. echo -n "1234" > /etc/bluetooth/passkeys/default

Aceeaşi cheie trebuie adăugată şi în fişierul de configurare /etc/bluetooth/hcid.conf în secţiunea

  1. Default PIN code for incoming connections
	 passkey "<your passkey>";

După această etapă pornim serviciul bluetooth

  1. cd /etc/rc.d
  2. chmod 0755 rc.bluetooth
  3. ./rc.bluetooth start

  • Configurarea fişierului /etc/bluetooth/rfcomm.conf

Folosind comanda hcitool scan obţinem:

Scanning ...
        00:1C:35:41:A4:F9       Nokia 5200

Edităm apoi fişierul de configurare /etc/bluetooth/rfcomm.conf

rfcomm0 {

  1. # Automatically bind the device at startup
       bind yes;
  1. # Bluetooth address of the device
       device 00:1C:35:41:A4:F9;
  1. # RFCOMM channel for the connection
       channel 10;
  1. # Description of the connection
       comment "Nokia 5200";

}

şi restartăm serviciul bluetooth:

  1. /etc/rc.d/./rc.bluetooth restart

Stopping Bluetooth subsystem: pand dund rfcomm hidd sdpd hcid. Starting Bluetooth subsystem: hcid sdpd hid2hci rfcomm dund pand passkeys.

  • Verificarea funcţionării conectivităţii Bluetooth

Comanda hciconfig -a:

hci0: Type: USB

       BD Address: 00:02:72:D2:20:27 ACL MTU: 310:10 SCO MTU: 64:8
       UP RUNNING PSCAN
       RX bytes:58497 acl:1906 sco:0 events:1862 errors:0
       TX bytes:33532 acl:1670 sco:0 commands:81 errors:0
       Features: 0xff 0xff 0x8f 0xfe 0x90 0xf9 0x00 0x80
       Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
       Link policy: RSWITCH HOLD SNIFF PARK
       Link mode: SLAVE ACCEPT
       Name: 'BlueZ (0)'
       Class: 0x3e0100
       Service Classes: Networking, Rendering, Capturing, Object Transfer, Audio
       Device Class: Computer, Uncategorized
       HCI Ver: 2.0 (0x3) HCI Rev: 0xc5c LMP Ver: 2.0 (0x3) LMP Subver: 0xc5c
       Manufacturer: Cambridge Silicon Radio (10)

Comanda hcitool info 00:1C:35:41:A4:F9:

Requesting information ...

       BD Address:  00:1C:35:41:A4:F9
       Device Name: Nokia 5200
       LMP Version: 2.0 (0x3) LMP Subversion: 0x6cc
       Manufacturer: Cambridge Silicon Radio (10)
       Features: 0xbf 0xee 0x0f 0xc6 0x9a 0x39 0x00 0x00
               <3-slot packets> <5-slot packets> <encryption> <slot offset>
               <timing accuracy> <role switch> <sniff mode> <RSSI>
               <channel quality> <SCO link> <HV3 packets> <u-law log>
               <A-law log> <CVSD> <paging scheme> <power control>
               <transparent SCO> <EDR ACL 2 Mbps> <EDR ACL 3 Mbps>
               <inquiry with RSSI> <extended SCO> <EV5 packets>
               <AFH cap. slave> <AFH class. slave> <3-slot EDR ACL>
               <5-slot EDR ACL> <AFH cap. master> <AFH class. master>
               <EDR eSCO 2 Mbps>

  • Comanda l2ping:

  1. l2ping 00:1C:35:41:A4:F9

Ping: 00:1C:35:41:A4:F9 from 00:02:72:D2:20:27 (data size 44) ... 0 bytes from 00:1C:35:41:A4:F9 id 0 time 6.84ms 0 bytes from 00:1C:35:41:A4:F9 id 1 time 28.49ms 0 bytes from 00:1C:35:41:A4:F9 id 2 time 26.46ms 0 bytes from 00:1C:35:41:A4:F9 id 3 time 25.44ms 4 sent, 4 received, 0% loss

  • Verificarea serviciilor disponibile de pe telefonului mobil:

  1. sdptool browse 00:1C:35:41:A4:F9

  • Utilizarea obexftp

  1. obexftp -b 00:1C:35:41:A4:F9 --list

Browsing 00:1C:35:41:A4:F9 ... Channel: 10 Connecting...done Receiving "(null)"...\<?xml version="1.0"?> <!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd"

[ <!ATTLIST folder mem-type CDATA #IMPLIED> ]>

<folder-listing version="1.0">

   <folder name="Extra" user-perm="RW" mem-type="MMC"/>
   <folder name="Graphics" created="20060101T000000" user-perm="R" mem-type="DEV"/>
   <folder name="Music files" created="20060101T000000" user-perm="R" mem-type="DEV"/>
   <folder name="Themes" created="20060101T000000" user-perm="RW" mem-type="DEV"/>
   <folder name="Tones" created="20060101T000000" user-perm="R" mem-type="DEV"/>
   <folder name="Video clips" created="20060101T000000" user-perm="R" mem-type="DEV"/>
   <folder name="Images" created="20060101T000000" user-perm="R" mem-type="DEV"/>
   <folder name="Recordings" created="20060101T000000" user-perm="R" mem-type="DEV"/>
   <folder name="Receiv. files" created="20060101T000000" user-perm="R" mem-type="DEV"/>

</folder-listing> done Disconnecting...done

  • Transferul de fişiere

  1. obexftp -b 00:1C:35:41:A4:F9 --put /home/daily/shared/test.png

Browsing 00:1C:35:41:A4:F9 ... Channel: 10 Connecting...done Sending "/home/daily/shared/test.png"...|done Disconnecting...done

Alte aplicaţii

Din diferite motive, în distribuţia Slackware Linux 12.0 nu sunt incluse următoarele aplicaţii (interfeţe grafice pentru conectivitatea cu un telefon mobil):

Obextool & Nokia 5200

Obextool necesită următoarele comenzi pentru instalare:

  1. cd /path/to/obextool-0.33.tar.gz
  2. tar -zxvf obextool-0.33.tar.gz
  3. mv obextool-0.33 /usr/share/obextool
  4. mkdir /etc/obextool
  5. cd /usr/share/obextool/etc
  6. cp *.* /etc/obextool
  7. ln -s /usr/share/obextool/contrib/startup/obextool /usr/bin/obextool

Înainte de a porni aplicaţia este nevoie de instalarea unor dependinţe: BWidget (de aici) și tablelist (de aici). Ambele trebuie doar dezarhivate în /usr/lib/tcl8.4, apoi trebuie rulată comanda ldconfig. De asemenea, trebuie editat fișierul /etc/obextool/obextool.cfg și modificată linia: set ObexConfig(config,memstatus) 1 în set ObexConfig(config,memstatus) 0

KMobileTools & Nokia 5200

Ultimele 3 aplicaţii pot fi obţinute în format tgz de aici.

Pentru configurarea aplicației KMobileTools (care folosește și module din aplicația kdebluetooth) urmați următorii pași:

  • Lansați în execuție aplicația kmobiletools;
  • Apăsați butonul [Add a new phone device], care deschide 2 ferestre: "Device manager - KMobileTools" și "KMobileTools - Add New Mobile Wizard". Apăsați butonul [Next] în fereastra "KMobileTools - Add New Mobile Wizard";
  • Bifați opțiunea "I want to connect with my mobile phone using Bluetooth" și apăsați butonul [Bluetooth Pairing Wizard];
  • În fereastra următoare "KBluetooth Pairing Wizard" apăsați butonul [Start Searching], după încheierea căutării apăsați pe numele telefonului mobil (Nokia 5200), apoi pe butonul [Next];
  • Pentru telefonul Nokia 5200, selectați din coloana "Service Name" opțiunea COM 1, apoi apăsați butonul [Next];
  • Infomațiile vor fi salvate în fișierul /etc/bluetooth/rfcomm.conf prin apăsarea butonului [Finish];
  • În fereastra "KMobileTools - Add New Mobile Wizard" apăsați butonul [Next]. În fereastra "Select Connection" selectați opțiunea "Bluetooth devices binded with rfcomm", apoi în fereastra "Select your Mobile Phone" selectați linia care indică telefonul mobil și apăsați butonul [Next];
  • În fereastra "Various Options" selectați alte opțiuni specifice telefonului și apăsați butonul [Next]. Apoi, în următoarea fereastră stabiliți numele telefonului și apăsați butonul [Finish].